=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_term.c,v retrieving revision 1.248 retrieving revision 1.249 diff -c -r1.248 -r1.249 *** src/usr.bin/mandoc/mdoc_term.c 2017/04/17 12:52:00 1.248 --- src/usr.bin/mandoc/mdoc_term.c 2017/04/24 23:06:09 1.249 *************** *** 1,4 **** ! /* $OpenBSD: mdoc_term.c,v 1.248 2017/04/17 12:52:00 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2017 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: mdoc_term.c,v 1.249 2017/04/24 23:06:09 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2017 Ingo Schwarze *************** *** 123,130 **** 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 */ { NULL, NULL }, /* Dd */ { NULL, NULL }, /* Dt */ { NULL, NULL }, /* Os */ --- 123,129 ---- static int termp_xr_pre(DECL_ARGS); static int termp_xx_pre(DECL_ARGS); ! static const struct termact __termacts[MDOC_MAX - MDOC_Dd] = { { NULL, NULL }, /* Dd */ { NULL, NULL }, /* Dt */ { NULL, NULL }, /* Os */ *************** *** 140,145 **** --- 139,145 ---- { 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 */ *************** *** 248,256 **** --- 248,258 ---- { 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) { *************** *** 361,367 **** term_tbl(p, n->span); break; default: ! if (termacts[n->tok].pre && (n->end == ENDBODY_NOT || n->child != NULL)) chld = (*termacts[n->tok].pre) (p, &npair, meta, n); --- 363,369 ---- term_tbl(p, n->span); break; default: ! if (termacts[n->tok].pre != NULL && (n->end == ENDBODY_NOT || n->child != NULL)) chld = (*termacts[n->tok].pre) (p, &npair, meta, n); *************** *** 382,388 **** case ROFFT_EQN: break; default: ! if ( ! termacts[n->tok].post || NODE_ENDED & n->flags) break; (void)(*termacts[n->tok].post)(p, &npair, meta, n); --- 384,390 ---- case ROFFT_EQN: break; default: ! if (termacts[n->tok].post == NULL || n->flags & NODE_ENDED) break; (void)(*termacts[n->tok].post)(p, &npair, meta, n);