aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2010-09-23 20:40:00 +0000
committerIngo Schwarze <schwarze@openbsd.org>2010-09-23 20:40:00 +0000
commit2a14cb6291874f023b382b4d4d7193355efbfeb7 (patch)
tree4681dbf84b98ce49e541c769c7c6c3f95675d2b5
parentf6afdd36c98a68434281551607b2563bc979f54c (diff)
downloadmandoc-2a14cb6291874f023b382b4d4d7193355efbfeb7.tar.gz
mandoc-2a14cb6291874f023b382b4d4d7193355efbfeb7.tar.zst
mandoc-2a14cb6291874f023b382b4d4d7193355efbfeb7.zip
When the HEAD of an .Nm block in the SYNOPSIS might be wider
than the column containing it, the TERMP_HANG flag is required, but avoid the flag when we know that the HEAD is shorter, because in that case, the flag might ruin the alignment. Problem originally reported by jmc@, who also spotted a regression in an earlier version of this patch. "feel free to commit" kristaps@
-rw-r--r--mdoc_term.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/mdoc_term.c b/mdoc_term.c
index ca865c4f..c2ba9eaf 100644
--- a/mdoc_term.c
+++ b/mdoc_term.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_term.c,v 1.184 2010/09/04 19:01:52 kristaps Exp $ */
+/* $Id: mdoc_term.c,v 1.185 2010/09/23 20:40:00 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -1031,12 +1031,18 @@ termp_nm_pre(DECL_ARGS)
synopsis_pre(p, n->parent);
if (MDOC_HEAD == n->type && n->next->child) {
- p->flags |= TERMP_NOSPACE | TERMP_NOBREAK | TERMP_HANG;
- p->rmargin = p->offset + term_len(p, 1) +
- (NULL == n->child ? term_strlen(p, m->name) :
- MDOC_TEXT == n->child->type ?
- term_strlen(p, n->child->string) :
- term_len(p, 5));
+ p->flags |= TERMP_NOSPACE | TERMP_NOBREAK;
+ p->rmargin = p->offset + term_len(p, 1);
+ if (NULL == n->child) {
+ p->rmargin += term_strlen(p, m->name);
+ } else if (MDOC_TEXT == n->child->type) {
+ p->rmargin += term_strlen(p, n->child->string);
+ if (n->child->next)
+ p->flags |= TERMP_HANG;
+ } else {
+ p->rmargin += term_len(p, 5);
+ p->flags |= TERMP_HANG;
+ }
}
term_fontpush(p, TERMFONT_BOLD);