=================================================================== RCS file: /cvs/mandoc/mdoc_validate.c,v retrieving revision 1.254 retrieving revision 1.256 diff -u -p -r1.254 -r1.256 --- mandoc/mdoc_validate.c 2014/10/30 20:10:02 1.254 +++ mandoc/mdoc_validate.c 2014/11/26 19:24:03 1.256 @@ -1,4 +1,4 @@ -/* $Id: mdoc_validate.c,v 1.254 2014/10/30 20:10:02 schwarze Exp $ */ +/* $Id: mdoc_validate.c,v 1.256 2014/11/26 19:24:03 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -209,7 +209,7 @@ static const struct valids mdoc_valids[MDOC_MAX] = { { NULL, NULL }, /* Eo */ { NULL, NULL }, /* Fx */ { NULL, NULL }, /* Ms */ - { NULL, ewarn_eq0 }, /* No */ + { NULL, NULL }, /* No */ { NULL, post_ns }, /* Ns */ { NULL, NULL }, /* Nx */ { NULL, NULL }, /* Ox */ @@ -353,6 +353,20 @@ mdoc_valid_post(struct mdoc *mdoc) case MDOC_ROOT: return(post_root(mdoc)); default: + + /* + * Closing delimiters are not special at the + * beginning of a block, opening delimiters + * are not special at the end. + */ + + if (n->child != NULL) + n->child->flags &= ~MDOC_DELIMC; + if (n->last != NULL) + n->last->flags &= ~MDOC_DELIMO; + + /* Call the macro's postprocessor. */ + p = mdoc_valids[n->tok].post; return(*p ? (*p)(mdoc) : 1); } @@ -1162,10 +1176,6 @@ post_defaults(POST_ARGS) if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "...")) return(0); break; - case MDOC_Li: - if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "")) - return(0); - break; case MDOC_Pa: /* FALLTHROUGH */ case MDOC_Mt: @@ -1625,8 +1635,6 @@ ebool(struct mdoc *mdoc) mdoc->flags ^= MDOC_SMOFF; return(1); } - - check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_LT, 2); assert(MDOC_TEXT == nch->type);