Bruce Momjian wrote:
> Oops, Alvaro pointed out I typo'ed the variable name COLUMNS as
> COLUMNNS. I see now that 'ls -C' does honor columns.  See my later
> posting about '\pset wrapped 0' as a special case where we could honor
> the ioctl/COLUMNS case.
> 
> My real confusion is this:
> 
>       $ echo $COLUMNS
>       146
> 
>       $ ls -C|less
>       archive       cd    initrd      lost+found  proc  srv  usr
>       basement.usr  dev   initrd.img  media       root  sys  var
>       bin           etc   laptop      mnt         rtmp  tmp  vmlinuz
>       boot          home  lib         opt         sbin  u    win
> 
>       $ COLUMNS=120 ls -C|less
>       archive       bin   cd   etc   initrd      laptop  lost+found  mnt  
> proc rtmp  srv  tmp  usr  vmlinuz
>       basement.usr  boot  dev  home  initrd.img  lib     media       opt  
> root sbin  sys  u    var  win
> 
> Why does the first 'ls' not honor columns while the second does?  How
> does 'ls' detect that the COLUMNS=120 is somehow different from the
> default COLUMNS value?

Ah, I see now.  $COLUMNS isn't exported to subshells, hence the previous
comment that readline needs to be called before it has a value.  It
seems psql does have COLUMNS set if readline is defined, which means we
can't detect of $COLUMNS was passed to psql or was detected.  More
interesting, it doesn't seem psql sets $COLUMNS in batch mode:

        psql -c '\echo `echo $COLUMNS`' test
        {blank line}

        COLUMNS=120 sql -c '\echo `echo $COLUMNS`' test
        120

so we could argue that COLUMNS should be honored but again this would
affect \g filename.  The issue with 'ls' is that it knows it isn't going
to be getting new commands from the user that change where its output is
going, while psql can.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to