diff options
-rw-r--r-- | TODO | 5 | ||||
-rw-r--r-- | term.c | 10 |
2 files changed, 10 insertions, 5 deletions
@@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.136 2012/06/12 20:21:04 kristaps Exp $ +* $Id: TODO,v 1.137 2012/07/16 21:30:42 schwarze Exp $ ************************************************************************ ************************************************************************ @@ -169,9 +169,6 @@ so far, we only have it in roff(7) and man(7) reminded by millert@ Thu, 09 Dec 2010 17:29:52 -0500 -- perl(1) SYNOPSIS looks bad; reported by deraadt@ - 1) man(7) seems to need SYNOPSIS .Nm blocks, too - - In .Bl -column, .It Em Authentication<tab>Key Length ought to render "Key Length" with emphasis, too, @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.204 2012/07/10 15:35:41 schwarze Exp $ */ +/* $Id: term.c,v 1.205 2012/07/16 21:30:42 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2010, 2011, 2012 Ingo Schwarze <schwarze@openbsd.org> @@ -106,6 +106,7 @@ 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 */ @@ -144,10 +145,12 @@ term_flushln(struct termp *p) * Handle literal tab characters: collapse all * subsequent tabs into a single huge set of spaces. */ + ntab = 0; while (i < p->col && '\t' == p->buf[i]) { vend = (vis / p->tabwidth + 1) * p->tabwidth; vbl += vend - vis; vis = vend; + ntab++; i++; } @@ -192,6 +195,11 @@ term_flushln(struct termp *p) } else vbl = p->offset; + /* use pending tabs on the new line */ + + if (0 < ntab) + vbl += ntab * p->tabwidth; + /* Remove the p->overstep width. */ bp += (size_t)p->overstep; |