On 01/09/2017 02:35 PM, L A Walsh wrote: > I also stand for it being strongly against GNU > standards to add more such behaviors. 'ls' did not recently add any more cases where tty output differs from non-tty output when all other things are equal in the default state. All that changed was that tty output is formatted differently than it has been in the past. And, as always, if you don't like the default, you can override it. > >> As the premise for this argument was incorrect, it >> shouldn't be surprising if readers disagree with its conclusion. > ---- > Now you are deliberately excluding the fact. While my > initial stance was that it was engaging in non-standard behavior > (which is true) No, your claim that ls' behavior is non-standard has been proven to be false; I quoted the line from POSIX that explicitly permits ls to use implementation-defined behavior when outputting to a terminal, and if it is permitted by the standard, then the behavior can't be considered non-standard. It may not be what you want, but that does not make it non-standard. > -- it is also the case that an exception was > made for 'ls' for historical behavior. > > This is not historical behavior. 'ls' doesn't get > a carte blanc to change output anyway it wants because of a specific > historical behavior. Now you are excluding a fact. POSIX _does_ state that the output of 'ls' when targetting a tty is implementation-defined, so we _do_ get carte blanche permission to define our implementation to do what we think is the sanest default, even if our definition of sanest changes over time as we gain more experience on what types of problems trip up the most default users. The fact that ls output to a tty differs from what you get when outputting to a pipeline or file is irrelevant - ls output to a tty has ALWAYS differed from pipeline and file, when relying on the defaults. And if you don't LIKE the difference, then don't use the defaults - write your alias to override the defaults to ask explicitly for a format that does not add quoting you don't like. And remember, scripts are UNLIKELY to be broken by the recent change in what gets output to a tty, because scripts don't usually direct 'ls' output to a tty, at least not if that output is going to affect the control flow of the script (as it is, scripts that try to parse 'ls' output are generally already broken; there are much better tools for handling directory contents than trying to parse 'ls' output). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org