summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2013-08-21 21:19:48 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2013-08-21 21:19:48 +0000
commit8b84d839d00a86b4d530a2b0f7f1584605d08c7a (patch)
treed69569fa8bf09c0019895f31a07f94de5f5e05ea
parent4e88a4739a3ba151c77759a478800180a615e8bc (diff)
Move the last column-counting members of struct termp (col and maxcols)
from int to size_t, to match some existing ones (offset, *rmargin, viscol). Move some related local variables from int to size_t as well. Needed as a preparation to make a generalized adjbuf() function available beyond the file term.c, i.e. in mandoc.c. Also saves a couple of ugly casts.
-rw-r--r--usr.bin/mandoc/term.c34
-rw-r--r--usr.bin/mandoc/term.h6
2 files changed, 18 insertions, 22 deletions
diff --git a/usr.bin/mandoc/term.c b/usr.bin/mandoc/term.c
index 34fbf7de543..29ef86ef400 100644
--- a/usr.bin/mandoc/term.c
+++ b/usr.bin/mandoc/term.c
@@ -1,4 +1,4 @@
-/* $Id: term.c,v 1.70 2013/08/08 20:07:24 schwarze Exp $ */
+/* $Id: term.c,v 1.71 2013/08/21 21:19:47 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
@@ -30,7 +30,7 @@
#include "main.h"
static size_t cond_width(const struct termp *, int, int *);
-static void adjbuf(struct termp *p, int);
+static void adjbuf(struct termp *p, size_t);
static void bufferc(struct termp *, char);
static void encode(struct termp *, const char *, size_t);
static void encode1(struct termp *, int);
@@ -101,15 +101,15 @@ term_end(struct termp *p)
void
term_flushln(struct termp *p)
{
- int i; /* current input position in p->buf */
+ size_t i; /* current input position in p->buf */
int ntab; /* number of tabs to prepend */
size_t vis; /* current visual position on output */
size_t vbl; /* number of blanks to prepend to output */
size_t vend; /* end of word visual position on output */
size_t bp; /* visual right border position */
size_t dv; /* temporary for visual pos calculations */
- int j; /* temporary loop index for p->buf */
- int jhy; /* last hyph before overflow w/r/t j */
+ size_t j; /* temporary loop index for p->buf */
+ size_t jhy; /* last hyph before overflow w/r/t j */
size_t maxvis; /* output position of visible boundary */
size_t mmax; /* used in calculating bp */
@@ -212,7 +212,7 @@ term_flushln(struct termp *p)
j = i;
while (' ' == p->buf[i])
i++;
- dv = (size_t)(i - j) * (*p->width)(p, ' ');
+ dv = (i - j) * (*p->width)(p, ' ');
vbl += dv;
vend += dv;
break;
@@ -503,7 +503,7 @@ term_word(struct termp *p, const char *word)
}
static void
-adjbuf(struct termp *p, int sz)
+adjbuf(struct termp *p, size_t sz)
{
if (0 == p->maxcols)
@@ -511,8 +511,7 @@ adjbuf(struct termp *p, int sz)
while (sz >= p->maxcols)
p->maxcols <<= 2;
- p->buf = mandoc_realloc
- (p->buf, sizeof(int) * (size_t)p->maxcols);
+ p->buf = mandoc_realloc(p->buf, sizeof(int) * p->maxcols);
}
static void
@@ -562,16 +561,13 @@ encode1(struct termp *p, int c)
static void
encode(struct termp *p, const char *word, size_t sz)
{
- int i, len;
+ size_t i;
if (TERMP_SKIPCHAR & p->flags) {
p->flags &= ~TERMP_SKIPCHAR;
return;
}
- /* LINTED */
- len = sz;
-
/*
* Encode and buffer a string of characters. If the current
* font mode is unset, buffer directly, else encode then buffer
@@ -579,19 +575,19 @@ encode(struct termp *p, const char *word, size_t sz)
*/
if (TERMFONT_NONE == term_fonttop(p)) {
- if (p->col + len >= p->maxcols)
- adjbuf(p, p->col + len);
- for (i = 0; i < len; i++)
+ if (p->col + sz >= p->maxcols)
+ adjbuf(p, p->col + sz);
+ for (i = 0; i < sz; i++)
p->buf[p->col++] = word[i];
return;
}
/* Pre-buffer, assuming worst-case. */
- if (p->col + 1 + (len * 5) >= p->maxcols)
- adjbuf(p, p->col + 1 + (len * 5));
+ if (p->col + 1 + (sz * 5) >= p->maxcols)
+ adjbuf(p, p->col + 1 + (sz * 5));
- for (i = 0; i < len; i++) {
+ for (i = 0; i < sz; i++) {
if (ASCII_HYPH == word[i] ||
isgraph((unsigned char)word[i]))
encode1(p, word[i]);
diff --git a/usr.bin/mandoc/term.h b/usr.bin/mandoc/term.h
index 7670c2a7147..cd865783ee2 100644
--- a/usr.bin/mandoc/term.h
+++ b/usr.bin/mandoc/term.h
@@ -1,4 +1,4 @@
-/* $Id: term.h,v 1.37 2013/08/08 20:07:24 schwarze Exp $ */
+/* $Id: term.h,v 1.38 2013/08/21 21:19:47 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -58,10 +58,10 @@ struct termp {
size_t defrmargin; /* Right margin of the device. */
size_t rmargin; /* Current right margin. */
size_t maxrmargin; /* Max right margin. */
- int maxcols; /* Max size of buf. */
+ size_t maxcols; /* Max size of buf. */
size_t offset; /* Margin offest. */
size_t tabwidth; /* Distance of tab positions. */
- int col; /* Bytes in buf. */
+ size_t col; /* Bytes in buf. */
size_t viscol; /* Chars on current line. */
int overstep; /* See termp_flushln(). */
int skipvsp; /* Vertical space to skip. */