=================================================================== RCS file: /cvs/mandoc/mdoc.c,v retrieving revision 1.13 retrieving revision 1.16 diff -u -p -r1.13 -r1.16 --- mandoc/mdoc.c 2009/01/01 20:40:16 1.13 +++ mandoc/mdoc.c 2009/01/05 14:14:04 1.16 @@ -1,4 +1,4 @@ -/* $Id: mdoc.c,v 1.13 2009/01/01 20:40:16 kristaps Exp $ */ +/* $Id: mdoc.c,v 1.16 2009/01/05 14:14:04 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -80,6 +80,7 @@ const char *const __mdoc_argnames[MDOC_ARG_MAX] = { "xsh5", "xns5", "xns5.2d2.0", "xcurses4.2", "susv2", "susv3", "svid4", "filled", "words", + "emphasis", "symbolic", }; const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { @@ -98,7 +99,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_close_explicit, 0 }, /* El */ { NULL, 0 }, /* It */ { macro_text, MDOC_CALLABLE }, /* Ad */ - { NULL, 0 }, /* An */ + { macro_constant, 0 }, /* An */ { macro_text, MDOC_CALLABLE }, /* Ar */ { macro_constant, MDOC_QUOTABLE }, /* Cd */ { macro_text, MDOC_CALLABLE }, /* Cm */ @@ -140,7 +141,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_scoped_line, MDOC_CALLABLE }, /* Aq */ { macro_constant, 0 }, /* At */ { NULL, 0 }, /* Bc */ - { NULL, 0 }, /* Bf */ + { macro_scoped, MDOC_EXPLICIT }, /* Bf */ { NULL, 0 }, /* Bo */ { macro_scoped_line, MDOC_CALLABLE }, /* Bq */ { macro_constant_delimited, 0 }, /* Bsx */ @@ -150,7 +151,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { NULL, 0 }, /* Do */ { macro_scoped_line, MDOC_CALLABLE }, /* Dq */ { NULL, 0 }, /* Ec */ - { NULL, 0 }, /* Ef */ + { macro_close_explicit, 0 }, /* Ef */ { macro_text, MDOC_CALLABLE }, /* Em */ { NULL, 0 }, /* Eo */ { macro_constant_delimited, 0 }, /* Fx */ @@ -160,7 +161,7 @@ const struct mdoc_macro __mdoc_macros[MDOC_MAX] = { { macro_constant_delimited, 0 }, /* Nx */ { macro_constant_delimited, 0 }, /* Ox */ { NULL, 0 }, /* Pc */ - { NULL, 0 }, /* Pf */ + { macro_constant, 0 }, /* Pf */ { NULL, 0 }, /* Po */ { macro_scoped_line, MDOC_CALLABLE }, /* Pq */ { NULL, 0 }, /* Qc */ @@ -200,8 +201,6 @@ static struct mdoc_arg *argdup(size_t, const struct m static void argfree(size_t, struct mdoc_arg *); static void argcpy(struct mdoc_arg *, const struct mdoc_arg *); -static char **paramdup(size_t, const char **); -static void paramfree(size_t, char **); static void mdoc_node_freelist(struct mdoc_node *); static void mdoc_node_append(struct mdoc *, int, @@ -490,16 +489,14 @@ mdoc_block_alloc(struct mdoc *mdoc, int pos, int tok, void mdoc_elem_alloc(struct mdoc *mdoc, int pos, int tok, - size_t argsz, const struct mdoc_arg *args, - size_t paramsz, const char **params) + size_t argsz, const struct mdoc_arg *args) { struct mdoc_node *p; p = xcalloc(1, sizeof(struct mdoc_node)); p->type = MDOC_ELEM; p->data.elem.tok = tok; - p->data.elem.sz = paramsz; - p->data.elem.args = paramdup(paramsz, params); + /* FIXME: freeing of params... */ p->data.elem.argc = argsz; p->data.elem.argv = argdup(argsz, args); @@ -545,7 +542,6 @@ static void mdoc_elem_free(struct mdoc_elem *p) { - paramfree(p->sz, p->args); argfree(p->argc, p->argv); } @@ -640,35 +636,3 @@ argdup(size_t argsz, const struct mdoc_arg *args) return(pp); } - -static void -paramfree(size_t sz, char **p) -{ - int i; - - if (0 == sz) - return; - - assert(p); - /* LINTED */ - for (i = 0; i < (int)sz; i++) - free(p[i]); - free(p); -} - - -static char ** -paramdup(size_t sz, const char **p) -{ - char **pp; - int i; - - if (0 == sz) - return(NULL); - - pp = xcalloc(sz, sizeof(char *)); - for (i = 0; i < (int)sz; i++) - pp[i] = xstrdup(p[i]); - - return(pp); -}