Re: Proposed patch - psql wraps at window width - Mailing list pgsql-patches

From Bryce Nesbitt
Subject Re: Proposed patch - psql wraps at window width
Date
Msg-id 480849BE.4050409@obviously.com
Whole thread Raw
In response to Re: Proposed patch - psql wraps at window width  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-patches
Peter Eisentraut wrote:
> Bruce Momjian wrote:
>
>> I checked the use of COLUMNS and it seems bash updates the environment
>> variable when a window is resized.  I added ioctl(TIOCGWINSZ) if COLUMNS
>> isn't set.  We already had a call in print.c for detecting the
>> number of rows on the screen to determine if the pager should
>> be used.  Seems COLUMNS should take precedence over ioctl(), right?
>
> Considering that the code to determine the row count is undisputed so far, the
> column count detection should work the same.  That is, we might not need to
> look at COLUMNS at all.  Unless there is a use case for overriding the column
> count (instead of just turning off the wrapping).
>
I asked the folks over at "Experts Exchange" to test the behavior of the
ioctl and $COLUMNS on various platforms.  I'd been told that I would
face huge problems if a console was resized.  But the results were
pretty consistent, and nothing had problems with resize:
http://www.experts-exchange.com/Programming/Open_Source/Q_23243646.html

It appears impossible to override $COLUMNS, on some platforms as the
readline call sets it.
On many platforms $COLUMNS is null until the call to readline.
OSX does not set $COLUMNS at all.

In short, I recommend the ioctl instead.  In order to provide a way to
wrap output to a pipe, I think a different mechanism will have to be found.

                         -Bryce


pgsql-patches by date:

Previous
From: Bryce Nesbitt
Date:
Subject: Re: Proposed patch - psql wraps at window width
Next
From: Magnus Hagander
Date:
Subject: Re: Coding standards