=================================================================== RCS file: /cvs/mandoc/roff.c,v retrieving revision 1.214 retrieving revision 1.217 diff -u -p -r1.214 -r1.217 --- mandoc/roff.c 2014/06/29 23:26:00 1.214 +++ mandoc/roff.c 2014/07/04 16:12:08 1.217 @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.214 2014/06/29 23:26:00 schwarze Exp $ */ +/* $Id: roff.c,v 1.217 2014/07/04 16:12:08 schwarze Exp $ */ /* * Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -856,7 +856,8 @@ roff_cblock(ROFF_ARGS) } if ((*bufp)[pos]) - mandoc_msg(MANDOCERR_ARGSLOST, r->parse, ln, pos, NULL); + mandoc_vmsg(MANDOCERR_ARG_SKIP, r->parse, ln, pos, + ".. %s", *bufp + pos); roffnode_pop(r); roffnode_cleanscope(r); @@ -917,7 +918,8 @@ roff_block(ROFF_ARGS) if (ROFF_ig != tok) { if ('\0' == *cp) { - mandoc_msg(MANDOCERR_NOARGS, r->parse, ln, ppos, NULL); + mandoc_msg(MANDOCERR_REQ_EMPTY, r->parse, + ln, ppos, roffs[tok].name); return(ROFF_IGN); } @@ -959,7 +961,8 @@ roff_block(ROFF_ARGS) r->last->end = mandoc_strndup(name, namesz); if ('\0' != *cp) - mandoc_msg(MANDOCERR_ARGSLOST, r->parse, ln, pos, NULL); + mandoc_vmsg(MANDOCERR_ARG_EXCESS, r->parse, + ln, pos, ".%s ... %s", roffs[tok].name, cp); return(ROFF_IGN); } @@ -1285,7 +1288,8 @@ roff_cond(ROFF_ARGS) */ if ('\0' == (*bufp)[pos]) - mandoc_msg(MANDOCERR_NOARGS, r->parse, ln, ppos, NULL); + mandoc_msg(MANDOCERR_COND_EMPTY, r->parse, + ln, ppos, roffs[tok].name); r->last->endspan = 1; @@ -2018,10 +2022,12 @@ roff_getname(struct roff *r, char **cpp, int ln, int p } if ('\\' != *cp) continue; + namesz = cp - name; + if ('{' == cp[1] || '}' == cp[1]) + break; cp++; if ('\\' == *cp) continue; - namesz = cp - name - 1; mandoc_msg(MANDOCERR_NAMESC, r->parse, ln, pos, NULL); mandoc_escape((const char **)&cp, NULL, NULL); break;