=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_html.c,v retrieving revision 1.153 retrieving revision 1.154 diff -u -r1.153 -r1.154 --- src/usr.bin/mandoc/mdoc_html.c 2017/03/17 12:06:02 1.153 +++ src/usr.bin/mandoc/mdoc_html.c 2017/04/17 12:52:00 1.154 @@ -1,4 +1,4 @@ -/* $OpenBSD: mdoc_html.c,v 1.153 2017/03/17 12:06:02 schwarze Exp $ */ +/* $OpenBSD: mdoc_html.c,v 1.154 2017/04/17 12:52:00 schwarze Exp $ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze @@ -1344,19 +1344,25 @@ static int mdoc_lk_pre(MDOC_ARGS) { - if (NULL == (n = n->child)) + struct tag *t; + + if ((n = n->child) == NULL) return 0; - assert(n->type == ROFFT_TEXT); - - print_otag(h, TAG_A, "cTh", "Lk", n->string); - - if (NULL == n->next) + /* Link target and link text. */ + t = print_otag(h, TAG_A, "cTh", "Lk", n->string); + if (n->next == NULL || n->next->flags & NODE_DELIMC) print_text(h, n->string); - - for (n = n->next; n; n = n->next) + for (n = n->next; n != NULL && !(n->flags & NODE_DELIMC); n = n->next) print_text(h, n->string); + print_tagq(h, t); + /* Trailing punctuation. */ + while (n != NULL) { + h->flags |= HTML_NOSPACE; + print_text(h, n->string); + n = n->next; + } return 0; }