=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/term.c,v retrieving revision 1.70 retrieving revision 1.71 diff -c -r1.70 -r1.71 *** src/usr.bin/mandoc/term.c 2013/08/08 20:07:24 1.70 --- src/usr.bin/mandoc/term.c 2013/08/21 21:19:47 1.71 *************** *** 1,4 **** ! /* $Id: term.c,v 1.70 2013/08/08 20:07:24 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011, 2012, 2013 Ingo Schwarze --- 1,4 ---- ! /* $Id: term.c,v 1.71 2013/08/21 21:19:47 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011, 2012, 2013 Ingo Schwarze *************** *** 30,36 **** #include "main.h" static size_t cond_width(const struct termp *, int, int *); ! static void adjbuf(struct termp *p, int); static void bufferc(struct termp *, char); static void encode(struct termp *, const char *, size_t); static void encode1(struct termp *, int); --- 30,36 ---- #include "main.h" static size_t cond_width(const struct termp *, int, 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,115 **** void term_flushln(struct termp *p) { ! int 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 maxvis; /* output position of visible boundary */ size_t mmax; /* used in calculating bp */ --- 101,115 ---- void term_flushln(struct termp *p) { ! 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 */ ! 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,218 **** j = i; while (' ' == p->buf[i]) i++; ! dv = (size_t)(i - j) * (*p->width)(p, ' '); vbl += dv; vend += dv; break; --- 212,218 ---- j = i; while (' ' == p->buf[i]) i++; ! dv = (i - j) * (*p->width)(p, ' '); vbl += dv; vend += dv; break; *************** *** 503,509 **** } static void ! adjbuf(struct termp *p, int sz) { if (0 == p->maxcols) --- 503,509 ---- } static void ! adjbuf(struct termp *p, size_t sz) { if (0 == p->maxcols) *************** *** 511,518 **** while (sz >= p->maxcols) p->maxcols <<= 2; ! p->buf = mandoc_realloc ! (p->buf, sizeof(int) * (size_t)p->maxcols); } static void --- 511,517 ---- while (sz >= p->maxcols) p->maxcols <<= 2; ! p->buf = mandoc_realloc(p->buf, sizeof(int) * p->maxcols); } static void *************** *** 562,577 **** static void encode(struct termp *p, const char *word, size_t sz) { ! int i, len; 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 --- 561,573 ---- static void encode(struct termp *p, const char *word, size_t sz) { ! size_t i; if (TERMP_SKIPCHAR & p->flags) { p->flags &= ~TERMP_SKIPCHAR; return; } /* * Encode and buffer a string of characters. If the current * font mode is unset, buffer directly, else encode then buffer *************** *** 579,597 **** */ if (TERMFONT_NONE == term_fonttop(p)) { ! if (p->col + len >= p->maxcols) ! adjbuf(p, p->col + len); ! for (i = 0; i < len; 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)); ! for (i = 0; i < len; i++) { if (ASCII_HYPH == word[i] || isgraph((unsigned char)word[i])) encode1(p, word[i]); --- 575,593 ---- */ if (TERMFONT_NONE == term_fonttop(p)) { ! 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 + (sz * 5) >= p->maxcols) ! adjbuf(p, p->col + 1 + (sz * 5)); ! for (i = 0; i < sz; i++) { if (ASCII_HYPH == word[i] || isgraph((unsigned char)word[i])) encode1(p, word[i]);