=================================================================== RCS file: /cvs/mandoc/Attic/macro.c,v retrieving revision 1.68 retrieving revision 1.71 diff -u -p -r1.68 -r1.71 --- mandoc/Attic/macro.c 2009/03/12 06:32:17 1.68 +++ mandoc/Attic/macro.c 2009/03/12 23:05:21 1.71 @@ -1,4 +1,4 @@ -/* $Id: macro.c,v 1.68 2009/03/12 06:32:17 kristaps Exp $ */ +/* $Id: macro.c,v 1.71 2009/03/12 23:05:21 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -89,7 +89,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Ad */ { macro_text, MDOC_PARSED }, /* An */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Ar */ - { macro_constant, 0 }, /* Cd */ + { macro_constant, MDOC_CALLABLE }, /* Cd */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Cm */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Dv */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Er */ @@ -128,13 +128,13 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_scoped_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Ac */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Ao */ { macro_scoped_line, MDOC_CALLABLE | MDOC_PARSED }, /* Aq */ - { macro_constant_delimited, 0 }, /* At */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* At */ { macro_scoped_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Bc */ { macro_scoped, MDOC_EXPLICIT }, /* Bf */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Bo */ { macro_scoped_line, MDOC_CALLABLE | MDOC_PARSED }, /* Bq */ - { macro_constant_delimited, MDOC_PARSED }, /* Bsx */ - { macro_constant_delimited, MDOC_PARSED }, /* Bx */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Bsx */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Bx */ { macro_constant, 0 }, /* Db */ { macro_scoped_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Dc */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Do */ @@ -143,12 +143,12 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_scoped_close, MDOC_EXPLICIT }, /* Ef */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Em */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Eo */ - { macro_constant_delimited, MDOC_PARSED }, /* Fx */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Fx */ { macro_text, MDOC_PARSED }, /* Ms */ { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* No */ { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Ns */ - { macro_constant_delimited, MDOC_PARSED }, /* Nx */ - { macro_constant_delimited, MDOC_PARSED }, /* Ox */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Nx */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Ox */ { macro_scoped_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Pc */ { macro_constant_delimited, MDOC_PARSED }, /* Pf */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Po */ @@ -166,7 +166,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Sx */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Sy */ { macro_text, MDOC_CALLABLE | MDOC_PARSED }, /* Tn */ - { macro_constant_delimited, MDOC_PARSED }, /* Ux */ + { macro_constant_delimited, MDOC_CALLABLE | MDOC_PARSED }, /* Ux */ { macro_scoped_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Xc */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Xo */ /* XXX - .Fo supposed to be (but isn't) callable. */ @@ -188,6 +188,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_scoped_line, MDOC_CALLABLE | MDOC_PARSED }, /* Brq */ { macro_constant_scoped, MDOC_CALLABLE | MDOC_PARSED | MDOC_EXPLICIT }, /* Bro */ { macro_scoped_close, MDOC_EXPLICIT | MDOC_CALLABLE | MDOC_PARSED }, /* Brc */ + { macro_constant, 0 }, /* %C */ }; const struct mdoc_macro * const mdoc_macros = __mdoc_macros; @@ -1393,8 +1394,6 @@ macro_constant(MACRO_PROT_ARGS) struct mdoc_arg *arg; char *p; - assert( ! (MDOC_CALLABLE & mdoc_macros[tok].flags)); - arg = NULL; for (;;) { @@ -1482,8 +1481,7 @@ macro_phrase(struct mdoc *mdoc, int line, int ppos, ch if (MDOC_MAX != (c = mdoc_tokhash_find(mdoc->htab, &buf[la]))) { if ( ! mdoc_macro(mdoc, c, line, la, &i, buf)) return(0); - - return(1); + return(append_delims(mdoc, line, &i, buf)); } if ( ! mdoc_word_alloc(mdoc, line, la, &buf[la]))