diff options
| -rw-r--r-- | src/html/html.c | 4 | ||||
| -rw-r--r-- | src/inlines.c | 12 | 
2 files changed, 6 insertions, 10 deletions
| diff --git a/src/html/html.c b/src/html/html.c index 5f08506..ea83992 100644 --- a/src/html/html.c +++ b/src/html/html.c @@ -125,7 +125,7 @@ static void inlines_to_plain_html(strbuf *html, node_inl* ils)  		case INL_LINK:  		case INL_IMAGE: -			children = ils->content.inlines; +			children = ils->content.linkable.label;  			visit_children = true;  			rstack = push_inline(rstack, ils->next, "");  			break; @@ -197,7 +197,7 @@ static void inlines_to_html(strbuf *html, node_inl* ils)  			}  			strbuf_puts(html, "\">"); -			children = ils->content.inlines; +			children = ils->content.linkable.label;  			rstack = push_inline(rstack, ils->next, "</a>");  			break; diff --git a/src/inlines.c b/src/inlines.c index 3e3ef0a..937c33f 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -634,7 +634,6 @@ static node_inl* handle_close_bracket(subject* subj, node_inl **last)  	unsigned char *url, *title;  	opener_stack *ostack = subj->openers;  	node_inl *link_text; -	node_inl *tmp;  	node_inl *inl;  	chunk raw_label; @@ -696,18 +695,16 @@ static node_inl* handle_close_bracket(subject* subj, node_inl **last)  	subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos);  	raw_label = chunk_literal("");  	if (!link_label(subj, &raw_label) || raw_label.len == 0) { -		chunk_free(&raw_label); +		// chunk_free(&raw_label);  		raw_label = chunk_dup(&subj->input, ostack->position, initial_pos - ostack->position - 1);  	} -	log_info("looking up '%s'", chunk_to_cstr(&raw_label));  	ref = reference_lookup(subj->refmap, &raw_label);  	chunk_free(&raw_label);  	if (ref != NULL) { // found -		log_info("ref found url{%s} title{%s}", ref->url, ref->title); -		url = ref->url; -		title = ref->title; +		url = bufdup(ref->url); +		title = bufdup(ref->title);  		goto match;  	} else {  		goto noMatch; @@ -719,7 +716,6 @@ noMatch:  	return make_str(chunk_literal("]"));  match: -	tmp = link_text->next;  	inl = ostack->first_inline;  	inl->tag = is_image ? INL_IMAGE : INL_LINK;  	chunk_free(&inl->content.literal); @@ -727,10 +723,10 @@ match:  	inl->content.linkable.url   = url;  	inl->content.linkable.title = title;  	inl->next = NULL; +	*last = inl;  	// remove this opener and all later ones from stack:  	free_openers(subj, ostack->previous); -	*last = inl;  	return NULL;  } | 
