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

From Gregory Stark
Subject Re: Proposed patch - psql wraps at window width
Date
Msg-id 87bq3z8nlc.fsf@oxford.xeocode.com
Whole thread Raw
In response to Re: Proposed patch - psql wraps at window width  (Bruce Momjian <bruce@momjian.us>)
Responses Re: Proposed patch - psql wraps at window width  (Bruce Momjian <bruce@momjian.us>)
Re: Proposed patch - psql wraps at window width  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
"Bruce Momjian" <bruce@momjian.us> writes:

> Gregory Stark wrote:
>
>> Earlier I suggested -- and nobody refuted -- that we should follow the
>> precedents of ls and man and other tools which need to find the terminal
>> width: Explicitly set width takes precedence always, if it's not explicitly
>> set then you use the ioctl, and if that fails then you use the COLUMNS
>> environment variable.
>
> Yes, I like that better.  Patch updated, same URL:
>
>     ftp://momjian.us/pub/postgresql/mypatches/wrap

I think it should just be:
if (opt->format == PRINT_WRAP){    /* Get terminal width --  explicit setting takes precedence */    output_columns =
opt->columns;

#ifdef TIOCGWINSZ    if (output_columns == 0 && isatty(fout))    {        struct winsize screen_size;
        if (ioctl(fileno(fout), TIOCGWINSZ, &screen_size) != -1)            output_columns = screen_size.ws_col;    }
#endif
    if (output_columns == 0)    {        const char *columns_env = getenv("COLUMNS");
        if (columns_env)            output_columns = atoi(columns_env);    }
    if (output_columns == 0)        output_columns = 79;}


The differences this makes are that:

a) if you do -o /dev/tty (perhaps on some kind of cronjob) it will use the  ioctl.

b) If you dump to a file it will still respect COLUMNS. This might be a bit  weird since bash sets COLUMNS so your file
widthwill be based on the size  of your terminal. But people also do things like COLUMNS=120 psql -o f ...
 

--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com Ask me about EnterpriseDB's 24x7 Postgres support!


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Index AM change proposals, redux
Next
From: ITAGAKI Takahiro
Date:
Subject: Re: Index AM change proposals, redux