version 1.94, 2015/01/24 02:41:49 |
version 1.98, 2015/02/06 11:54:36 |
Line 319 blk_close(MACRO_PROT_ARGS) |
|
Line 319 blk_close(MACRO_PROT_ARGS) |
|
mandoc_msg(MANDOCERR_BLK_NOTOPEN, man->parse, |
mandoc_msg(MANDOCERR_BLK_NOTOPEN, man->parse, |
line, ppos, man_macronames[tok]); |
line, ppos, man_macronames[tok]); |
rew_scope(MAN_BLOCK, man, MAN_PP); |
rew_scope(MAN_BLOCK, man, MAN_PP); |
} else |
} else { |
|
line = man->last->line; |
|
ppos = man->last->pos; |
|
ntok = man->last->tok; |
man_unscope(man, nn); |
man_unscope(man, nn); |
|
|
|
/* Move a trailing paragraph behind the block. */ |
|
|
|
if (ntok == MAN_LP || ntok == MAN_PP || ntok == MAN_P) { |
|
*pos = strlen(buf); |
|
blk_imp(man, ntok, line, ppos, pos, buf); |
|
} |
|
} |
} |
} |
|
|
void |
void |
blk_exp(MACRO_PROT_ARGS) |
blk_exp(MACRO_PROT_ARGS) |
{ |
{ |
struct man_node *n; |
struct man_node *head; |
int la; |
|
char *p; |
char *p; |
|
int la; |
|
|
rew_scope(MAN_BLOCK, man, tok); |
rew_scope(MAN_BLOCK, man, tok); |
man_block_alloc(man, line, ppos, tok); |
man_block_alloc(man, line, ppos, tok); |
man_head_alloc(man, line, ppos, tok); |
man_head_alloc(man, line, ppos, tok); |
|
head = man->last; |
|
|
for (;;) { |
la = *pos; |
la = *pos; |
if (man_args(man, line, pos, buf, &p)) |
if ( ! man_args(man, line, pos, buf, &p)) |
|
break; |
|
man_word_alloc(man, line, la, p); |
man_word_alloc(man, line, la, p); |
} |
|
|
|
assert(man); |
if (buf[*pos] != '\0') |
assert(tok != MAN_MAX); |
mandoc_vmsg(MANDOCERR_ARG_EXCESS, |
|
man->parse, line, *pos, "%s ... %s", |
|
man_macronames[tok], buf + *pos); |
|
|
for (n = man->last; n; n = n->parent) |
man_unscope(man, head); |
if (n->tok == tok) { |
|
assert(n->type == MAN_HEAD); |
|
man_unscope(man, n); |
|
break; |
|
} |
|
|
|
man_body_alloc(man, line, ppos, tok); |
man_body_alloc(man, line, ppos, tok); |
} |
} |
|
|
Line 409 in_line_eoln(MACRO_PROT_ARGS) |
|
Line 414 in_line_eoln(MACRO_PROT_ARGS) |
|
n = man->last; |
n = man->last; |
|
|
for (;;) { |
for (;;) { |
|
if (buf[*pos] != '\0' && (tok == MAN_br || |
|
tok == MAN_fi || tok == MAN_nf)) { |
|
mandoc_vmsg(MANDOCERR_ARG_SKIP, |
|
man->parse, line, *pos, "%s %s", |
|
man_macronames[tok], buf + *pos); |
|
break; |
|
} |
|
if (buf[*pos] != '\0' && man->last != n && |
|
(tok == MAN_PD || tok == MAN_ft || tok == MAN_sp)) { |
|
mandoc_vmsg(MANDOCERR_ARG_EXCESS, |
|
man->parse, line, *pos, "%s ... %s", |
|
man_macronames[tok], buf + *pos); |
|
break; |
|
} |
la = *pos; |
la = *pos; |
if ( ! man_args(man, line, pos, buf, &p)) |
if ( ! man_args(man, line, pos, buf, &p)) |
break; |
break; |