svn commit: trunk/buildroot/package/readline

vapier at uclibc.org vapier at uclibc.org
Thu Mar 23 03:04:48 UTC 2006


Author: vapier
Date: 2006-03-22 19:04:47 -0800 (Wed, 22 Mar 2006)
New Revision: 14617

Log:
some more patches from upstream

Added:
   trunk/buildroot/package/readline/readline51-004


Changeset:
Added: trunk/buildroot/package/readline/readline51-004
===================================================================
--- trunk/buildroot/package/readline/readline51-004	2006-03-23 03:04:41 UTC (rev 14616)
+++ trunk/buildroot/package/readline/readline51-004	2006-03-23 03:04:47 UTC (rev 14617)
@@ -0,0 +1,90 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.1
+Patch-ID: readline51-004
+
+Bug-Reported-by: Mike Stroyan <mike.stroyan at hp.com>
+Bug-Reference-ID: <20060203191607.GC27614 at localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html
+
+Bug-Description:
+
+The displayed search prompt is corrupted when using non-incremental
+searches in vi and emacs mode if the prompt contains non-printing
+characters or spans multiple lines.  The prompt is expanded more than
+once; the second time without the escape sequences that protect non-
+printing characters from the length calculations.
+
+Patch:
+
+*** readline-5.1-patched/display.c	Wed Nov 30 14:05:02 2005
+--- readline-5.1/display.c	Sat Feb 18 12:14:58 2006
+***************
+*** 1983,1993 ****
+       int pchar;
+  {
+    int len;
+!   char *pmt;
+  
+    rl_save_prompt ();
+  
+!   if (saved_local_prompt == 0)
+      {
+        len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
+        pmt = (char *)xmalloc (len + 2);
+--- 1998,2012 ----
+       int pchar;
+  {
+    int len;
+!   char *pmt, *p;
+  
+    rl_save_prompt ();
+  
+!   /* We've saved the prompt, and can do anything with the various prompt
+!      strings we need before they're restored.  We want the unexpanded
+!      portion of the prompt string after any final newline. */
+!   p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
+!   if (p == 0)
+      {
+        len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
+        pmt = (char *)xmalloc (len + 2);
+***************
+*** 1998,2016 ****
+      }
+    else
+      {
+!       len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
+        pmt = (char *)xmalloc (len + 2);
+        if (len)
+! 	strcpy (pmt, saved_local_prompt);
+        pmt[len] = pchar;
+        pmt[len+1] = '\0';
+!       local_prompt = savestring (pmt);
+!       prompt_last_invisible = saved_last_invisible;
+!       prompt_visible_length = saved_visible_length + 1;
+!     }
+  
+    prompt_physical_chars = saved_physical_chars + 1;
+- 
+    return pmt;
+  }
+  
+--- 2017,2033 ----
+      }
+    else
+      {
+!       p++;
+!       len = strlen (p);
+        pmt = (char *)xmalloc (len + 2);
+        if (len)
+! 	strcpy (pmt, p);
+        pmt[len] = pchar;
+        pmt[len+1] = '\0';
+!     }  
+  
++   /* will be overwritten by expand_prompt, called from rl_message */
+    prompt_physical_chars = saved_physical_chars + 1;
+    return pmt;
+  }
+  




More information about the uClibc-cvs mailing list