=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.117 retrieving revision 1.121 diff -u -p -r1.117 -r1.121 --- mandoc/term.c 2009/10/30 18:43:24 1.117 +++ mandoc/term.c 2009/11/05 07:21:02 1.121 @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.117 2009/10/30 18:43:24 kristaps Exp $ */ +/* $Id: term.c,v 1.121 2009/11/05 07:21:02 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include -#include #include #include #include @@ -79,7 +78,7 @@ term_alloc(enum termenc enc) p = calloc(1, sizeof(struct termp)); if (NULL == p) { - fprintf(stderr, "memory exhausted\n"); + perror(NULL); exit(EXIT_FAILURE); } p->maxrmargin = 78; @@ -147,9 +146,11 @@ term_flushln(struct termp *p) assert(p->offset < p->rmargin); maxvis = (int)(p->rmargin - p->offset) - overstep < 0 ? - 0 : p->rmargin - p->offset - overstep; + /* LINTED */ + 0 : p->rmargin - p->offset - overstep; mmax = (int)(p->maxrmargin - p->offset) - overstep < 0 ? - 0 : p->maxrmargin - p->offset - overstep; + /* LINTED */ + 0 : p->maxrmargin - p->offset - overstep; bp = TERMP_NOBREAK & p->flags ? mmax : maxvis; @@ -228,7 +229,12 @@ term_flushln(struct termp *p) for ( ; i < (int)p->col; i++) { if (' ' == p->buf[i]) break; - putchar(p->buf[i]); + + /* The unit sep. is a non-breaking space. */ + if (31 == p->buf[i]) + putchar(' '); + else + putchar(p->buf[i]); } vis += vsz; } @@ -543,8 +549,10 @@ buffer(struct termp *p, char c) p->maxcols = 256; s = p->maxcols * 2; p->buf = realloc(p->buf, s); - if (NULL == p->buf) - err(1, "realloc"); /* FIXME: shouldn't be here! */ + if (NULL == p->buf) { + perror(NULL); + exit(EXIT_FAILURE); + } p->maxcols = s; } p->buf[(int)(p->col)++] = c;