diff options
author | 2017-06-04 22:43:50 +0000 | |
---|---|---|
committer | 2017-06-04 22:43:50 +0000 | |
commit | 24f1eaad147cc1e120b3330b9bfff80e6c41d14a (patch) | |
tree | d3f7f55a11012493991ff5e966ac4f7af472fe25 /usr.bin/mandoc/man_term.c | |
parent | fix a bungled logical/bitwise expression pointed out by clang; ok deraadt@ (diff) | |
download | wireguard-openbsd-24f1eaad147cc1e120b3330b9bfff80e6c41d14a.tar.xz wireguard-openbsd-24f1eaad147cc1e120b3330b9bfff80e6c41d14a.zip |
Implement the roff(7) .mc (right margin character) request.
The Tcl/Tk manual pages use this extensively.
Delete the TERM_MAXMARGIN hack, it breaks .mc inside .nf;
instead, implement a proper TERMP_BRNEVER flag.
Diffstat (limited to 'usr.bin/mandoc/man_term.c')
-rw-r--r-- | usr.bin/mandoc/man_term.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/usr.bin/mandoc/man_term.c b/usr.bin/mandoc/man_term.c index fa7d5159bd0..39cee3a82ec 100644 --- a/usr.bin/mandoc/man_term.c +++ b/usr.bin/mandoc/man_term.c @@ -1,4 +1,4 @@ -/* $OpenBSD: man_term.c,v 1.154 2017/06/04 18:48:09 schwarze Exp $ */ +/* $OpenBSD: man_term.c,v 1.155 2017/06/04 22:43:50 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2010-2015, 2017 Ingo Schwarze <schwarze@openbsd.org> @@ -860,7 +860,6 @@ post_UR(DECL_ARGS) static void print_man_node(DECL_ARGS) { - size_t rm, rmax; int c; switch (n->type) { @@ -928,20 +927,16 @@ out: if (mt->fl & MANT_LITERAL && ! (p->flags & (TERMP_NOBREAK | TERMP_NONEWLINE)) && (n->next == NULL || n->next->flags & NODE_LINE)) { - rm = p->rmargin; - rmax = p->maxrmargin; - p->rmargin = p->maxrmargin = TERM_MAXMARGIN; - p->flags |= TERMP_NOSPACE; + p->flags |= TERMP_BRNEVER | TERMP_NOSPACE; if (n->string != NULL && *n->string != '\0') term_flushln(p); else term_newln(p); - if (rm < rmax && n->parent->tok == MAN_HP) { - p->offset = rm; - p->rmargin = rmax; - } else - p->rmargin = rm; - p->maxrmargin = rmax; + p->flags &= ~TERMP_BRNEVER; + if (p->rmargin < p->maxrmargin && n->parent->tok == MAN_HP) { + p->offset = p->rmargin; + p->rmargin = p->maxrmargin; + } } if (NODE_EOS & n->flags) p->flags |= TERMP_SENTENCE; |