From 46b67b710788be7924b5a412ab68eea3cac0cd96 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 30 Dec 2014 07:59:53 -0800 Subject: man: use a variable to store the char * from node_get_url. We get segfaults on some platforms when we do cmark_strbuf_printf(man, " (%s)", cmark_node_get_url(node)); but they go away with: url = cmark_node_get_url(node); cmark_strbuf_printf(man, " (%s)", url); I don't understand why. Closes #253. --- src/man.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/man.c') diff --git a/src/man.c b/src/man.c index 1b45f8b..3470343 100644 --- a/src/man.c +++ b/src/man.c @@ -49,6 +49,7 @@ S_render_node(cmark_node *node, cmark_event_type ev_type, void *vstate) cmark_node *tmp; cmark_strbuf *man = state->man; int list_number; + const char *url; bool entering = (ev_type == CMARK_EVENT_ENTER); if (state->plain == node) { // back at original node @@ -203,8 +204,8 @@ S_render_node(cmark_node *node, cmark_event_type ev_type, void *vstate) case CMARK_NODE_LINK: if (!entering) { - cmark_strbuf_printf(man, " (%s)", - cmark_node_get_url(node)); + url = cmark_node_get_url(node); + cmark_strbuf_printf(man, " (%s)", url); } break; -- cgit v1.2.3