=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/term.c,v retrieving revision 1.99 retrieving revision 1.100 diff -u -r1.99 -r1.100 --- src/usr.bin/mandoc/term.c 2014/12/23 06:16:21 1.99 +++ src/usr.bin/mandoc/term.c 2014/12/23 13:48:15 1.100 @@ -1,4 +1,4 @@ -/* $OpenBSD: term.c,v 1.99 2014/12/23 06:16:21 schwarze Exp $ */ +/* $OpenBSD: term.c,v 1.100 2014/12/23 13:48:15 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -99,7 +99,6 @@ 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 rmargin; /* the rightmost of the two margins */ /* * First, establish the maximum columns of "visible" content. @@ -112,8 +111,7 @@ * is negative, it gets sign extended. Subtracting that * very large size_t effectively adds a small number to dv. */ - rmargin = p->rmargin > p->offset ? p->rmargin : p->offset; - dv = p->rmargin - p->offset; + dv = p->rmargin > p->offset ? p->rmargin - p->offset : 0; maxvis = (int)dv > p->overstep ? dv - (size_t)p->overstep : 0; if (p->flags & TERMP_NOBREAK) { @@ -191,8 +189,9 @@ (*p->endline)(p); p->viscol = 0; if (TERMP_BRIND & p->flags) { - vbl = rmargin; - vend += rmargin - p->offset; + vbl = p->rmargin; + vend += p->rmargin; + vend -= p->offset; } else vbl = p->offset; @@ -768,7 +767,7 @@ return(sz); } -size_t +int term_vspan(const struct termp *p, const struct roffsu *su) { double r; @@ -807,19 +806,14 @@ abort(); /* NOTREACHED */ } - - if (r < 0.0) - r = 0.0; - return((size_t)(r + 0.4995)); + return(r > 0.0 ? r + 0.4995 : r - 0.4995); } -size_t +int term_hspan(const struct termp *p, const struct roffsu *su) { double v; v = (*p->hspan)(p, su); - if (v < 0.0) - v = 0.0; - return((size_t)(v + 0.0005)); + return(v > 0.0 ? v + 0.0005 : v - 0.0005); }