Skip site navigation (1)Skip section navigation (2)
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>