version 1.16, 2009/01/01 20:40:16 |
version 1.18, 2009/01/03 18:38:39 |
Line 146 append_text_argv(struct mdoc *mdoc, int tok, int pos, |
|
Line 146 append_text_argv(struct mdoc *mdoc, int tok, int pos, |
|
|
|
if ( ! mdoc_valid_pre(mdoc, tok, pos, 0, NULL, argc, argv)) |
if ( ! mdoc_valid_pre(mdoc, tok, pos, 0, NULL, argc, argv)) |
return(0); |
return(0); |
|
|
|
switch (tok) { |
|
case (MDOC_Pf): |
|
/* TODO: only use first two arguments in element. */ |
|
break; |
|
default: |
|
break; |
|
} |
|
|
mdoc_elem_alloc(mdoc, pos, tok, (size_t)argc, |
mdoc_elem_alloc(mdoc, pos, tok, (size_t)argc, |
argv, (size_t)sz, _CC(args)); |
argv, (size_t)sz, _CC(args)); |
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc->next = MDOC_NEXT_SIBLING; |
Line 162 append_text(struct mdoc *mdoc, int tok, |
|
Line 171 append_text(struct mdoc *mdoc, int tok, |
|
return(0); |
return(0); |
|
|
switch (tok) { |
switch (tok) { |
|
/* |
|
* FIXME: deprecate this "feature" of mdoc(7). |
|
*/ |
case (MDOC_At): |
case (MDOC_At): |
if (0 == sz) |
if (0 == sz) |
break; |
break; |
Line 201 macro_text(MACRO_PROT_ARGS) |
|
Line 213 macro_text(MACRO_PROT_ARGS) |
|
/* Token pre-processing. */ |
/* Token pre-processing. */ |
|
|
switch (tok) { |
switch (tok) { |
|
/* FIXME: move to validate.c. */ |
case (MDOC_Pp): |
case (MDOC_Pp): |
/* `.Pp' ignored when following `.Sh' or `.Ss'. */ |
/* `.Pp' ignored when following `.Sh' or `.Ss'. */ |
assert(mdoc->last); |
assert(mdoc->last); |
Line 332 macro_close_explicit(MACRO_PROT_ARGS) |
|
Line 345 macro_close_explicit(MACRO_PROT_ARGS) |
|
case (MDOC_Re): |
case (MDOC_Re): |
tt = MDOC_Rs; |
tt = MDOC_Rs; |
break; |
break; |
|
case (MDOC_Ef): |
|
tt = MDOC_Bf; |
|
break; |
default: |
default: |
abort(); |
abort(); |
/* NOTREACHED */ |
/* NOTREACHED */ |
} |
} |
|
|
|
if (0 != buf[*pos]) |
|
return(mdoc_err(mdoc, tok, ppos, ERR_ARGS_EQ0)); |
return(scope_rewind_exp(mdoc, ppos, tok, tt)); |
return(scope_rewind_exp(mdoc, ppos, tok, tt)); |
} |
} |
|
|
Line 453 macro_scoped(MACRO_PROT_ARGS) |
|
Line 471 macro_scoped(MACRO_PROT_ARGS) |
|
|
|
mdoc_argv_free(argc, argv); |
mdoc_argv_free(argc, argv); |
|
|
mdoc_head_alloc(mdoc, ppos, tok); |
if (sz > 0) { |
mdoc->next = MDOC_NEXT_CHILD; |
mdoc_head_alloc(mdoc, ppos, tok); |
|
mdoc->next = MDOC_NEXT_CHILD; |
for (i = 0; i < sz; i++) { |
|
mdoc_word_alloc(mdoc, ppos, args[i]); |
for (i = 0; i < sz; i++) { |
mdoc->next = MDOC_NEXT_SIBLING; |
mdoc_word_alloc(mdoc, ppos, args[i]); |
|
mdoc->next = MDOC_NEXT_SIBLING; |
|
} |
|
|
|
if ( ! scope_rewind_line(mdoc, ppos, tok)) |
|
return(0); |
} |
} |
|
|
if ( ! scope_rewind_line(mdoc, ppos, tok)) |
|
return(0); |
|
|
|
mdoc_body_alloc(mdoc, ppos, tok); |
mdoc_body_alloc(mdoc, ppos, tok); |
mdoc->next = MDOC_NEXT_CHILD; |
mdoc->next = MDOC_NEXT_CHILD; |
|
|
|
|
} |
} |
|
|
|
|
|
/* |
|
* FIXME: like in with macro_constant, have the append_ routine chop the |
|
* number of requisite arguments (this is ugly when done in-line). |
|
*/ |
int |
int |
macro_constant_delimited(MACRO_PROT_ARGS) |
macro_constant_delimited(MACRO_PROT_ARGS) |
{ |
{ |