=================================================================== RCS file: /cvs/mandoc/man.c,v retrieving revision 1.131 retrieving revision 1.134 diff -u -p -r1.131 -r1.134 --- mandoc/man.c 2014/07/06 19:09:00 1.131 +++ mandoc/man.c 2014/07/30 20:06:36 1.134 @@ -1,4 +1,4 @@ -/* $Id: man.c,v 1.131 2014/07/06 19:09:00 schwarze Exp $ */ +/* $Id: man.c,v 1.134 2014/07/30 20:06:36 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2013, 2014 Ingo Schwarze @@ -392,7 +392,7 @@ man_descope(struct man *man, int line, int offs) if (MAN_ELINE & man->flags) { man->flags &= ~MAN_ELINE; - if ( ! man_unscope(man, man->last->parent, MANDOCERR_MAX)) + if ( ! man_unscope(man, man->last->parent)) return(0); } @@ -400,7 +400,7 @@ man_descope(struct man *man, int line, int offs) return(1); man->flags &= ~MAN_BLINE; - if ( ! man_unscope(man, man->last->parent, MANDOCERR_MAX)) + if ( ! man_unscope(man, man->last->parent)) return(0); return(man_body_alloc(man, line, offs, man->last->tok)); } @@ -478,10 +478,11 @@ man_ptext(struct man *man, int line, char *buf, int of static int man_pmacro(struct man *man, int ln, char *buf, int offs) { - int i, ppos; - enum mant tok; char mac[5]; struct man_node *n; + enum mant tok; + int i, ppos; + int bline; if ('"' == buf[offs]) { mandoc_msg(MANDOCERR_COMMENT_BAD, man->parse, @@ -542,7 +543,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off if (MAN_NSCOPED & man_macros[n->tok].flags) n = n->parent; - mandoc_vmsg(MANDOCERR_LINESCOPE, man->parse, n->line, + mandoc_vmsg(MANDOCERR_BLK_LINE, man->parse, n->line, n->pos, "%s breaks %s", man_macronames[tok], man_macronames[n->tok]); @@ -573,7 +574,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off assert(MAN_BLOCK == n->type); assert(MAN_SCOPED & man_macros[n->tok].flags); - mandoc_vmsg(MANDOCERR_LINESCOPE, man->parse, n->line, + mandoc_vmsg(MANDOCERR_BLK_LINE, man->parse, n->line, n->pos, "%s breaks %s", man_macronames[tok], man_macronames[n->tok]); @@ -581,14 +582,9 @@ man_pmacro(struct man *man, int ln, char *buf, int off man->flags &= ~MAN_BLINE; } - /* - * Save the fact that we're in the next-line for a block. In - * this way, embedded roff instructions can "remember" state - * when they exit. - */ + /* Remember whether we are in next-line scope for a block head. */ - if (MAN_BLINE & man->flags) - man->flags |= MAN_BPLINE; + bline = man->flags & MAN_BLINE; /* Call to handler... */ @@ -610,11 +606,10 @@ man_pmacro(struct man *man, int ln, char *buf, int off * above-parsed macro, so return. */ - if ( ! (MAN_BPLINE & man->flags)) { + if ( ! bline) { man->flags &= ~MAN_ILINE; return(1); } - man->flags &= ~MAN_BPLINE; /* * If we're in a block scope, then allow this macro to slip by @@ -639,7 +634,7 @@ man_pmacro(struct man *man, int ln, char *buf, int off assert(MAN_BLINE & man->flags); man->flags &= ~MAN_BLINE; - if ( ! man_unscope(man, man->last->parent, MANDOCERR_MAX)) + if ( ! man_unscope(man, man->last->parent)) return(0); return(man_body_alloc(man, ln, ppos, man->last->tok));