aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/man_html.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-08-17 20:33:37 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-08-17 20:33:37 +0000
commitde2a1122a661dd4bd4004854891d44e87d63c6c2 (patch)
tree79380a193e1374fd7e4b697152b0b7aea304ddf8 /man_html.c
parent3f485a7ff74c3707363ed47362ccc8a7855b0f58 (diff)
downloadmandoc-de2a1122a661dd4bd4004854891d44e87d63c6c2.tar.gz
mandoc-de2a1122a661dd4bd4004854891d44e87d63c6c2.tar.zst
mandoc-de2a1122a661dd4bd4004854891d44e87d63c6c2.zip
Remove more pointer arithmetic passing via regions outside the array
that is undefined according to the C standard. Robert Elz <kre at munnari dot oz dot au> pointed out i wasn't quite done yet.
Diffstat (limited to 'man_html.c')
-rw-r--r--man_html.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/man_html.c b/man_html.c
index fd5d5c33..ff816bd2 100644
--- a/man_html.c
+++ b/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.154 2018/08/16 23:43:37 schwarze Exp $ */
+/* $Id: man_html.c,v 1.155 2018/08/17 20:33:37 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -39,7 +39,7 @@
const struct roff_node *n, \
struct html *h
-struct htmlman {
+struct man_html_act {
int (*pre)(MAN_ARGS);
int (*post)(MAN_ARGS);
};
@@ -70,7 +70,7 @@ static void man_root_post(const struct roff_meta *,
static void man_root_pre(const struct roff_meta *,
struct html *);
-static const struct htmlman __mans[MAN_MAX - MAN_TH] = {
+static const struct man_html_act man_html_acts[MAN_MAX - MAN_TH] = {
{ NULL, NULL }, /* TH */
{ man_SH_pre, NULL }, /* SH */
{ man_SS_pre, NULL }, /* SS */
@@ -109,7 +109,6 @@ static const struct htmlman __mans[MAN_MAX - MAN_TH] = {
{ man_UR_pre, NULL }, /* MT */
{ NULL, NULL }, /* ME */
};
-static const struct htmlman *const mans = __mans - MAN_TH;
/*
@@ -318,8 +317,9 @@ print_man_node(MAN_ARGS)
}
assert(n->tok >= MAN_TH && n->tok < MAN_MAX);
- if (mans[n->tok].pre)
- child = (*mans[n->tok].pre)(man, n, h);
+ if (man_html_acts[n->tok - MAN_TH].pre != NULL)
+ child = (*man_html_acts[n->tok - MAN_TH].pre)(man,
+ n, h);
/* Some block macros resume .nf in the body. */
if (save_fillmode && n->type == ROFFT_BODY)