version 1.194, 2015/04/21 16:14:25 |
version 1.197, 2015/04/29 21:58:32 |
Line 210 const struct mdoc_macro * const mdoc_macros = __mdoc_m |
|
Line 210 const struct mdoc_macro * const mdoc_macros = __mdoc_m |
|
* are errors. |
* are errors. |
*/ |
*/ |
void |
void |
mdoc_macroend(struct roff_man *mdoc) |
mdoc_endparse(struct roff_man *mdoc) |
{ |
{ |
struct roff_node *n; |
struct roff_node *n; |
|
|
Line 644 blk_exp_close(MACRO_PROT_ARGS) |
|
Line 644 blk_exp_close(MACRO_PROT_ARGS) |
|
if (body == NULL) { |
if (body == NULL) { |
mandoc_msg(MANDOCERR_BLK_NOTOPEN, mdoc->parse, |
mandoc_msg(MANDOCERR_BLK_NOTOPEN, mdoc->parse, |
line, ppos, mdoc_macronames[tok]); |
line, ppos, mdoc_macronames[tok]); |
|
if (later != NULL) |
|
later->flags &= ~MDOC_BROKEN; |
if (maxargs && endbody == NULL) { |
if (maxargs && endbody == NULL) { |
/* |
/* |
* Stray .Ec without previous .Eo: |
* Stray .Ec without previous .Eo: |
Line 671 blk_exp_close(MACRO_PROT_ARGS) |
|
Line 673 blk_exp_close(MACRO_PROT_ARGS) |
|
|
|
if (endbody != NULL) |
if (endbody != NULL) |
n = endbody; |
n = endbody; |
|
|
|
ntok = TOKEN_NONE; |
for (j = 0; ; j++) { |
for (j = 0; ; j++) { |
lastarg = *pos; |
lastarg = *pos; |
|
|
Line 698 blk_exp_close(MACRO_PROT_ARGS) |
|
Line 702 blk_exp_close(MACRO_PROT_ARGS) |
|
} |
} |
|
|
if (n != NULL) { |
if (n != NULL) { |
if (n != mdoc->last && n->flags & MDOC_BROKEN) { |
if (ntok != TOKEN_NONE && n->flags & MDOC_BROKEN) { |
target = n; |
target = n; |
do |
do |
target = target->parent; |
target = target->parent; |