Gregory Stark wrote: > "Bruce Momjian" <[EMAIL PROTECTED]> writes: > > > FYI, I looked into 'ls -C' hanlding a little more and ls (GNU coreutils) > > 5.97 honors COLUMNS _only_ in file/pipe output, not for screen output. > > What the C code does is to read COLUMNS, then overwrite that value with > > ioctl() if it works. > > Well saying "file/pipe" and "screen output" is making a lot of assumptions. > The pipe may still be ending up on the screen if it's being piped to a pager. > And a "file" could still be a terminal. Also, not all terminals support the > ioctl().
True, but I can't think of a cleaner way to specify it, and I haven't see wording that is clearer. I think most people understand this distinction. If they don't they will learn soon enough when they try it. > What ls does is use the same logic for all cases. When the ioctl works that > takes precedence regardless of whether it's "file/pipe" or "screen output". > When it fails it uses COLUMNS instead if set. > > We really must stop thinking in terms of specific use cases. You will tie > yourselves in knots if you try to enumerate all the types of terminals, places > people redirect output, and uses people might make for the output. And it will > result in very complex, hard to explain behaviour which will surprise and > disappoint users. I think we need to focus on usability. Using consistent logic is nice, but if it doesn't do what most people would want, then we have to adjust. -- 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