summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2013-01-05 22:19:12 +0000
committerIngo Schwarze <schwarze@openbsd.org>2013-01-05 22:19:12 +0000
commit929151839f65c4c2ab11fbb4a7d44eab22bc7bac (patch)
tree00b30af3996a906006d7b31f154fe382589c4d30
parentad2b1cbba4bc1e9e4aa3808ddc45d04ac07dd3f7 (diff)
downloadmandoc-929151839f65c4c2ab11fbb4a7d44eab22bc7bac.tar.gz
In literal mode (.nf), each input line must be kept together
on the same output line, even if it is longer than the output width. This commit fixes a bug allowing an overly long last line of an indented block (.RS) to be broken even in literal mode. The bug was found using the sudo_plugin(4) manual provided by millert@. I introduced the bug in rev. 1.84 during the g2k12 Budapest hackathon.
-rw-r--r--man_term.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/man_term.c b/man_term.c
index 52596b62..7ec86802 100644
--- a/man_term.c
+++ b/man_term.c
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010, 2011, 2012 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010, 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -564,7 +564,7 @@ post_HP(DECL_ARGS)
switch (n->type) {
case (MAN_BODY):
- term_flushln(p);
+ term_newln(p);
p->flags &= ~TERMP_NOBREAK;
p->flags &= ~TERMP_TWOSPACE;
p->offset = mt->offset;
@@ -1001,7 +1001,7 @@ out:
* more specific than this.
*/
if (MANT_LITERAL & mt->fl && ! (TERMP_NOBREAK & p->flags) &&
- NULL != n->next && n->next->line > n->line) {
+ (NULL == n->next || n->next->line > n->line)) {
rm = p->rmargin;
rmax = p->maxrmargin;
p->rmargin = p->maxrmargin = TERM_MAXMARGIN;