=================================================================== RCS file: /cvs/mandoc/Attic/action.c,v retrieving revision 1.45 retrieving revision 1.48 diff -u -p -r1.45 -r1.48 --- mandoc/Attic/action.c 2009/03/20 16:43:28 1.45 +++ mandoc/Attic/action.c 2009/03/21 09:48:29 1.48 @@ -1,4 +1,4 @@ -/* $Id: action.c,v 1.45 2009/03/20 16:43:28 kristaps Exp $ */ +/* $Id: action.c,v 1.48 2009/03/21 09:48:29 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -57,8 +57,8 @@ static int post_ar(POST_ARGS); static int post_bl(POST_ARGS); static int post_bl_width(POST_ARGS); static int post_bl_tagwidth(POST_ARGS); -static int post_bd(POST_ARGS); static int post_dd(POST_ARGS); +static int post_display(POST_ARGS); static int post_dt(POST_ARGS); static int post_nm(POST_ARGS); static int post_os(POST_ARGS); @@ -67,6 +67,7 @@ static int post_sh(POST_ARGS); static int post_std(POST_ARGS); static int pre_bd(PRE_ARGS); +static int pre_dl(PRE_ARGS); #define merr(m, t) perr((m), (m)->last->line, (m)->last->pos, (t)) #define mwarn(m, t) pwarn((m), (m)->last->line, (m)->last->pos, (t)) @@ -80,8 +81,8 @@ const struct actions mdoc_actions[MDOC_MAX] = { { NULL, NULL }, /* Ss */ { NULL, NULL }, /* Pp */ { NULL, NULL }, /* D1 */ - { NULL, NULL }, /* Dl */ - { pre_bd, post_bd }, /* Bd */ + { pre_dl, post_display }, /* Dl */ + { pre_bd, post_display }, /* Bd */ { NULL, NULL }, /* Ed */ { NULL, post_bl }, /* Bl */ { NULL, NULL }, /* El */ @@ -190,6 +191,7 @@ const struct actions mdoc_actions[MDOC_MAX] = { { NULL, NULL }, /* Es */ { NULL, NULL }, /* En */ { NULL, NULL }, /* Dx */ + { NULL, NULL }, /* %Q */ }; @@ -403,7 +405,8 @@ post_dt(POST_ARGS) * arch = NULL */ - if ((cp = mdoc_a2msec(n->string))) { + cp = mdoc_a2msec(n->string); + if (cp) { m->meta.vol = xstrdup(cp); errno = 0; lval = strtol(n->string, &ep, 10); @@ -422,7 +425,8 @@ post_dt(POST_ARGS) * VOL */ - if ((cp = mdoc_a2vol(n->string))) { + cp = mdoc_a2vol(n->string); + if (cp) { free(m->meta.vol); m->meta.vol = xstrdup(cp); n = n->next; @@ -487,7 +491,8 @@ post_bl_tagwidth(struct mdoc *m) * width if a macro. */ - if ((n = n->head->child)) { + n = n->head->child; + if (n) { if (MDOC_TEXT != n->type) { if (0 == (sz = (int)mdoc_macro2len(n->tok))) sz = -1; @@ -686,6 +691,17 @@ post_prol(POST_ARGS) static int +pre_dl(PRE_ARGS) +{ + + if (MDOC_BODY != n->type) + return(1); + m->flags |= MDOC_LITERAL; + return(1); +} + + +static int pre_bd(PRE_ARGS) { int i; @@ -714,7 +730,7 @@ pre_bd(PRE_ARGS) static int -post_bd(POST_ARGS) +post_display(POST_ARGS) { if (MDOC_BODY == m->last->type)