summaryrefslogtreecommitdiffstats
path: root/mdoc_man.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-04-17 12:53:29 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-04-17 12:53:29 +0000
commitcb9be671cf6346f9dd06b4901b4a89e2f6c67934 (patch)
tree2ae762cef23f1d7bb316700ef15054a019cd5683 /mdoc_man.c
parent9fa2ec46cdd419a9476abc763c485548e4d59d66 (diff)
downloadmandoc-cb9be671cf6346f9dd06b4901b4a89e2f6c67934.tar.gz
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 'mdoc_man.c')
-rw-r--r--mdoc_man.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/mdoc_man.c b/mdoc_man.c
index e9705a18..c94f633c 100644
--- a/mdoc_man.c
+++ b/mdoc_man.c
@@ -1465,12 +1465,13 @@ pre_lk(DECL_ARGS)
{
const struct roff_node *link, *descr;
- if (NULL == (link = n->child))
+ if ((link = n->child) == NULL)
return 0;
- if (NULL != (descr = link->next)) {
+ /* Link text. */
+ if ((descr = link->next) != NULL && !(descr->flags & NODE_DELIMC)) {
font_push('I');
- while (NULL != descr) {
+ while (descr != NULL && !(descr->flags & NODE_DELIMC)) {
print_word(descr->string);
descr = descr->next;
}
@@ -1478,9 +1479,16 @@ pre_lk(DECL_ARGS)
print_word(":");
}
+ /* Link target. */
font_push('B');
print_word(link->string);
font_pop();
+
+ /* Trailing punctuation. */
+ while (descr != NULL) {
+ print_word(descr->string);
+ descr = descr->next;
+ }
return 0;
}