diff options
author | 2017-04-17 12:52:00 +0000 | |
---|---|---|
committer | 2017-04-17 12:52:00 +0000 | |
commit | 96aebfb38c1b18db069e4ba1e2145623b1e36e53 (patch) | |
tree | 70a6e2f5c3e1fb20d5aac42fde0ffb25105efde6 /usr.bin/mandoc/mdoc_html.c | |
parent | Change COMPILER_VERSION tests which limited additional warnings to gcc4 (diff) | |
download | wireguard-openbsd-96aebfb38c1b18db069e4ba1e2145623b1e36e53.tar.xz wireguard-openbsd-96aebfb38c1b18db069e4ba1e2145623b1e36e53.zip |
Fix handling of trailing punctuation in .Lk.
This macro is unusual in so far as trailing punction needs to remain
inside the scope because it must be inside, not after the display
of long URIs in terminal output mode.
Improves formatting of fw_update(1), help(1), less(1), sendbug(1),
acx(4), inet6(4), ipsec(4), oce(4), isakmpd.conf(5), afterboot(8),
release(8), traceroute(8).
Diffstat (limited to 'usr.bin/mandoc/mdoc_html.c')
-rw-r--r-- | usr.bin/mandoc/mdoc_html.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/usr.bin/mandoc/mdoc_html.c b/usr.bin/mandoc/mdoc_html.c index 0f44d76a661..43760c4082b 100644 --- a/usr.bin/mandoc/mdoc_html.c +++ b/usr.bin/mandoc/mdoc_html.c @@ -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 <kristaps@bsd.lv> * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@openbsd.org> @@ -1344,19 +1344,25 @@ mdoc_sp_pre(MDOC_ARGS) static int mdoc_lk_pre(MDOC_ARGS) { - if (NULL == (n = n->child)) - return 0; - - assert(n->type == ROFFT_TEXT); + struct tag *t; - print_otag(h, TAG_A, "cTh", "Lk", n->string); + if ((n = n->child) == NULL) + return 0; - 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; } |