aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-05-14 14:10:23 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-05-14 14:10:23 +0000
commit70913603796557ef7ff0be37b221f54cb68d94d1 (patch)
tree862ac268e59d7ab60d2258f406b3f5e79d1a94d7
parent8146f18c9d4d17026c0a4ae5ed85ea5907bf38fc (diff)
downloadmandoc-70913603796557ef7ff0be37b221f54cb68d94d1.tar.gz
mandoc-70913603796557ef7ff0be37b221f54cb68d94d1.tar.zst
mandoc-70913603796557ef7ff0be37b221f54cb68d94d1.zip
Some broken terminal emulators (e.g. sakura) do the equivalent
of "stty cols 0". Ignore that insanity rather than setting conf.output.width to an invalid value and embarking on infinite loops. Issue reported by Jesper Wallin <jesper at ifconfig dot se>, thanks!
-rw-r--r--main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/main.c b/main.c
index 67827b2b..600bc9bb 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.305 2018/04/19 16:25:24 schwarze Exp $ */
+/* $Id: main.c,v 1.306 2018/05/14 14:10:23 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2012, 2014-2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -321,7 +321,8 @@ main(int argc, char *argv[])
if (use_pager &&
(conf.output.width == 0 || conf.output.indent == 0) &&
- ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1) {
+ ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1 &&
+ ws.ws_col > 1) {
if (conf.output.width == 0 && ws.ws_col < 79)
conf.output.width = ws.ws_col - 1;
if (conf.output.indent == 0 && ws.ws_col < 66)