From 50ffcd72be49e8f794384aa7bc4041065cf94d13 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Sat, 3 Jan 2009 18:38:39 +0000 Subject: *** empty log message *** --- macro.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'macro.c') diff --git a/macro.c b/macro.c index 79497bbf..c59e5ec3 100644 --- a/macro.c +++ b/macro.c @@ -1,4 +1,4 @@ -/* $Id: macro.c,v 1.17 2009/01/02 14:06:16 kristaps Exp $ */ +/* $Id: macro.c,v 1.18 2009/01/03 18:38:39 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -171,6 +171,9 @@ append_text(struct mdoc *mdoc, int tok, return(0); switch (tok) { + /* + * FIXME: deprecate this "feature" of mdoc(7). + */ case (MDOC_At): if (0 == sz) break; @@ -210,6 +213,7 @@ macro_text(MACRO_PROT_ARGS) /* Token pre-processing. */ switch (tok) { + /* FIXME: move to validate.c. */ case (MDOC_Pp): /* `.Pp' ignored when following `.Sh' or `.Ss'. */ assert(mdoc->last); @@ -349,6 +353,8 @@ macro_close_explicit(MACRO_PROT_ARGS) /* NOTREACHED */ } + if (0 != buf[*pos]) + return(mdoc_err(mdoc, tok, ppos, ERR_ARGS_EQ0)); return(scope_rewind_exp(mdoc, ppos, tok, tt)); } @@ -465,17 +471,19 @@ macro_scoped(MACRO_PROT_ARGS) mdoc_argv_free(argc, argv); - mdoc_head_alloc(mdoc, ppos, tok); - mdoc->next = MDOC_NEXT_CHILD; - - for (i = 0; i < sz; i++) { - mdoc_word_alloc(mdoc, ppos, args[i]); - mdoc->next = MDOC_NEXT_SIBLING; + if (sz > 0) { + mdoc_head_alloc(mdoc, ppos, tok); + mdoc->next = MDOC_NEXT_CHILD; + + for (i = 0; i < sz; i++) { + 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->next = MDOC_NEXT_CHILD; -- cgit v1.2.3