aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_term.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdoc_term.c')
-rw-r--r--mdoc_term.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/mdoc_term.c b/mdoc_term.c
index 259f9a2e..b936c5a3 100644
--- a/mdoc_term.c
+++ b/mdoc_term.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_term.c,v 1.348 2017/04/14 19:35:22 schwarze Exp $ */
+/* $Id: mdoc_term.c,v 1.349 2017/04/17 12:53:29 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -1995,12 +1995,13 @@ termp_lk_pre(DECL_ARGS)
const struct roff_node *link, *descr;
int display;
- 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)) {
term_fontpush(p, TERMFONT_UNDER);
- while (NULL != descr) {
+ while (descr != NULL && !(descr->flags & NODE_DELIMC)) {
term_word(p, descr->string);
descr = descr->next;
}
@@ -2009,19 +2010,24 @@ termp_lk_pre(DECL_ARGS)
term_word(p, ":");
}
+ /* Link target. */
display = term_strlen(p, link->string) >= 26;
if (display) {
term_newln(p);
p->offset += term_len(p, p->defindent + 1);
}
-
term_fontpush(p, TERMFONT_BOLD);
term_word(p, link->string);
term_fontpop(p);
+ /* Trailing punctuation. */
+ while (descr != NULL) {
+ p->flags |= TERMP_NOSPACE;
+ term_word(p, descr->string);
+ descr = descr->next;
+ }
if (display)
term_newln(p);
-
return 0;
}