Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Small bug fix in readline promt handling


  • From: Martin Pitt <martin(at)piware(dot)de>
  • To: PostgreSQL Bugs <pgsql-bugs(at)postgresql(dot)org>
  • Subject: Small bug fix in readline promt handling
  • Date: Thu, 22 Dec 2005 19:24:07 +0100
  • Message-id: <20051222182407(dot)GF5076(at)piware(dot)de>

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(at)schrab(dot)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?
diff -ruN postgresql-8.1.1-old/src/bin/psql/prompt.c postgresql-8.1.1/src/bin/psql/prompt.c
--- postgresql-8.1.1-old/src/bin/psql/prompt.c	2005-10-15 04:49:40.000000000 +0200
+++ postgresql-8.1.1/src/bin/psql/prompt.c	2005-12-22 19:12:47.000000000 +0100
@@ -296,8 +296,7 @@
 					 * characters in prompt strings must be marked as such, in
 					 * order to properly display the line during editing.
 					 */
-					buf[0] = '\001';
-					buf[1] = (*p == '[') ? RL_PROMPT_START_IGNORE : RL_PROMPT_END_IGNORE;
+					buf[0] = (*p == '[') ? RL_PROMPT_START_IGNORE : RL_PROMPT_END_IGNORE;
 #endif   /* USE_READLINE */
 					break;
 

Attachment: signature.asc
Description: Digital signature



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group