diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2013-01-05 22:19:12 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2013-01-05 22:19:12 +0000 |
commit | 929151839f65c4c2ab11fbb4a7d44eab22bc7bac (patch) | |
tree | 00b30af3996a906006d7b31f154fe382589c4d30 | |
parent | ad2b1cbba4bc1e9e4aa3808ddc45d04ac07dd3f7 (diff) | |
download | mandoc-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.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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; |