|
@@ -0,0 +1,105 @@
|
|
|
|
+ BASH PATCH REPORT
|
|
|
|
+ =================
|
|
|
|
+
|
|
|
|
+Bash-Release: 3.1
|
|
|
|
+Patch-ID: bash31-014
|
|
|
|
+
|
|
|
|
+Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com>
|
|
|
|
+Bug-Reference-ID: <20060203191607.GC27614@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:
|
|
|
|
+
|
|
|
|
+*** bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005
|
|
|
|
+--- bash-3.1/lib/readline/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;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
|
|
|
|
+--- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
|
|
|
|
+***************
|
|
|
|
+*** 26,30 ****
|
|
|
|
+ looks for to find the patch level (for the sccs version string). */
|
|
|
|
+
|
|
|
|
+! #define PATCHLEVEL 13
|
|
|
|
+
|
|
|
|
+ #endif /* _PATCHLEVEL_H_ */
|
|
|
|
+--- 26,30 ----
|
|
|
|
+ looks for to find the patch level (for the sccs version string). */
|
|
|
|
+
|
|
|
|
+! #define PATCHLEVEL 14
|
|
|
|
+
|
|
|
|
+ #endif /* _PATCHLEVEL_H_ */
|