=================================================================== RCS file: /cvs/mandoc/term.c,v retrieving revision 1.218 retrieving revision 1.219 diff -u -p -r1.218 -r1.219 --- mandoc/term.c 2014/03/23 11:25:26 1.218 +++ mandoc/term.c 2014/03/30 21:28:01 1.219 @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.218 2014/03/23 11:25:26 schwarze Exp $ */ +/* $Id: term.c,v 1.219 2014/03/30 21:28:01 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -621,6 +621,36 @@ encode(struct termp *p, const char *word, size_t sz) else p->buf[p->col++] = word[i]; } +} + +void +term_setwidth(struct termp *p, const char *wstr) +{ + struct roffsu su; + size_t width; + int iop; + + if (NULL != wstr) { + switch (*wstr) { + case ('+'): + iop = 1; + wstr++; + break; + case ('-'): + iop = -1; + wstr++; + break; + default: + iop = 0; + break; + } + if ( ! a2roffsu(wstr, &su, SCALE_MAX)) { + wstr = NULL; + iop = 0; + } + } + width = (NULL != wstr) ? term_hspan(p, &su) : 0; + (*p->setwidth)(p, iop, width); } size_t