=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.216 retrieving revision 1.218 diff -u -p -r1.216 -r1.218 --- mandoc/term.c 2014/01/22 20:58:39 1.216 +++ mandoc/term.c 2014/03/23 11:25:26 1.218 @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.216 2014/01/22 20:58:39 schwarze Exp $ */ +/* $Id: term.c,v 1.218 2014/03/23 11:25:26 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -23,12 +23,12 @@ #include #include -#include #include #include #include #include "mandoc.h" +#include "mandoc_aux.h" #include "out.h" #include "term.h" #include "main.h" @@ -183,6 +183,13 @@ term_flushln(struct termp *p) ASCII_BREAK == p->buf[j])) jhy = j; + /* + * Hyphenation now decided, put back a real + * hyphen such that we get the correct width. + */ + if (ASCII_HYPH == p->buf[j]) + p->buf[j] = '-'; + vend += (*p->width)(p, p->buf[j]); } @@ -246,12 +253,6 @@ term_flushln(struct termp *p) (*p->advance)(p, vbl); p->viscol += vbl; vbl = 0; - } - - if (ASCII_HYPH == p->buf[i]) { - (*p->letter)(p, '-'); - p->viscol += (*p->width)(p, '-'); - continue; } (*p->letter)(p, p->buf[i]);