version 1.42, 2009/01/19 17:02:58 |
version 1.43, 2009/01/19 17:51:32 |
Line 961 macro_constant_delimited(MACRO_PROT_ARGS) |
|
Line 961 macro_constant_delimited(MACRO_PROT_ARGS) |
|
int |
int |
macro_constant(MACRO_PROT_ARGS) |
macro_constant(MACRO_PROT_ARGS) |
{ |
{ |
int c, lastarg, argc, fl; |
int c, lastarg, argc, fl; |
struct mdoc_arg argv[MDOC_LINEARG_MAX]; |
struct mdoc_arg argv[MDOC_LINEARG_MAX]; |
char *p; |
char *p; |
|
struct mdoc_node *n; |
|
|
fl = 0; |
fl = 0; |
if (MDOC_QUOTABLE & mdoc_macros[tok].flags) |
if (MDOC_QUOTABLE & mdoc_macros[tok].flags) |
Line 1019 macro_constant(MACRO_PROT_ARGS) |
|
Line 1020 macro_constant(MACRO_PROT_ARGS) |
|
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc->next = MDOC_NEXT_SIBLING; |
} |
} |
|
|
return(rewind_elem(mdoc, tok)); |
if ( ! rewind_elem(mdoc, tok)) |
|
return(0); |
|
if ( ! (MDOC_NOKEEP & mdoc_macros[tok].flags)) |
|
return(1); |
|
|
|
assert(mdoc->last->tok == tok); |
|
if (mdoc->last->parent->child == mdoc->last) |
|
mdoc->last->parent->child = mdoc->last->prev; |
|
if (mdoc->last->prev) |
|
mdoc->last->prev->next = NULL; |
|
|
|
n = mdoc->last; |
|
assert(NULL == mdoc->last->next); |
|
|
|
if (mdoc->last->prev) { |
|
mdoc->last = mdoc->last->prev; |
|
mdoc->next = MDOC_NEXT_SIBLING; |
|
} else { |
|
mdoc->last = mdoc->last->parent; |
|
mdoc->next = MDOC_NEXT_CHILD; |
|
} |
|
|
|
mdoc_node_freelist(n); |
|
|
|
return(1); |
} |
} |
|
|
|
|