version 1.192, 2015/04/19 14:25:41 |
version 1.196, 2015/04/29 14:48:53 |
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 291 rew_pending(struct roff_man *mdoc, const struct roff_n |
|
Line 291 rew_pending(struct roff_man *mdoc, const struct roff_n |
|
for (;;) { |
for (;;) { |
rew_last(mdoc, n); |
rew_last(mdoc, n); |
|
|
switch (n->type) { |
if (mdoc->last == n) { |
case ROFFT_HEAD: |
switch (n->type) { |
roff_body_alloc(mdoc, n->line, n->pos, n->tok); |
case ROFFT_HEAD: |
return; |
roff_body_alloc(mdoc, n->line, n->pos, |
case ROFFT_BLOCK: |
n->tok); |
break; |
return; |
default: |
case ROFFT_BLOCK: |
return; |
break; |
} |
default: |
|
return; |
|
} |
|
if ( ! (n->flags & MDOC_BROKEN)) |
|
return; |
|
} else |
|
n = mdoc->last; |
|
|
if ( ! (n->flags & MDOC_BROKEN)) |
|
return; |
|
|
|
for (;;) { |
for (;;) { |
if ((n = n->parent) == NULL) |
if ((n = n->parent) == NULL) |
return; |
return; |
Line 641 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: |
* Break the output line, keep the arguments. |
* Break the output line, keep the arguments. |
*/ |
*/ |
mdoc_elem_alloc(mdoc, line, ppos, MDOC_br, NULL); |
roff_elem_alloc(mdoc, line, ppos, MDOC_br); |
rew_elem(mdoc, MDOC_br); |
rew_elem(mdoc, MDOC_br); |
} |
} |
} else if (endbody == NULL) { |
} else if (endbody == NULL) { |
Line 990 blk_full(MACRO_PROT_ARGS) |
|
Line 995 blk_full(MACRO_PROT_ARGS) |
|
if (tok == MDOC_It && (n == NULL || n->tok != MDOC_Bl)) { |
if (tok == MDOC_It && (n == NULL || n->tok != MDOC_Bl)) { |
mandoc_vmsg(MANDOCERR_IT_STRAY, mdoc->parse, |
mandoc_vmsg(MANDOCERR_IT_STRAY, mdoc->parse, |
line, ppos, "It %s", buf + *pos); |
line, ppos, "It %s", buf + *pos); |
mdoc_elem_alloc(mdoc, line, ppos, MDOC_br, NULL); |
roff_elem_alloc(mdoc, line, ppos, MDOC_br); |
rew_elem(mdoc, MDOC_br); |
rew_elem(mdoc, MDOC_br); |
return; |
return; |
} |
} |
Line 1223 blk_part_exp(MACRO_PROT_ARGS) |
|
Line 1228 blk_part_exp(MACRO_PROT_ARGS) |
|
* case of `Eo'); and a body that may be empty. |
* case of `Eo'); and a body that may be empty. |
*/ |
*/ |
|
|
mdoc_block_alloc(mdoc, line, ppos, tok, NULL); |
roff_block_alloc(mdoc, line, ppos, tok); |
head = NULL; |
head = NULL; |
for (;;) { |
for (;;) { |
la = *pos; |
la = *pos; |