=================================================================== RCS file: /cvs/mandoc/out.c,v retrieving revision 1.11 retrieving revision 1.13 diff -u -p -r1.11 -r1.13 --- mandoc/out.c 2009/11/12 08:21:05 1.11 +++ mandoc/out.c 2010/04/07 07:49:38 1.13 @@ -1,4 +1,4 @@ -/* $Id: out.c,v 1.11 2009/11/12 08:21:05 kristaps Exp $ */ +/* $Id: out.c,v 1.13 2010/04/07 07:49:38 kristaps Exp $ */ /* * Copyright (c) 2009 Kristaps Dzonsons * @@ -14,6 +14,10 @@ * 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 #include @@ -45,10 +49,6 @@ (t) = 3; } \ while (/* CONSTCOND */ 0) -#ifdef __linux__ -extern size_t strlcat(char *, const char *, size_t); -#endif - /* * Convert a `scaling unit' to a consistent form, or fail. Scaling * units are documented in groff.7, mdoc.7, man.7. @@ -197,12 +197,12 @@ int a2roffdeco(enum roffdeco *d, const char **word, size_t *sz) { - int j, type, term, lim; + int j, offs, term, lim; const char *wp, *sp; *d = DECO_NONE; wp = *word; - type = 1; + offs = 0; switch (*wp) { case ('\0'): @@ -236,7 +236,7 @@ a2roffdeco(enum roffdeco *d, return(4); case ('['): - type = 0; + offs = 1; break; default: @@ -344,13 +344,15 @@ a2roffdeco(enum roffdeco *d, } *word = ++wp; + for (j = 0; *wp && ']' != *wp; wp++, j++) /* Loop... */ ; if ('\0' == *wp) - return(j + 1); + return(j + 1 + offs); - *d = type ? DECO_SPECIAL : DECO_RESERVED; + *d = offs ? DECO_RESERVED : DECO_SPECIAL; *sz = (size_t)j; - return (j + 2); + + return (j + 2 + offs); }