diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2018-05-14 14:10:23 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2018-05-14 14:10:23 +0000 |
commit | 70913603796557ef7ff0be37b221f54cb68d94d1 (patch) | |
tree | 862ac268e59d7ab60d2258f406b3f5e79d1a94d7 | |
parent | 8146f18c9d4d17026c0a4ae5ed85ea5907bf38fc (diff) | |
download | mandoc-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.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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) |