=================================================================== RCS file: /cvs/mandoc/mdoc_validate.c,v retrieving revision 1.276 retrieving revision 1.279 diff -u -p -r1.276 -r1.279 --- mandoc/mdoc_validate.c 2015/02/06 16:06:25 1.276 +++ mandoc/mdoc_validate.c 2015/02/14 13:23:57 1.279 @@ -1,4 +1,4 @@ -/* $Id: mdoc_validate.c,v 1.276 2015/02/06 16:06:25 schwarze Exp $ */ +/* $Id: mdoc_validate.c,v 1.279 2015/02/14 13:23:57 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2015 Ingo Schwarze @@ -298,7 +298,8 @@ mdoc_valid_pre(struct mdoc *mdoc, struct mdoc_node *n) switch (n->type) { case MDOC_TEXT: - check_text(mdoc, n->line, n->pos, n->string); + if (n->sec != SEC_SYNOPSIS || n->parent->tok != MDOC_Fd) + check_text(mdoc, n->line, n->pos, n->string); /* FALLTHROUGH */ case MDOC_TBL: /* FALLTHROUGH */ @@ -325,7 +326,7 @@ mdoc_valid_post(struct mdoc *mdoc) n = mdoc->last; if (n->flags & MDOC_VALID) return; - n->flags |= MDOC_VALID; + n->flags |= MDOC_VALID | MDOC_ENDED; switch (n->type) { case MDOC_TEXT: @@ -416,24 +417,13 @@ pre_display(PRE_ARGS) static void pre_bl(PRE_ARGS) { - struct mdoc_node *np; struct mdoc_argv *argv, *wa; int i; enum mdocargt mdoclt; enum mdoc_list lt; - if (MDOC_BLOCK != n->type) { - if (ENDBODY_NOT != n->end) { - assert(n->pending); - np = n->pending->parent; - } else - np = n->parent; - - assert(np); - assert(MDOC_BLOCK == np->type); - assert(MDOC_Bl == np->tok); + if (n->type != MDOC_BLOCK) return; - } /* * First figure out which kind of list to use: bind ourselves to @@ -609,25 +599,14 @@ pre_bl(PRE_ARGS) static void pre_bd(PRE_ARGS) { - struct mdoc_node *np; struct mdoc_argv *argv; int i; enum mdoc_disp dt; pre_literal(mdoc, n); - if (MDOC_BLOCK != n->type) { - if (ENDBODY_NOT != n->end) { - assert(n->pending); - np = n->pending->parent; - } else - np = n->parent; - - assert(np); - assert(MDOC_BLOCK == np->type); - assert(MDOC_Bd == np->tok); + if (n->type != MDOC_BLOCK) return; - } for (i = 0; n->args && i < (int)n->args->argc; i++) { argv = n->args->argv + i; @@ -797,22 +776,10 @@ post_bf(POST_ARGS) * element, which contains the goods. */ - if (MDOC_HEAD != mdoc->last->type) { - if (ENDBODY_NOT != mdoc->last->end) { - assert(mdoc->last->pending); - np = mdoc->last->pending->parent->head; - } else if (MDOC_BLOCK != mdoc->last->type) { - np = mdoc->last->parent->head; - } else - np = mdoc->last->head; - - assert(np); - assert(MDOC_HEAD == np->type); - assert(MDOC_Bf == np->tok); + np = mdoc->last; + if (MDOC_HEAD != np->type) return; - } - np = mdoc->last; assert(MDOC_BLOCK == np->parent->type); assert(MDOC_Bf == np->parent->tok); @@ -1815,7 +1782,7 @@ static void post_sh_see_also(POST_ARGS) { const struct mdoc_node *n; - const char *name, *sec; + const char *name, *sec; const char *lastname, *lastsec, *lastpunct; int cmp;