Обсуждение: possible bug in psql

Поиск
Список
Период
Сортировка

possible bug in psql

От
chester c young
Дата:
do not know if right mailing list

in psql in Ubuntu, when beginning with a smaller terminal, eg, 80 col wide, then moving to a larger terminal, eg, 132
colwide, the readline(?) editor in psql still treats like 80 cols, making it impossible to edit longer text.
 



Re: possible bug in psql

От
Tom Lane
Дата:
chester c young <chestercyoung@yahoo.com> writes:
> do not know if right mailing list
> in psql in Ubuntu, when beginning with a smaller terminal, eg, 80 col wide, then moving to a larger terminal, eg, 132
colwide, the readline(?) editor in psql still treats like 80 cols, making it impossible to edit longer text.
 

You'd need to tell the readline people about that one.
        regards, tom lane


Re: possible bug in psql

От
Jasen Betts
Дата:
On 2012-05-29, chester c young <chestercyoung@yahoo.com> wrote:
> do not know if right mailing list
>
> in psql in Ubuntu, when beginning with a smaller terminal, eg, 80
> col wide, then moving to a larger terminal, eg, 132 col wide, the
> readline(?) editor in psql still treats like 80 cols, making it
> impossible to edit longer text.    

As far as I know (as this is the behavior in debian stable)
the ubuntu people use libgettext and not libreadline.

You can force it to use libreadline by using LD_PRELOAD.  I reccomend 
that you do I did this by editing /usr/bin/psql which is a perl script

In any case linux doesn't propogate SIG_WINCH to the other processes
that are using the pty so even if you are using readline you have to 
force this by resizing the window again after exiting the pager, and
then press ctrl-l to clear the screen. 

see also: ld.so(8) kill(7) /usr/share/doc/postgresql-common/*
-- 
⚂⚃ 100% natura



Re: possible bug in psql

От
Craig Ringer
Дата:
On 05/29/2012 07:48 PM, Jasen Betts wrote:
> On 2012-05-29, chester c young<chestercyoung@yahoo.com>  wrote:
>> do not know if right mailing list
>>
>> in psql in Ubuntu, when beginning with a smaller terminal, eg, 80
>> col wide, then moving to a larger terminal, eg, 132 col wide, the
>> readline(?) editor in psql still treats like 80 cols, making it
>> impossible to edit longer text.
> As far as I know (as this is the behavior in debian stable)
> the ubuntu people use libgettext and not libreadline.
>
> You can force it to use libreadline by using LD_PRELOAD.  I reccomend
> that you do I did this by editing /usr/bin/psql which is a perl script
>
> In any case linux doesn't propogate SIG_WINCH to the other processes
> that are using the pty so even if you are using readline you have to
> force this by resizing the window again after exiting the pager, and
> then press ctrl-l to clear the screen.
It'd be nice if `less` would kill(SIGWINCH) its ppid since it is so 
often invoked as a helper. I guess they probably have good reasons not to.

--
Craig Ringer


Re: possible bug in psql

От
chester c young
Дата:
> > do not know if right mailing list
> >
> > in psql in Ubuntu, when beginning with a smaller
> terminal, eg, 80
> > col wide, then moving to a larger terminal, eg, 132 col
> wide, the
> > readline(?) editor in psql still treats like 80 cols,
> making it
> > impossible to edit longer text.   
>
> As far as I know (as this is the behavior in debian stable)
> the ubuntu people use libgettext and not libreadline.
>
> You can force it to use libreadline by using
> LD_PRELOAD.  I reccomend
> that you do I did this by editing /usr/bin/psql which is a
> perl script
>
> In any case linux doesn't propogate SIG_WINCH to the other
> processes
> that are using the pty so even if you are using readline you
> have to
> force this by resizing the window again after exiting the
> pager, and
> then press ctrl-l to clear the screen.

seems to me that Ubuntu is using readline (but I might be wrong)

from /usr/bin/psql:

# libreadline is a lot better than libedit, so prefer that
if ($cmdname eq 'psql') {   my @readlines;   push @readlines, sort(</lib/libreadline.so.*>);   if (@readlines) {
$ENV{'LD_PRELOAD'}= ($ENV{'LD_PRELOAD'} or '') . ':' . $readlines[-1];   } 
}

also, LD_PRELOAD is not referenced anywhere in /etc/postgrest/...