=================================================================== RCS file: /cvs/mandoc/mdoc.c,v retrieving revision 1.217 retrieving revision 1.221 diff -u -p -r1.217 -r1.221 --- mandoc/mdoc.c 2014/07/02 03:48:07 1.217 +++ mandoc/mdoc.c 2014/07/30 21:18:24 1.221 @@ -1,4 +1,4 @@ -/* $Id: mdoc.c,v 1.217 2014/07/02 03:48:07 schwarze Exp $ */ +/* $Id: mdoc.c,v 1.221 2014/07/30 21:18:24 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze @@ -104,7 +104,6 @@ const struct mdoc_node * mdoc_node(const struct mdoc *mdoc) { - assert( ! (MDOC_HALT & mdoc->flags)); return(mdoc->first); } @@ -112,7 +111,6 @@ const struct mdoc_meta * mdoc_meta(const struct mdoc *mdoc) { - assert( ! (MDOC_HALT & mdoc->flags)); return(&mdoc->meta); } @@ -189,7 +187,7 @@ mdoc_free(struct mdoc *mdoc) */ struct mdoc * mdoc_alloc(struct roff *roff, struct mparse *parse, - char *defos, int quick) + const char *defos, int quick) { struct mdoc *p; @@ -205,19 +203,11 @@ mdoc_alloc(struct roff *roff, struct mparse *parse, return(p); } -/* - * Climb back up the parse tree, validating open scopes. Mostly calls - * through to macro_end() in macro.c. - */ int mdoc_endparse(struct mdoc *mdoc) { - assert( ! (MDOC_HALT & mdoc->flags)); - if (mdoc_macroend(mdoc)) - return(1); - mdoc->flags |= MDOC_HALT; - return(0); + return(mdoc_macroend(mdoc)); } int @@ -225,15 +215,6 @@ mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep) { struct mdoc_node *n; - assert( ! (MDOC_HALT & mdoc->flags)); - - /* No text before an initial macro. */ - - if (SEC_NONE == mdoc->lastnamed) { - mdoc_pmsg(mdoc, ep->ln, ep->pos, MANDOCERR_NOTEXT); - return(1); - } - n = node_alloc(mdoc, ep->ln, ep->pos, MDOC_MAX, MDOC_EQN); n->eqn = ep; @@ -249,15 +230,6 @@ mdoc_addspan(struct mdoc *mdoc, const struct tbl_span { struct mdoc_node *n; - assert( ! (MDOC_HALT & mdoc->flags)); - - /* No text before an initial macro. */ - - if (SEC_NONE == mdoc->lastnamed) { - mdoc_pmsg(mdoc, sp->line, 0, MANDOCERR_NOTEXT); - return(1); - } - n = node_alloc(mdoc, sp->line, 0, MDOC_MAX, MDOC_TBL); n->span = sp; @@ -276,8 +248,6 @@ int mdoc_parseln(struct mdoc *mdoc, int ln, char *buf, int offs) { - assert( ! (MDOC_HALT & mdoc->flags)); - mdoc->flags |= MDOC_NEWLINE; /* @@ -722,13 +692,6 @@ mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int char *c, *ws, *end; struct mdoc_node *n; - /* No text before an initial macro. */ - - if (SEC_NONE == mdoc->lastnamed) { - mdoc_pmsg(mdoc, line, offs, MANDOCERR_NOTEXT); - return(1); - } - assert(mdoc->last); n = mdoc->last; @@ -797,10 +760,12 @@ mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int *end = '\0'; if (ws) - mdoc_pmsg(mdoc, line, (int)(ws-buf), MANDOCERR_EOLNSPACE); + mandoc_msg(MANDOCERR_SPACE_EOL, mdoc->parse, + line, (int)(ws-buf), NULL); if ('\0' == buf[offs] && ! (MDOC_LITERAL & mdoc->flags)) { - mdoc_pmsg(mdoc, line, (int)(c-buf), MANDOCERR_NOBLANKLN); + mandoc_msg(MANDOCERR_FI_BLANK, mdoc->parse, + line, (int)(c - buf), NULL); /* * Insert a `sp' in the case of a blank line. Technically, @@ -850,7 +815,8 @@ mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int /* Empty post-control lines are ignored. */ if ('"' == buf[offs]) { - mdoc_pmsg(mdoc, ln, offs, MANDOCERR_BADCOMMENT); + mandoc_msg(MANDOCERR_COMMENT_BAD, mdoc->parse, + ln, offs, NULL); return(1); } else if ('\0' == buf[offs]) return(1); @@ -893,18 +859,16 @@ mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int */ if ('\0' == buf[offs] && ' ' == buf[offs - 1]) - mdoc_pmsg(mdoc, ln, offs - 1, MANDOCERR_EOLNSPACE); + mandoc_msg(MANDOCERR_SPACE_EOL, mdoc->parse, + ln, offs - 1, NULL); /* * If an initial macro or a list invocation, divert directly * into macro processing. */ - if (NULL == mdoc->last || MDOC_It == tok || MDOC_El == tok) { - if ( ! mdoc_macro(mdoc, tok, ln, sv, &offs, buf)) - goto err; - return(1); - } + if (NULL == mdoc->last || MDOC_It == tok || MDOC_El == tok) + return(mdoc_macro(mdoc, tok, ln, sv, &offs, buf)); n = mdoc->last; assert(mdoc->last); @@ -917,9 +881,7 @@ mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int if (MDOC_Bl == n->tok && MDOC_BODY == n->type && LIST_column == n->norm->Bl.type) { mdoc->flags |= MDOC_FREECOL; - if ( ! mdoc_macro(mdoc, MDOC_It, ln, sv, &sv, buf)) - goto err; - return(1); + return(mdoc_macro(mdoc, MDOC_It, ln, sv, &sv, buf)); } /* @@ -933,15 +895,13 @@ mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int MDOC_Bl == n->parent->tok && LIST_column == n->parent->norm->Bl.type) { mdoc->flags |= MDOC_FREECOL; - if ( ! mdoc_macro(mdoc, MDOC_It, ln, sv, &sv, buf)) - goto err; - return(1); + return(mdoc_macro(mdoc, MDOC_It, ln, sv, &sv, buf)); } /* Normal processing of a macro. */ if ( ! mdoc_macro(mdoc, tok, ln, sv, &offs, buf)) - goto err; + return(0); /* In quick mode (for mandocdb), abort after the NAME section. */ @@ -950,11 +910,6 @@ mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int return(2); return(1); - -err: /* Error out. */ - - mdoc->flags |= MDOC_HALT; - return(0); } enum mdelim