Thread: Small bug fix in readline promt handling

Small bug fix in readline promt handling

From
Martin Pitt
Date:
Hi!

When using %[ and %] (prompt length ignore area) in .psqlrc's prompt
formats, psql sends a \001 before the actual readline commands
(RL_PROMPT_{START,END}_IGNORE). This is the way bash handles the
shell's PSx format, but it is not a readline command, but a bash
specific quirk.

Example .psqlrc:
\set PROMPT1 '%[%033[0;35m%]%/@%m%R%#%[%033[0;22m%] '

-> not correctly handled, the cursor will be in the middle of the
prompt.

Attached patch fixes this. This was investigated and patched by Aaron
Schrab <aaron@schrab.com>, full details at http://bugs.debian.org/343616

Thank you for considering this, and have a merry christmas!

Martin

--
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?

Attachment

Re: Small bug fix in readline promt handling

From
Bruce Momjian
Date:
Your patch has been added to the PostgreSQL unapplied patches list at:

    http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---------------------------------------------------------------------------


Martin Pitt wrote:
-- Start of PGP signed section.
> Hi!
>
> When using %[ and %] (prompt length ignore area) in .psqlrc's prompt
> formats, psql sends a \001 before the actual readline commands
> (RL_PROMPT_{START,END}_IGNORE). This is the way bash handles the
> shell's PSx format, but it is not a readline command, but a bash
> specific quirk.
>
> Example .psqlrc:
> \set PROMPT1 '%[%033[0;35m%]%/@%m%R%#%[%033[0;22m%] '
>
> -> not correctly handled, the cursor will be in the middle of the
> prompt.
>
> Attached patch fixes this. This was investigated and patched by Aaron
> Schrab <aaron@schrab.com>, full details at http://bugs.debian.org/343616
>
> Thank you for considering this, and have a merry christmas!
>
> Martin
>
> --
> Martin Pitt        http://www.piware.de
> Ubuntu Developer   http://www.ubuntu.com
> Debian Developer   http://www.debian.org
>
> In a world without walls and fences, who needs Windows and Gates?

[ Attachment, skipping... ]
-- End of PGP section, PGP failed!

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: Small bug fix in readline promt handling

From
Tom Lane
Date:
Martin Pitt <martin@piware.de> writes:
> When using %[ and %] (prompt length ignore area) in .psqlrc's prompt
> formats, psql sends a \001 before the actual readline commands
> (RL_PROMPT_{START,END}_IGNORE). This is the way bash handles the
> shell's PSx format, but it is not a readline command, but a bash
> specific quirk.

Fixed back through 8.0 (we don't seem to have that code in 7.x branches).
Thanks for the report.

            regards, tom lane