=================================================================== RCS file: /cvs/mandoc/mdoc_term.c,v retrieving revision 1.349 retrieving revision 1.350 diff -u -p -r1.349 -r1.350 --- mandoc/mdoc_term.c 2017/04/17 12:53:29 1.349 +++ mandoc/mdoc_term.c 2017/04/24 23:06:18 1.350 @@ -1,4 +1,4 @@ -/* $Id: mdoc_term.c,v 1.349 2017/04/17 12:53:29 schwarze Exp $ */ +/* $Id: mdoc_term.c,v 1.350 2017/04/24 23:06:18 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2017 Ingo Schwarze @@ -125,8 +125,7 @@ static int termp_vt_pre(DECL_ARGS); static int termp_xr_pre(DECL_ARGS); static int termp_xx_pre(DECL_ARGS); -static const struct termact termacts[MDOC_MAX] = { - { termp_ap_pre, NULL }, /* Ap */ +static const struct termact __termacts[MDOC_MAX - MDOC_Dd] = { { NULL, NULL }, /* Dd */ { NULL, NULL }, /* Dt */ { NULL, NULL }, /* Os */ @@ -142,6 +141,7 @@ static const struct termact termacts[MDOC_MAX] = { { termp_it_pre, termp_it_post }, /* It */ { termp_under_pre, NULL }, /* Ad */ { termp_an_pre, NULL }, /* An */ + { termp_ap_pre, NULL }, /* Ap */ { termp_under_pre, NULL }, /* Ar */ { termp_cd_pre, NULL }, /* Cd */ { termp_bold_pre, NULL }, /* Cm */ @@ -250,9 +250,11 @@ static const struct termact termacts[MDOC_MAX] = { { NULL, NULL }, /* Ta */ { termp_ll_pre, NULL }, /* ll */ }; +static const struct termact *const termacts = __termacts - MDOC_Dd; static int fn_prio; + void terminal_mdoc(void *arg, const struct roff_man *mdoc) { @@ -363,7 +365,7 @@ print_mdoc_node(DECL_ARGS) term_tbl(p, n->span); break; default: - if (termacts[n->tok].pre && + if (termacts[n->tok].pre != NULL && (n->end == ENDBODY_NOT || n->child != NULL)) chld = (*termacts[n->tok].pre) (p, &npair, meta, n); @@ -384,7 +386,7 @@ print_mdoc_node(DECL_ARGS) case ROFFT_EQN: break; default: - if ( ! termacts[n->tok].post || NODE_ENDED & n->flags) + if (termacts[n->tok].post == NULL || n->flags & NODE_ENDED) break; (void)(*termacts[n->tok].post)(p, &npair, meta, n);