=================================================================== RCS file: /cvs/mandoc/Attic/action.c,v retrieving revision 1.33 retrieving revision 1.42 diff -u -p -r1.33 -r1.42 --- mandoc/Attic/action.c 2009/03/08 11:41:22 1.33 +++ mandoc/Attic/action.c 2009/03/16 22:19:19 1.42 @@ -1,4 +1,4 @@ -/* $Id: action.c,v 1.33 2009/03/08 11:41:22 kristaps Exp $ */ +/* $Id: action.c,v 1.42 2009/03/16 22:19:19 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -23,7 +23,6 @@ #include #include #include -#include #include "private.h" @@ -60,9 +59,12 @@ static int post_dt(struct mdoc *); static int post_nm(struct mdoc *); static int post_os(struct mdoc *); static int post_sh(struct mdoc *); -static int post_ex(struct mdoc *); +static int post_std(struct mdoc *); static int post_prologue(struct mdoc *); +#define merr(m, t) nerr((m), (m)->last, (t)) +#define mwarn(m, t) nwarn((m), (m)->last, (t)) + const struct actions mdoc_actions[MDOC_MAX] = { { NULL }, /* \" */ { post_dd }, /* Dd */ @@ -86,7 +88,7 @@ const struct actions mdoc_actions[MDOC_MAX] = { { NULL }, /* Dv */ { NULL }, /* Er */ { NULL }, /* Ev */ - { post_ex }, /* Ex */ + { post_std }, /* Ex */ { NULL }, /* Fa */ { NULL }, /* Fd */ { NULL }, /* Fl */ @@ -100,7 +102,7 @@ const struct actions mdoc_actions[MDOC_MAX] = { { NULL }, /* Op */ { NULL }, /* Ot */ { NULL }, /* Pa */ - { NULL }, /* Rv */ + { post_std }, /* Rv */ { NULL }, /* St */ { NULL }, /* Va */ { NULL }, /* Vt */ @@ -171,10 +173,19 @@ const struct actions mdoc_actions[MDOC_MAX] = { { NULL }, /* Fr */ { NULL }, /* Ud */ { NULL }, /* Lb */ + { NULL }, /* Ap */ + { NULL }, /* Lp */ + { NULL }, /* Lk */ + { NULL }, /* Mt */ + { NULL }, /* Brq */ + { NULL }, /* Bro */ + { NULL }, /* Brc */ + { NULL }, /* %C */ + { NULL }, /* Es */ + { NULL }, /* En */ }; -#define merr(m, t) nerr((m), (m)->last, (t)) static int nerr(struct mdoc *m, const struct mdoc_node *n, enum merr type) { @@ -193,7 +204,6 @@ nerr(struct mdoc *m, const struct mdoc_node *n, enum m } -#define mwarn(m, t) nwarn((m), (m)->last, (t)) static int nwarn(struct mdoc *m, const struct mdoc_node *n, enum mwarn type) { @@ -222,12 +232,12 @@ nwarn(struct mdoc *m, const struct mdoc_node *n, enum static int -post_ex(struct mdoc *mdoc) +post_std(struct mdoc *mdoc) { /* - * If `.Ex -std' is invoked without an argument, fill it in with - * our name (if it's been set). + * If '-std' is invoked without an argument, fill it in with our + * name (if it's been set). */ if (NULL == mdoc->last->args) @@ -241,10 +251,8 @@ post_ex(struct mdoc *mdoc) mdoc_argnames[MDOC_Std], mdoc->meta.name); - assert(1 == mdoc->last->args->argv[0].sz); - - mdoc->last->args->argv[0].sz = 1; mdoc->last->args->argv[0].value = xcalloc(1, sizeof(char *)); + mdoc->last->args->argv[0].sz = 1; mdoc->last->args->argv[0].value[0] = xstrdup(mdoc->meta.name); return(1); } @@ -514,7 +522,7 @@ post_bl_width(struct mdoc *m) size_t width; int i, tok; char buf[32]; - char **p; + char *p; if (NULL == m->last->args) return(merr(m, ENOWIDTH)); @@ -526,29 +534,29 @@ post_bl_width(struct mdoc *m) if (i == (int)m->last->args->argc) return(merr(m, ENOWIDTH)); - p = &m->last->args->argv[i].value[0]; + p = m->last->args->argv[i].value[0]; /* * If the value to -width is a macro, then we re-write it to be * the macro's width as set in share/tmac/mdoc/doc-common. */ - if (xstrcmp(*p, "Ds")) + if (xstrcmp(p, "Ds")) width = 8; - else if (MDOC_MAX == (tok = mdoc_tokhash_find(m->htab, *p))) + else if (MDOC_MAX == (tok = mdoc_tokhash_find(m->htab, p))) return(1); else if (0 == (width = mdoc_macro2len(tok))) return(mwarn(m, WNOWIDTH)); mdoc_msg(m, "re-writing %s argument: %s -> %zun", - mdoc_argnames[MDOC_Width], *p, width); + mdoc_argnames[MDOC_Width], p, width); /* The value already exists: free and reallocate it. */ (void)snprintf(buf, sizeof(buf), "%zun", width); - free(*p); - *p = xstrdup(buf); + free(m->last->args->argv[i].value[0]); + m->last->args->argv[i].value[0] = xstrdup(buf); return(1); }