version 1.216, 2017/02/16 03:00:23 |
version 1.218, 2017/04/17 12:53:29 |
Line 381 rew_elem(struct roff_man *mdoc, int tok) |
|
Line 381 rew_elem(struct roff_man *mdoc, int tok) |
|
static void |
static void |
break_intermediate(struct roff_node *n, struct roff_node *breaker) |
break_intermediate(struct roff_node *n, struct roff_node *breaker) |
{ |
{ |
|
if (n != breaker && |
|
n->type != ROFFT_BLOCK && n->type != ROFFT_HEAD && |
|
(n->type != ROFFT_BODY || n->end != ENDBODY_NOT)) |
|
n = n->parent; |
while (n != breaker) { |
while (n != breaker) { |
if ( ! (n->flags & NODE_VALID)) |
if ( ! (n->flags & NODE_VALID)) |
n->flags |= NODE_BROKEN; |
n->flags |= NODE_BROKEN; |
Line 410 find_pending(struct roff_man *mdoc, int tok, int line, |
|
Line 414 find_pending(struct roff_man *mdoc, int tok, int line, |
|
if (n->type == ROFFT_BLOCK && |
if (n->type == ROFFT_BLOCK && |
mdoc_macros[n->tok].flags & MDOC_EXPLICIT) { |
mdoc_macros[n->tok].flags & MDOC_EXPLICIT) { |
irc = 1; |
irc = 1; |
break_intermediate(mdoc->last, n); |
break_intermediate(mdoc->last, target); |
n->flags |= NODE_BROKEN; |
|
if (target->type == ROFFT_HEAD) |
if (target->type == ROFFT_HEAD) |
target->flags |= NODE_ENDED; |
target->flags |= NODE_ENDED; |
else if ( ! (target->flags & NODE_ENDED)) { |
else if ( ! (target->flags & NODE_ENDED)) { |
Line 900 in_line(MACRO_PROT_ARGS) |
|
Line 903 in_line(MACRO_PROT_ARGS) |
|
} |
} |
} |
} |
|
|
if (scope) |
if (scope && tok != MDOC_Lk) { |
rew_elem(mdoc, tok); |
rew_elem(mdoc, tok); |
|
scope = 0; |
|
} |
|
|
/* |
/* |
* If no elements have been collected and we're allowed to have |
* If no elements have been collected and we're allowed to have |
Line 921 in_line(MACRO_PROT_ARGS) |
|
Line 926 in_line(MACRO_PROT_ARGS) |
|
} |
} |
if (nl) |
if (nl) |
append_delims(mdoc, line, pos, buf); |
append_delims(mdoc, line, pos, buf); |
|
if (scope) |
|
rew_elem(mdoc, tok); |
} |
} |
|
|
static void |
static void |