- for (n = mdoc->last; n; n = n->parent) {
- c = rew_dohalt(tok, type, n);
- if (REWIND_HALT == c)
- return(1);
- if (REWIND_REWIND == c)
- break;
- else if (rew_dobreak(tok, n))
- continue;
- if ( ! swarn(mdoc, type, line, ppos, n))
- return(0);
- }
-
- assert(n);
- return(rew_last(mdoc, n));
-}
-
-
-static int
-rew_expblock(struct mdoc *mdoc, int tok, int line, int ppos)
-{
- struct mdoc_node *n;
- int c;
-
- /* LINTED */
- for (n = mdoc->last; n; n = n->parent) {
- c = rew_dohalt(tok, MDOC_BLOCK, n);
- if (REWIND_HALT == c)
- return(mdoc_perr(mdoc, line, ppos, ENOCTX));
+ for (n = m->last; n; n = n->parent) {
+ c = rew_dohalt(tok, t, n);
+ if (REWIND_HALT == c) {
+ if (MDOC_BLOCK != t)
+ return(1);
+ if ( ! (MDOC_EXPLICIT & mdoc_macros[tok].flags))
+ return(1);
+ return(mdoc_perr(m, line, ppos, ENOCTX));
+ }