=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_html.c,v retrieving revision 1.154 retrieving revision 1.155 diff -c -r1.154 -r1.155 *** src/usr.bin/mandoc/mdoc_html.c 2017/04/17 12:52:00 1.154 --- src/usr.bin/mandoc/mdoc_html.c 2017/04/24 23:06:09 1.155 *************** *** 1,4 **** ! /* $OpenBSD: mdoc_html.c,v 1.154 2017/04/17 12:52:00 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: mdoc_html.c,v 1.155 2017/04/24 23:06:09 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze *************** *** 116,123 **** static int mdoc_xr_pre(MDOC_ARGS); static int mdoc_xx_pre(MDOC_ARGS); ! static const struct htmlmdoc mdocs[MDOC_MAX] = { ! {mdoc_ap_pre, NULL}, /* Ap */ {NULL, NULL}, /* Dd */ {NULL, NULL}, /* Dt */ {NULL, NULL}, /* Os */ --- 116,122 ---- static int mdoc_xr_pre(MDOC_ARGS); static int mdoc_xx_pre(MDOC_ARGS); ! static const struct htmlmdoc __mdocs[MDOC_MAX - MDOC_Dd] = { {NULL, NULL}, /* Dd */ {NULL, NULL}, /* Dt */ {NULL, NULL}, /* Os */ *************** *** 133,138 **** --- 132,138 ---- {mdoc_it_pre, NULL}, /* It */ {mdoc_ad_pre, NULL}, /* Ad */ {mdoc_an_pre, NULL}, /* An */ + {mdoc_ap_pre, NULL}, /* Ap */ {mdoc_ar_pre, NULL}, /* Ar */ {mdoc_cd_pre, NULL}, /* Cd */ {mdoc_cm_pre, NULL}, /* Cm */ *************** *** 241,246 **** --- 241,247 ---- {NULL, NULL}, /* Ta */ {mdoc_skip_pre, NULL}, /* ll */ }; + static const struct htmlmdoc *const mdocs = __mdocs - MDOC_Dd; /* *************** *** 391,397 **** t = h->tag; } assert(h->tblt == NULL); ! if (mdocs[n->tok].pre && (n->end == ENDBODY_NOT || n->child)) child = (*mdocs[n->tok].pre)(meta, n, h); break; } --- 392,400 ---- t = h->tag; } assert(h->tblt == NULL); ! assert(n->tok >= MDOC_Dd && n->tok < MDOC_MAX); ! if (mdocs[n->tok].pre != NULL && ! (n->end == ENDBODY_NOT || n->child != NULL)) child = (*mdocs[n->tok].pre)(meta, n, h); break; } *************** *** 410,416 **** case ROFFT_EQN: break; default: ! if ( ! mdocs[n->tok].post || n->flags & NODE_ENDED) break; (*mdocs[n->tok].post)(meta, n, h); if (n->end != ENDBODY_NOT) --- 413,419 ---- case ROFFT_EQN: break; default: ! if (mdocs[n->tok].post == NULL || n->flags & NODE_ENDED) break; (*mdocs[n->tok].post)(meta, n, h); if (n->end != ENDBODY_NOT)