=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_term.c,v retrieving revision 1.247 retrieving revision 1.248 diff -u -r1.247 -r1.248 --- src/usr.bin/mandoc/mdoc_term.c 2017/04/14 19:34:54 1.247 +++ src/usr.bin/mandoc/mdoc_term.c 2017/04/17 12:52:00 1.248 @@ -1,4 +1,4 @@ -/* $OpenBSD: mdoc_term.c,v 1.247 2017/04/14 19:34:54 schwarze Exp $ */ +/* $OpenBSD: mdoc_term.c,v 1.248 2017/04/17 12:52:00 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2017 Ingo Schwarze @@ -1993,12 +1993,13 @@ 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; } @@ -2007,19 +2008,24 @@ 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; }