ttysize: if stdin is not tty, try stdout, then stderr

function                                             old     new   delta
ttysize_main                                         135     175     +40
packed_usage                                       31686   31672     -14

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-07-16 20:36:48 +02:00
parent b24e55da84
commit 68e980545a

View File

@ -25,7 +25,7 @@
//usage:#define ttysize_trivial_usage
//usage: "[w] [h]"
//usage:#define ttysize_full_usage "\n\n"
//usage: "Print dimension(s) of stdin's terminal, on error return 80x25"
//usage: "Print dimensions of stdin tty, or 80x24"
#include "libbb.h"
@ -37,7 +37,10 @@ int ttysize_main(int argc UNUSED_PARAM, char **argv)
w = 80;
h = 24;
if (!ioctl(0, TIOCGWINSZ, &wsz)) {
if (ioctl(0, TIOCGWINSZ, &wsz) == 0
|| ioctl(1, TIOCGWINSZ, &wsz) == 0
|| ioctl(2, TIOCGWINSZ, &wsz) == 0
) {
w = wsz.ws_col;
h = wsz.ws_row;
}