=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.155 retrieving revision 1.158 diff -u -p -r1.155 -r1.158 --- mandoc/term.c 2010/06/30 12:27:55 1.155 +++ mandoc/term.c 2010/07/03 16:02:12 1.158 @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.155 2010/06/30 12:27:55 kristaps Exp $ */ +/* $Id: term.c,v 1.158 2010/07/03 16:02:12 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -30,6 +30,7 @@ #include "mandoc.h" #include "chars.h" #include "out.h" +#include "regs.h" #include "term.h" #include "main.h" @@ -377,6 +378,11 @@ res(struct termp *p, const char *word, size_t len) size_t sz; rhs = chars_a2res(p->symtab, word, len, &sz); + if (NULL == rhs) { + rhs = roff_getstrn(word, len); + if (rhs) + sz = strlen(rhs); + } if (rhs) encode(p, rhs, sz); } @@ -653,6 +659,7 @@ term_strlen(const struct termp *p, const char *cp) } +/* ARGSUSED */ size_t term_vspan(const struct termp *p, const struct roffsu *su) { @@ -692,6 +699,11 @@ term_vspan(const struct termp *p, const struct roffsu size_t term_hspan(const struct termp *p, const struct roffsu *su) { + double v; - return((*p->hspan)(p, su)); + v = ((*p->hspan)(p, su)); + if (v < 0.0) + v = 0.0; + return((size_t) /* LINTED */ + v); }