Date: Sat, 10 Mar 2018 17:35:55 +1100 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Mike Karels <karels@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r330712 - head/bin/ps Message-ID: <20180310171525.R971@besplex.bde.org> In-Reply-To: <201803100010.w2A0AlkF008785@repo.freebsd.org> References: <201803100010.w2A0AlkF008785@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 10 Mar 2018, Mike Karels wrote: > ... > Log: > Change ps(1) output width to unlimited if not interactive > ... > Modified: head/bin/ps/ps.1 > ============================================================================== > --- head/bin/ps/ps.1 Fri Mar 9 23:37:19 2018 (r330711) > +++ head/bin/ps/ps.1 Sat Mar 10 00:10:47 2018 (r330712) > @@ -101,6 +101,14 @@ The default output format includes, for each process, > controlling terminal, state, CPU time (including both user and system time) > and associated command. > .Pp > +If the > +.Nm > +process is associated with a terminal, the default output width is that of the > +terminal; otherwise the output width is unlimited. It is unclear how a process is assocated with a terminal and thus what this width is. For ps, unlike for most programs, a process is associated with a terminal iff any of the 3 standard file descriptors is a terminal that supports the TIOCGWINSZ ioctl, and the width of the preferred one is not 0. The preferred one is the first of STDOUT_FILENO, STDERR_FILENO and STDIN_FILENO that supports the ioctl. BUGS: if the first one somehow has width 0, then the process is considered as not being associated with a terminal even of a later one has a nonzero width. > ... > Modified: head/bin/ps/ps.c > ============================================================================== > --- head/bin/ps/ps.c Fri Mar 9 23:37:19 2018 (r330711) > +++ head/bin/ps/ps.c Sat Mar 10 00:10:47 2018 (r330712) > @@ -202,6 +202,11 @@ main(int argc, char *argv[]) > * any of stdout, stderr, or stdin is a terminal. The intent > * is that "ps", "ps | more", and "ps | grep" all use the same > * default line length unless -w is specified. > + * > + * If not interactive, the default length was traditionally 79. > + * It has been changed to unlimited. This is mostly for the > + * benefit of non-interactive scripts, which arguably should > + * use -ww, but is compatible with Linux. > */ This belongs in the HOSTORY section of the man page, with version info for the change. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180310171525.R971>