=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_macro.c,v retrieving revision 1.165 retrieving revision 1.166 diff -c -r1.165 -r1.166 *** src/usr.bin/mandoc/mdoc_macro.c 2016/08/20 17:58:09 1.165 --- src/usr.bin/mandoc/mdoc_macro.c 2017/01/10 13:46:53 1.166 *************** *** 1,4 **** ! /* $OpenBSD: mdoc_macro.c,v 1.165 2016/08/20 17:58:09 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010, 2012-2016 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: mdoc_macro.c,v 1.166 2017/01/10 13:46:53 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010, 2012-2016 Ingo Schwarze *************** *** 214,220 **** /* Scan for open explicit scopes. */ ! n = mdoc->last->flags & MDOC_VALID ? mdoc->last->parent : mdoc->last; for ( ; n; n = n->parent) --- 214,220 ---- /* Scan for open explicit scopes. */ ! n = mdoc->last->flags & NODE_VALID ? mdoc->last->parent : mdoc->last; for ( ; n; n = n->parent) *************** *** 262,277 **** rew_last(struct roff_man *mdoc, const struct roff_node *to) { ! if (to->flags & MDOC_VALID) return; while (mdoc->last != to) { mdoc_state(mdoc, mdoc->last); ! mdoc->last->flags |= MDOC_VALID | MDOC_ENDED; mdoc->last = mdoc->last->parent; } mdoc_state(mdoc, mdoc->last); ! mdoc->last->flags |= MDOC_VALID | MDOC_ENDED; mdoc->next = ROFF_NEXT_SIBLING; } --- 262,277 ---- rew_last(struct roff_man *mdoc, const struct roff_node *to) { ! if (to->flags & NODE_VALID) return; while (mdoc->last != to) { mdoc_state(mdoc, mdoc->last); ! mdoc->last->flags |= NODE_VALID | NODE_ENDED; mdoc->last = mdoc->last->parent; } mdoc_state(mdoc, mdoc->last); ! mdoc->last->flags |= NODE_VALID | NODE_ENDED; mdoc->next = ROFF_NEXT_SIBLING; } *************** *** 296,302 **** default: return; } ! if ( ! (n->flags & MDOC_BROKEN)) return; } else n = mdoc->last; --- 296,302 ---- default: return; } ! if ( ! (n->flags & NODE_BROKEN)) return; } else n = mdoc->last; *************** *** 307,313 **** if (n->type == ROFFT_BLOCK || n->type == ROFFT_HEAD) { ! if (n->flags & MDOC_ENDED) break; else return; --- 307,313 ---- if (n->type == ROFFT_BLOCK || n->type == ROFFT_HEAD) { ! if (n->flags & NODE_ENDED) break; else return; *************** *** 388,405 **** irc = 0; for (n = mdoc->last; n != NULL && n != target; n = n->parent) { ! if (n->flags & MDOC_ENDED) { ! if ( ! (n->flags & MDOC_VALID)) ! n->flags |= MDOC_BROKEN; continue; } if (n->type == ROFFT_BLOCK && mdoc_macros[n->tok].flags & MDOC_EXPLICIT) { irc = 1; ! n->flags = MDOC_BROKEN; if (target->type == ROFFT_HEAD) ! target->flags = MDOC_ENDED; ! else if ( ! (target->flags & MDOC_ENDED)) { mandoc_vmsg(MANDOCERR_BLK_NEST, mdoc->parse, line, ppos, "%s breaks %s", mdoc_macronames[tok], --- 388,405 ---- irc = 0; for (n = mdoc->last; n != NULL && n != target; n = n->parent) { ! if (n->flags & NODE_ENDED) { ! if ( ! (n->flags & NODE_VALID)) ! n->flags |= NODE_BROKEN; continue; } if (n->type == ROFFT_BLOCK && mdoc_macros[n->tok].flags & MDOC_EXPLICIT) { irc = 1; ! n->flags = NODE_BROKEN; if (target->type == ROFFT_HEAD) ! target->flags = NODE_ENDED; ! else if ( ! (target->flags & NODE_ENDED)) { mandoc_vmsg(MANDOCERR_BLK_NEST, mdoc->parse, line, ppos, "%s breaks %s", mdoc_macronames[tok], *************** *** 442,452 **** */ if (d == DELIM_OPEN) ! mdoc->last->flags |= MDOC_DELIMO; else if (d == DELIM_CLOSE && ! (mdoc->flags & MDOC_NODELIMC) && mdoc->last->parent->tok != MDOC_Fd) ! mdoc->last->flags |= MDOC_DELIMC; mdoc->flags &= ~MDOC_NODELIMC; } --- 442,452 ---- */ if (d == DELIM_OPEN) ! mdoc->last->flags |= NODE_DELIMO; else if (d == DELIM_CLOSE && ! (mdoc->flags & MDOC_NODELIMC) && mdoc->last->parent->tok != MDOC_Fd) ! mdoc->last->flags |= NODE_DELIMC; mdoc->flags &= ~MDOC_NODELIMC; } *************** *** 479,485 **** */ if (mandoc_eos(p, strlen(p))) ! mdoc->last->flags |= MDOC_EOS; } } --- 479,485 ---- */ if (mandoc_eos(p, strlen(p))) ! mdoc->last->flags |= NODE_EOS; } } *************** *** 552,558 **** atok = rew_alt(tok); body = NULL; for (n = mdoc->last; n; n = n->parent) { ! if (n->flags & MDOC_ENDED || n->tok != atok || n->type != ROFFT_BODY || n->end != ENDBODY_NOT) continue; body = n; --- 552,558 ---- atok = rew_alt(tok); body = NULL; for (n = mdoc->last; n; n = n->parent) { ! if (n->flags & NODE_ENDED || n->tok != atok || n->type != ROFFT_BODY || n->end != ENDBODY_NOT) continue; body = n; *************** *** 566,574 **** endbody = itblk = later = NULL; for (n = mdoc->last; n; n = n->parent) { ! if (n->flags & MDOC_ENDED) { ! if ( ! (n->flags & MDOC_VALID)) ! n->flags |= MDOC_BROKEN; continue; } --- 566,574 ---- endbody = itblk = later = NULL; for (n = mdoc->last; n; n = n->parent) { ! if (n->flags & NODE_ENDED) { ! if ( ! (n->flags & NODE_VALID)) ! n->flags |= NODE_BROKEN; continue; } *************** *** 618,624 **** atok, body, ENDBODY_SPACE); if (tok == MDOC_El) ! itblk->flags |= MDOC_ENDED | MDOC_BROKEN; /* * If a block closing macro taking arguments --- 618,624 ---- atok, body, ENDBODY_SPACE); if (tok == MDOC_El) ! itblk->flags |= NODE_ENDED | NODE_BROKEN; /* * If a block closing macro taking arguments *************** *** 640,646 **** /* Breaking an open sub block. */ ! n->flags |= MDOC_BROKEN; if (later == NULL) later = n; } --- 640,646 ---- /* Breaking an open sub block. */ ! n->flags |= NODE_BROKEN; if (later == NULL) later = n; } *************** *** 704,714 **** } if (n != NULL) { ! if (ntok != TOKEN_NONE && n->flags & MDOC_BROKEN) { target = n; do target = target->parent; ! while ( ! (target->flags & MDOC_ENDED)); pending = find_pending(mdoc, ntok, line, ppos, target); } else --- 704,714 ---- } if (n != NULL) { ! if (ntok != TOKEN_NONE && n->flags & NODE_BROKEN) { target = n; do target = target->parent; ! while ( ! (target->flags & NODE_ENDED)); pending = find_pending(mdoc, ntok, line, ppos, target); } else *************** *** 767,773 **** if (ac == ARGS_EOLN) { if (d == DELIM_OPEN) ! mdoc->last->flags &= ~MDOC_DELIMO; break; } --- 767,773 ---- if (ac == ARGS_EOLN) { if (d == DELIM_OPEN) ! mdoc->last->flags &= ~NODE_DELIMO; break; } *************** *** 861,867 **** */ if (firstarg && d == DELIM_CLOSE && !nc) ! mdoc->last->flags &= ~MDOC_DELIMC; firstarg = 0; /* --- 861,867 ---- */ if (firstarg && d == DELIM_CLOSE && !nc) ! mdoc->last->flags &= ~NODE_DELIMC; firstarg = 0; /* *************** *** 924,932 **** blk = NULL; for (n = mdoc->last; n != NULL; n = n->parent) { ! if (n->flags & MDOC_ENDED) { ! if ( ! (n->flags & MDOC_VALID)) ! n->flags |= MDOC_BROKEN; continue; } if (n->type != ROFFT_BLOCK) --- 924,932 ---- blk = NULL; for (n = mdoc->last; n != NULL; n = n->parent) { ! if (n->flags & NODE_ENDED) { ! if ( ! (n->flags & NODE_VALID)) ! n->flags |= NODE_BROKEN; continue; } if (n->type != ROFFT_BLOCK) *************** *** 1127,1133 **** break; } ! if (blk->flags & MDOC_VALID) return; if (head == NULL) head = roff_head_alloc(mdoc, line, ppos, tok); --- 1127,1133 ---- break; } ! if (blk->flags & NODE_VALID) return; if (head == NULL) head = roff_head_alloc(mdoc, line, ppos, tok); *************** *** 1462,1468 **** body = NULL; for (n = mdoc->last; n != NULL; n = n->parent) { ! if (n->flags & MDOC_ENDED) continue; if (n->tok == MDOC_It && n->type == ROFFT_BODY) body = n; --- 1462,1468 ---- body = NULL; for (n = mdoc->last; n != NULL; n = n->parent) { ! if (n->flags & NODE_ENDED) continue; if (n->tok == MDOC_It && n->type == ROFFT_BODY) body = n;