version 1.97, 2015/02/06 09:38:43 |
version 1.98, 2015/02/06 11:54:36 |
Line 337 blk_close(MACRO_PROT_ARGS) |
|
Line 337 blk_close(MACRO_PROT_ARGS) |
|
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); |
} |
} |
|
|