From d8f44f1e4f0bd944ab43e6434a1579d670ed66cf Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Thu, 4 Sep 2014 17:49:13 +0200 Subject: 433/8 --- spec.txt | 2 +- src/html/html.c | 6 ++++-- src/inlines.c | 3 +++ src/print.c | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/spec.txt b/spec.txt index d7e70f5..cfda2a3 100644 --- a/spec.txt +++ b/spec.txt @@ -3946,7 +3946,7 @@ But this is a link: . ` . -

http://foo.bar.`baz`

+

http://foo.bar.`baz`

. And this is an HTML tag: diff --git a/src/html/html.c b/src/html/html.c index 913a602..41b8fda 100644 --- a/src/html/html.c +++ b/src/html/html.c @@ -174,7 +174,8 @@ void inlines_to_html(gh_buf *html, inl* ils) case INL_LINK: gh_buf_puts(html, "content.linkable.url, -1); + if (ils->content.linkable.url) + escape_href(html, ils->content.linkable.url, -1); if (ils->content.linkable.title) { gh_buf_puts(html, "\" title=\""); @@ -188,7 +189,8 @@ void inlines_to_html(gh_buf *html, inl* ils) case INL_IMAGE: gh_buf_puts(html, "content.linkable.url, -1); + if (ils->content.linkable.url) + escape_href(html, ils->content.linkable.url, -1); inlines_to_html(&scrap, ils->content.inlines); gh_buf_puts(html, "\" alt=\""); diff --git a/src/inlines.c b/src/inlines.c index 599be84..8e2e683 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -591,6 +591,9 @@ static unsigned char *clean_url(chunk *url, int is_email) chunk_trim(url); + if (url->len == 0) + return NULL; + if (is_email) gh_buf_puts(&buf, "mailto:"); diff --git a/src/print.c b/src/print.c index c262995..832ad4f 100644 --- a/src/print.c +++ b/src/print.c @@ -153,7 +153,10 @@ extern void print_inlines(inl* ils, int indent) case INL_LINK: case INL_IMAGE: printf("%s url=", ils->tag == INL_LINK ? "link" : "image"); - print_str(ils->content.linkable.url, -1); + + if (ils->content.linkable.url) + print_str(ils->content.linkable.url, -1); + if (ils->content.linkable.title) { printf(" title="); print_str(ils->content.linkable.title, -1); -- cgit v1.2.3