=================================================================== RCS file: /cvs/mandoc/roff.c,v retrieving revision 1.22 retrieving revision 1.25 diff -u -p -r1.22 -r1.25 --- mandoc/roff.c 2008/11/30 18:53:11 1.22 +++ mandoc/roff.c 2008/11/30 23:05:57 1.25 @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.22 2008/11/30 18:53:11 kristaps Exp $ */ +/* $Id: roff.c,v 1.25 2008/11/30 23:05:57 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -307,8 +307,11 @@ const char *const toknamesp[ROFF_MAX] = { "Ic", "In", "Li", "Nd", "Nm", "Op", "Ot", "Pa", "Rv", "St", "Va", "Vt", + /* LINTED */ "Xr", "\%A", "\%B", "\%D", + /* LINTED */ "\%I", "\%J", "\%N", "\%O", + /* LINTED */ "\%P", "\%R", "\%T", "\%V", "Ac", "Ao", "Aq", "At", "Bc", "Bf", "Bo", "Bq", @@ -515,6 +518,10 @@ roffparse(struct rofftree *tree, char *buf) char *argv[ROFF_MAXARG]; char **argvp; + if (0 != *buf && 0 != *(buf + 1) && 0 != *(buf + 2)) + if (0 == strncmp(buf, ".\\\"", 3)) + return(1); + if (ROFF_MAX == (tok = rofffindtok(buf + 1))) { roff_err(tree, buf + 1, "bogus line macro"); return(0); @@ -522,9 +529,9 @@ roffparse(struct rofftree *tree, char *buf) roff_err(tree, buf + 1, "unsupported macro `%s'", toknames[tok]); return(0); - } else if (ROFF_COMMENT == tokens[tok].type) - return(1); - + } + + assert(ROFF___ != tok); if ( ! roffargs(tree, tok, buf, argv)) return(0); @@ -671,7 +678,7 @@ static int rofffindtok(const char *buf) { char token[4]; - size_t i; + int i; for (i = 0; *buf && ! isspace(*buf) && i < 3; i++, buf++) token[i] = *buf; @@ -1030,6 +1037,7 @@ roff_layout(ROFFCALL_ARGS) assert(0 != i); i++; + /* LINTED */ while (argv[i]) if ( ! (*tree->cb.roffdata)(tree->arg, 0, argv[i++])) return(0); @@ -1148,6 +1156,7 @@ roff_text(ROFFCALL_ARGS) assert(0 != i); i++; + /* LINTED */ while (argv[i]) if ( ! (*tree->cb.roffdata)(tree->arg, 0, argv[i++])) return(0);