public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Greywolf <greywolf@starwolf.com>
To: L A Walsh <cygwin@tlinx.org>, Thomas Wolff <towo@towo.net>
Cc: cygwin@cygwin.com
Subject: Re: ls -C broken
Date: Thu, 3 Feb 2022 01:59:56 -0800	[thread overview]
Message-ID: <ddc3c9b7-5fd4-8a28-3651-ef28feeea911@starwolf.com> (raw)
In-Reply-To: <61FB4315.8040204@tlinx.org>

That would be rude on the part of GNU, that's for sure.

Below, though, I don't see the use of -C explicitly.  ls defaults to -C if 
output is to a terminal, and to -1 if not, as it has done for many years.

I see a lot of red herrings in the explanations below as regarding column, 
tabs, expand, and numfmt.  I don't think any of them come into play

Which version of 'ls' is pulling this nonsense?

On 2/2/22 6:51 PM, L A Walsh wrote:

> On 2022/01/28 07:46, Thomas Wolff wrote:
>> If I redirect output of `ls -C` (file / pipe), it used to produce
>> well-formatted output in columns.
>> Suddenly it produces garbage formatting instead. As `ls` itself is not
>> new, maybe it's some library that breaks behaviour?
>> Or even pty code?? Works on Cygwin 32-bit. Any idea?
>> Thomas
>>    
> ---
> The authors of Gnu ls changed 'ls' defaults because "they can".
> Old ls -C:
> /bin/ls /proc

Where is the -C?

> 331  379  913       filesystems  mounts      registry32  swaps    version
> 332  500  cpuinfo   loadavg      net         registry64  sys
> 335  731  cygdrive  meminfo      partitions  self        sysvipc
> new ls -C:
> /bin/ls /proc|cat

Where is the -C?

> 331
> 332
> 335
> 370
> 379
> 500
> 731
> 732
> 945
> 946
> cpuinfo
> cygdrive
> devices
> filesystems
> loadavg
> meminfo
> misc
> mounts
> net
> partitions
> registry
> registry32
> registry64
> self
> stat
> swaps
> sys
> sysvipc
> uptime
> version
> ---
> with column:
> law.Bliss> /bin/ls /proc|column (tabs mismatch)
> 331   731   devices   net   stat
> 332   732   filesystems partitions  swaps
> 335   952   loadavg   registry  sys
> 370   953   meminfo   registry32  sysvipc
> 379   cpuinfo   misc    registry64  uptime
> 500   cygdrive  mounts    self    version
> with column+expand -8:
> s> /bin/ls /proc|column|expand -8
> 1021            379             devices         net             stat
> 1022            500             filesystems     partitions      swaps
> 331             731             loadavg         registry        sys
> 332             732             meminfo         registry32      sysvipc
> 335             cpuinfo         misc            registry64      uptime
> 370             cygdrive        mounts          self            version
> ---
> several other tools no longer have settings to expand tabs to user-values
> requiring the use of expand.
> Formats of numeric output were also changed, requiring usage of 'numfmt'
> This was all done to benefit script consistency at the expense of
> users usability. It is expected that users can adapt to the computers.
> by default, 'ls' will produce different output when it goes to the
> screen vs. when
> it goes to a pipe.  When 'ls' goes to a pipe it is required to only use
> 1 column.

Not strictly "required" but has done since forever.

> To get the behavior you want, try piping through 'column' first (see
> 'man (1) column).
>
> They made many changes in core-utils to make automated shell scripts more
> consistent at the expense of user-usability where they now suggest using
> pipes into other utilities to get previous output

GNU is getting too big for their britches.  This is completely out of line.

> Try using ls|column.  Of course ls also used to expand tabs to every 8
> characters
> and it no longer does that.  So you must use another util 'tabs' to set
> tabs to every 8th column (ls's standard tab setting)
>

      reply	other threads:[~2022-02-03  9:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28 15:46 Thomas Wolff
2022-01-28 16:11 ` [QUAR] " Eliot Moss
2022-02-03  2:51 ` L A Walsh
2022-02-03  9:59   ` Greywolf [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ddc3c9b7-5fd4-8a28-3651-ef28feeea911@starwolf.com \
    --to=greywolf@starwolf.com \
    --cc=cygwin@cygwin.com \
    --cc=cygwin@tlinx.org \
    --cc=towo@towo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).