=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.114 retrieving revision 1.117 diff -u -p -r1.114 -r1.117 --- mandoc/term.c 2009/10/27 08:05:39 1.114 +++ mandoc/term.c 2009/10/30 18:43:24 1.117 @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.114 2009/10/27 08:05:39 kristaps Exp $ */ +/* $Id: term.c,v 1.117 2009/10/30 18:43:24 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -77,9 +77,11 @@ term_alloc(enum termenc enc) { struct termp *p; - if (NULL == (p = malloc(sizeof(struct termp)))) - return(NULL); - bzero(p, sizeof(struct termp)); + p = calloc(1, sizeof(struct termp)); + if (NULL == p) { + fprintf(stderr, "memory exhausted\n"); + exit(EXIT_FAILURE); + } p->maxrmargin = 78; p->enc = enc; return(p); @@ -139,7 +141,7 @@ term_flushln(struct termp *p) * First, establish the maximum columns of "visible" content. * This is usually the difference between the right-margin and * an indentation, but can be, for tagged lists or columns, a - * small set of values. + * small set of values. */ assert(p->offset < p->rmargin); @@ -150,6 +152,12 @@ term_flushln(struct termp *p) 0 : p->maxrmargin - p->offset - overstep; bp = TERMP_NOBREAK & p->flags ? mmax : maxvis; + + /* + * FIXME: if bp is zero, we still output the first word before + * breaking the line. + */ + vis = 0; /*