Hi Conrad, 2017-03-04 23:38 GMT+01:00 Conrad Meyer <c...@freebsd.org>: > Log: > ps(1): Only detect terminal width if stdout is a tty
Nice! > Modified: head/bin/ps/ps.c > ============================================================================== > --- head/bin/ps/ps.c Sat Mar 4 22:23:59 2017 (r314684) > +++ head/bin/ps/ps.c Sat Mar 4 22:38:10 2017 (r314685) > @@ -194,6 +194,8 @@ main(int argc, char *argv[]) > > if ((cols = getenv("COLUMNS")) != NULL && *cols != '\0') > termwidth = atoi(cols); > + else if (!isatty(STDOUT_FILENO)) > + termwidth = UNLIMITED; > else if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && > ioctl(STDERR_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && > ioctl(STDIN_FILENO, TIOCGWINSZ, (char *)&ws) == -1) || > I think you can actually go ahead and simplify this a bit: - If something is a TTY, then our implementation of the TTY layer guarantees that TIOCGWINSZ always works. - If we're only interested in testing stdout whether it's a TTY, I think it makes little sense to check TIOCGWINSZ on stdin, stderr. I think there would therefore be very little harm to use something like this: | if ((cols = getenv("COLUMNS")) != NULL && *cols != '\0') | termwidth = atoi(cols); | else if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, (char *)&ws) == -1 && ws.ws_row == 0) | termwidth = UNLIMITED; | else | termwidth = ws.ws_col - 1; -- Ed Schouten <e...@nuxi.nl> Nuxi, 's-Hertogenbosch, the Netherlands KvK-nr.: 62051717 _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"