From a55868d2cb7c07237689f307d3a55b33b257de09 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 17 Aug 2018 20:33:37 +0000 Subject: Remove more pointer arithmetic passing via regions outside the array that is undefined according to the C standard. Robert Elz pointed out i wasn't quite done yet. --- man_html.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'man_html.c') diff --git a/man_html.c b/man_html.c index 3fb2dccf..2d451a51 100644 --- a/man_html.c +++ b/man_html.c @@ -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) -- cgit