=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.223 retrieving revision 1.227 diff -u -p -r1.223 -r1.227 --- mandoc/term.c 2014/04/23 21:06:41 1.223 +++ mandoc/term.c 2014/08/10 23:54:41 1.227 @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.223 2014/04/23 21:06:41 schwarze Exp $ */ +/* $Id: term.c,v 1.227 2014/08/10 23:54:41 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -15,9 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include @@ -444,7 +442,7 @@ term_word(struct termp *p, const char *word) word++; esc = mandoc_escape(&word, &seq, &sz); if (ESCAPE_ERROR == esc) - break; + continue; if (TERMENC_ASCII != p->enc) switch (esc) { @@ -683,7 +681,7 @@ term_strlen(const struct termp *p, const char *cp) cp++; esc = mandoc_escape(&cp, &seq, &ssz); if (ESCAPE_ERROR == esc) - return(sz); + continue; if (TERMENC_ASCII != p->enc) switch (esc) { @@ -769,31 +767,31 @@ term_vspan(const struct termp *p, const struct roffsu switch (su->unit) { case SCALE_CM: - r = su->scale * 2; + r = su->scale * 2.0; break; case SCALE_IN: - r = su->scale * 6; + r = su->scale * 6.0; break; case SCALE_PC: r = su->scale; break; case SCALE_PT: - r = su->scale / 8; + r = su->scale / 8.0; break; case SCALE_MM: - r = su->scale / 1000; + r = su->scale / 1000.0; break; case SCALE_VS: r = su->scale; break; default: - r = su->scale - 1; + r = su->scale - 1.0; break; } if (r < 0.0) r = 0.0; - return((size_t)r); + return((size_t)(r + 0.0005)); } size_t @@ -801,8 +799,8 @@ term_hspan(const struct termp *p, const struct roffsu { double v; - v = ((*p->hspan)(p, su)); + v = (*p->hspan)(p, su); if (v < 0.0) v = 0.0; - return((size_t)v); + return((size_t)(v + 0.0005)); }