delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2022/02/03/05:00:16

X-Recipient: archive-cygwin AT delorie DOT com
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 795173858C39
Authentication-Results: sourceware.org;
dmarc=none (p=none dis=none) header.from=starwolf.com
Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=starwolf.com
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
server2.sourceware.org
X-Spam-Level:
X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00, BODY_8BITS,
KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP,
T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4
Subject: Re: ls -C broken
To: L A Walsh <cygwin AT tlinx DOT org>, Thomas Wolff <towo AT towo DOT net>
References: <a57bb847-ac3e-7620-234c-1c3babc21fdf AT towo DOT net>
<61FB4315 DOT 8040204 AT tlinx DOT org>
From: Greywolf <greywolf AT starwolf DOT com>
Message-ID: <ddc3c9b7-5fd4-8a28-3651-ef28feeea911@starwolf.com>
Date: Thu, 3 Feb 2022 01:59:56 -0800
User-Agent: Mozilla/5.0 (X11; NetBSD amd64; rv:78.0) Gecko/20100101
Thunderbird/78.12.0
MIME-Version: 1.0
In-Reply-To: <61FB4315.8040204@tlinx.org>
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Cc: cygwin AT cygwin DOT com
Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 213A0Fix007760

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)
>

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019