123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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_ */
|