summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-shells/bash/files/bash-3.0-rl-display.patch')
-rw-r--r--app-shells/bash/files/bash-3.0-rl-display.patch185
1 files changed, 0 insertions, 185 deletions
diff --git a/app-shells/bash/files/bash-3.0-rl-display.patch b/app-shells/bash/files/bash-3.0-rl-display.patch
deleted file mode 100644
index 77e0f33..0000000
--- a/app-shells/bash/files/bash-3.0-rl-display.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-Ripped from Debian
-
-# DP: Fix bug utilising the ``reverse-search-history'' feature of the readline
-# DP: library, if the search string matches a previously entered command (ie
-# DP: history) and must overflow the current screen width.
-
-From: Chet Ramey <chet@caleb.ins.cwru.edu>
-To: doko@cs.tu-berlin.de
-Cc: chet@po.cwru.edu
-Subject: Re: Bug#288940: bash-3.0 segfault in readline when Control-R'ing long lines (forwarded from epl@unimelb.edu.au)
-Date: Tue, 11 Jan 2005 15:25:15 -0500
-
-> Chet Ramey writes:
-> > > Package: bash
-> > > Version: 3.0-12
-> > > Severity: normal
-> > > Tags: sid
-> > >
-> > > I have found a bug where Debian unstable's bash-3.0 will segfault when
-> > > utilising the ``reverse-search-history'' feature of the readline library.
-> > > In particular, the search string must match a previously entered command
-> > > (ie history) and must overflow the current screen width.
-> >
-> > Thanks, I fixed this one.
->
-> as this is a segfault, could you provide the patch?
-
-The changes in display.c are extensive enough that it is a fairly large patch.
-Here are the essentials. I will more than likely not be releasing this as an
-official patch.
-
-Chet
-
-*** ../bash-3.0-patched/lib/readline/display.c Wed Sep 8 11:07:51 2004
---- lib/readline/display.c Sat Jan 8 21:51:40 2005
-***************
-*** 181,184 ****
---- 186,201 ----
- static int prompt_physical_chars;
-
-+ /* Variables to save and restore prompt and display information. */
-+
-+ /* These are getting numerous enough that it's time to create a struct. */
-+
-+ static char *saved_local_prompt;
-+ static char *saved_local_prefix;
-+ static int saved_last_invisible;
-+ static int saved_visible_length;
-+ static int saved_prefix_length;
-+ static int saved_invis_chars_first_line;
-+ static int saved_physical_chars;
-+
- /* Expand the prompt string S and return the number of visible
- characters in *LP, if LP is not null. This is currently more-or-less
-***************
-*** 1797,1803 ****
- return ((ISPRINT (uc)) ? 1 : 2);
- }
--
- /* How to print things in the "echo-area". The prompt is treated as a
- mini-modeline. */
-
- #if defined (USE_VARARGS)
---- 1825,1831 ----
- return ((ISPRINT (uc)) ? 1 : 2);
- }
- /* How to print things in the "echo-area". The prompt is treated as a
- mini-modeline. */
-+ static int msg_saved_prompt = 0;
-
- #if defined (USE_VARARGS)
-***************
-*** 1830,1835 ****
---- 1858,1874 ----
- va_end (args);
-
-+ if (saved_local_prompt == 0)
-+ {
-+ rl_save_prompt ();
-+ msg_saved_prompt = 1;
-+ }
- rl_display_prompt = msg_buf;
-+ local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
-+ &prompt_last_invisible,
-+ &prompt_invis_chars_first_line,
-+ &prompt_physical_chars);
-+ local_prompt_prefix = (char *)NULL;
- (*rl_redisplay_function) ();
-+
- return 0;
- }
-***************
-*** 1841,1846 ****
---- 1880,1897 ----
- sprintf (msg_buf, format, arg1, arg2);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
-+
- rl_display_prompt = msg_buf;
-+ if (saved_local_prompt == 0)
-+ {
-+ rl_save_prompt ();
-+ msg_saved_prompt = 1;
-+ }
-+ local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
-+ &prompt_last_invisible,
-+ &prompt_invis_chars_first_line,
-+ &prompt_physical_chars);
-+ local_prompt_prefix = (char *)NULL;
- (*rl_redisplay_function) ();
-+
- return 0;
- }
-***************
-*** 1852,1855 ****
---- 1903,1911 ----
- {
- rl_display_prompt = rl_prompt;
-+ if (msg_saved_prompt)
-+ {
-+ rl_restore_prompt ();
-+ msg_saved_prompt = 0;
-+ }
- (*rl_redisplay_function) ();
- return 0;
-***************
-*** 1866,1878 ****
- }
-
-- /* These are getting numerous enough that it's time to create a struct. */
--
-- static char *saved_local_prompt;
-- static char *saved_local_prefix;
-- static int saved_last_invisible;
-- static int saved_visible_length;
-- static int saved_invis_chars_first_line;
-- static int saved_physical_chars;
--
- void
- rl_save_prompt ()
---- 1922,1925 ----
-***************
-*** 1880,1883 ****
---- 1927,1931 ----
- saved_local_prompt = local_prompt;
- saved_local_prefix = local_prompt_prefix;
-+ saved_prefix_length = prompt_prefix_length;
- saved_last_invisible = prompt_last_invisible;
- saved_visible_length = prompt_visible_length;
-***************
-*** 1886,1890 ****
-
- local_prompt = local_prompt_prefix = (char *)0;
-! prompt_last_invisible = prompt_visible_length = 0;
- prompt_invis_chars_first_line = prompt_physical_chars = 0;
- }
---- 1934,1938 ----
-
- local_prompt = local_prompt_prefix = (char *)0;
-! prompt_last_invisible = prompt_visible_length = prompt_prefix_length = 0;
- prompt_invis_chars_first_line = prompt_physical_chars = 0;
- }
-***************
-*** 1898,1905 ****
---- 1946,1959 ----
- local_prompt = saved_local_prompt;
- local_prompt_prefix = saved_local_prefix;
-+ prompt_prefix_length = saved_prefix_length;
- prompt_last_invisible = saved_last_invisible;
- prompt_visible_length = saved_visible_length;
- prompt_invis_chars_first_line = saved_invis_chars_first_line;
- prompt_physical_chars = saved_physical_chars;
-+
-+ /* can test saved_local_prompt to see if prompt info has been saved. */
-+ saved_local_prompt = saved_local_prefix = (char *)0;
-+ saved_last_invisible = saved_visible_length = saved_prefix_length = 0;
-+ saved_invis_chars_first_line = saved_physical_chars = 0;
- }
-
-
-
---
-``The lyf so short, the craft so long to lerne.'' - Chaucer
-( ``Discere est Dolere'' -- chet )
- Live...Laugh...Love
-Chet Ramey, ITS, CWRU chet@po.cwru.edu http://tiswww.tis.cwru.edu/~chet/