diff --git a/bash-3.2-190350.patch b/bash-3.2-190350.patch new file mode 100644 index 0000000..2fab4e2 --- /dev/null +++ b/bash-3.2-190350.patch @@ -0,0 +1,133 @@ +#190350: vi mode glitch + +Whenever you do some non-inserting edit command, like 'x' or 'd', +that becomes the command-to-repeat and no further insertions may be repeated. + +1. Start a new bash shell +2. 'set -o vi' +2. Type 'kekepophxi\.' +3. You end up with 'kekepp' instead of 'kekep\\p'. + +This patch fixes it and tries to fix redoing the 'I' command as well. +I'm not sure about 'c', though. + +Signed-off-by: Tomas Janousek +--- + lib/readline/misc.c | 2 +- + lib/readline/readline.c | 2 +- + lib/readline/readline.h | 1 + + lib/readline/vi_keymap.c | 2 +- + lib/readline/vi_mode.c | 21 +++++++++++++++++++-- + 5 files changed, 23 insertions(+), 5 deletions(-) + +diff --git a/lib/readline/misc.c b/lib/readline/misc.c +index e9c72c5..35d6348 100644 +--- a/lib/readline/misc.c ++++ b/lib/readline/misc.c +@@ -560,7 +560,7 @@ rl_vi_editing_mode (count, key) + #if defined (VI_MODE) + _rl_set_insert_mode (RL_IM_INSERT, 1); /* vi mode ignores insert mode */ + rl_editing_mode = vi_mode; +- rl_vi_insertion_mode (1, key); ++ rl_vi_insert_mode (1, key); + #endif /* VI_MODE */ + + return 0; +diff --git a/lib/readline/readline.c b/lib/readline/readline.c +index bd4d263..4b3d91b 100644 +--- a/lib/readline/readline.c ++++ b/lib/readline/readline.c +@@ -370,7 +370,7 @@ readline_internal_setup () + + #if defined (VI_MODE) + if (rl_editing_mode == vi_mode) +- rl_vi_insertion_mode (1, 'i'); ++ rl_vi_insert_mode (1, 'i'); + #endif /* VI_MODE */ + + if (rl_pre_input_hook) +diff --git a/lib/readline/readline.h b/lib/readline/readline.h +index b71bf98..8527ebf 100644 +--- a/lib/readline/readline.h ++++ b/lib/readline/readline.h +@@ -230,6 +230,7 @@ extern int rl_vi_next_word PARAMS((int, int)); + extern int rl_vi_end_word PARAMS((int, int)); + extern int rl_vi_insert_beg PARAMS((int, int)); + extern int rl_vi_append_mode PARAMS((int, int)); ++extern int rl_vi_insert_mode PARAMS((int, int)); + extern int rl_vi_append_eol PARAMS((int, int)); + extern int rl_vi_eof_maybe PARAMS((int, int)); + extern int rl_vi_insertion_mode PARAMS((int, int)); +diff --git a/lib/readline/vi_keymap.c b/lib/readline/vi_keymap.c +index 4b48c75..3a017cc 100644 +--- a/lib/readline/vi_keymap.c ++++ b/lib/readline/vi_keymap.c +@@ -151,7 +151,7 @@ KEYMAP_ENTRY_ARRAY vi_movement_keymap = { + { ISFUNC, rl_vi_char_search }, /* f */ + { ISFUNC, (rl_command_func_t *)0x0 }, /* g */ + { ISFUNC, rl_backward_char }, /* h */ +- { ISFUNC, rl_vi_insertion_mode }, /* i */ ++ { ISFUNC, rl_vi_insert_mode }, /* i */ + { ISFUNC, rl_get_next_history }, /* j */ + { ISFUNC, rl_get_previous_history }, /* k */ + { ISFUNC, rl_forward_char }, /* l */ +diff --git a/lib/readline/vi_mode.c b/lib/readline/vi_mode.c +index b0da0ab..e859062 100644 +--- a/lib/readline/vi_mode.c ++++ b/lib/readline/vi_mode.c +@@ -220,6 +220,15 @@ rl_vi_redo (count, c) + if (rl_point > 0) + _rl_vi_backup (); + } ++ /* Ditto for redoing an insert with `I', but move to the beginning of line ++ like the `I' command does. */ ++ else if (_rl_vi_last_command == 'I' && vi_insert_buffer && *vi_insert_buffer) ++ { ++ rl_beg_of_line (1, 'I'); ++ _rl_vi_stuff_insert (count); ++ if (rl_point > 0) ++ _rl_vi_backup (); ++ } + else + r = _rl_dispatch (_rl_vi_last_command, _rl_keymap); + vi_redoing = 0; +@@ -584,7 +593,7 @@ rl_vi_insert_beg (count, key) + int count, key; + { + rl_beg_of_line (1, key); +- rl_vi_insertion_mode (1, key); ++ rl_vi_insert_mode (1, key); + return (0); + } + +@@ -618,6 +627,14 @@ rl_vi_append_mode (count, key) + } + + int ++rl_vi_insert_mode (count, key) ++ int count, key; ++{ ++ rl_vi_start_inserting (key, 1, rl_arg_sign); ++ return (0); ++} ++ ++int + rl_vi_append_eol (count, key) + int count, key; + { +@@ -690,7 +707,7 @@ _rl_vi_done_inserting () + } + else + { +- if ((_rl_vi_last_key_before_insert == 'i' || _rl_vi_last_key_before_insert == 'a') && rl_undo_list) ++ if ((_rl_vi_last_key_before_insert == 'i' || _rl_vi_last_key_before_insert == 'a' || _rl_vi_last_key_before_insert == 'I') && rl_undo_list) + _rl_vi_save_insert (rl_undo_list); + /* XXX - Other keys probably need to be checked. */ + else if (_rl_vi_last_key_before_insert == 'C') +-- +1.5.3.7 + + +-- +Tomas Janousek, SW Engineer, Red Hat, Inc. + diff --git a/bash-3.2-286861.patch b/bash-3.2-286861.patch deleted file mode 100644 index 3ce4d7c..0000000 --- a/bash-3.2-286861.patch +++ /dev/null @@ -1,23 +0,0 @@ -286861: Wrong input confuses bash's arithmetic unit permanently - -If evalerror (thus longjmp) is called while noeval != 0, it stays nonzero and -assignments cease to work. Such expressions are for example: - -let tmp="foo.a"+0 (only in bash 3.2) -let x=(0?(3?4):3) - -I think we should reset noeval to zero in the evalexp function (or restore -expr_stack[0], probably). - -Written-by: Tomas Janousek - ---- bash-3.2/expr.c.286861 2007-10-23 14:48:38.000000000 +0200 -+++ bash-3.2/expr.c 2007-11-06 18:48:24.000000000 +0100 -@@ -337,6 +337,7 @@ - return (0); - } - -+ noeval = 0; - val = subexpr (expr); - - if (validp) diff --git a/bash.spec b/bash.spec index 6072a73..0490639 100644 --- a/bash.spec +++ b/bash.spec @@ -1,7 +1,7 @@ Version: 3.2 Name: bash Summary: The GNU Bourne Again shell (bash) version %{version} -Release: 19%{?dist} +Release: 20%{?dist} Group: System Environment/Shells License: GPLv2+ Url: http://www.gnu.org/software/bash @@ -36,6 +36,14 @@ Patch22: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-022 Patch23: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-023 Patch24: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-024 Patch25: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-025 +Patch26: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-026 +Patch27: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-027 +Patch28: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-028 +Patch29: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-029 +Patch30: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-030 +Patch31: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-031 +Patch32: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-032 +Patch33: ftp://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-033 # Other patches Patch100: bash-2.03-paths.patch Patch101: bash-2.02-security.patch @@ -53,9 +61,8 @@ Patch130: bash-infotags.patch Patch131: bash-cond-rmatch.patch Patch132: bash-ulimit-m.patch Patch133: bash-3.2-rng.patch -Patch134: readline-5.2-inv.patch -Patch135: bash-3.2-286861.patch Patch136: bash-3.2-344411.patch +Patch137: bash-3.2-190350.patch Requires: mktemp Requires(post): ncurses BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -100,6 +107,14 @@ compliance over previous versions. %patch23 -p0 -b .023 %patch24 -p0 -b .024 %patch25 -p0 -b .025 +%patch26 -p0 -b .026 +%patch27 -p0 -b .027 +%patch28 -p0 -b .028 +%patch29 -p0 -b .029 +%patch30 -p0 -b .030 +%patch31 -p0 -b .031 +%patch32 -p0 -b .032 +%patch33 -p0 -b .033 # Other patches %patch100 -p1 -b .paths @@ -118,9 +133,8 @@ compliance over previous versions. %patch131 -p1 -b .cond-rmatch %patch132 -p1 -b .ulimit-m %patch133 -p1 -b .rng.patch -%patch134 -p1 -b .readline-inv -%patch135 -p1 -b .286861 %patch136 -p1 -b .344411 +%patch137 -p1 -b .190350 echo %{version} > _distribution echo %{release} > _patchlevel @@ -262,6 +276,17 @@ fi %doc doc/*.ps doc/*.0 doc/*.html doc/article.txt %changelog +* Mon Jan 14 2008 Tomas Janousek - 3.2-20 +- Added bash32-026 upstream official patch +- Added bash32-027 upstream official patch (#249987) +- Added bash32-028 upstream official patch +- Added bash32-029 upstream official patch (#286861) +- Added bash32-030 upstream official patch +- Added bash32-031 upstream official patch (#358231) +- Added bash32-032 upstream official patch +- Added bash32-033 upstream official patch +- Fix insert command repeating in vi mode (#190350) + * Tue Nov 06 2007 Tomas Janousek - 3.2-19 - fix cursor position when prompt has one invisible character (#358231) - dropped examples/loadables/ from docs, since it wasn't possible to build them diff --git a/bash32-026 b/bash32-026 new file mode 100644 index 0000000..ba7de50 --- /dev/null +++ b/bash32-026 @@ -0,0 +1,82 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-026 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This keeps the Apple linker from attempting to link bash against Apple's +readline library "replacement" rather than the one shipped with bash. It +extends the configure workaround to Mac OS X Leopard (10.5). + +As a side effect, the patch updates the copyright date displayed in the +version string. + +You must re-run configure after applying the patch, and before rebuilding +bash. + +Patch: + +*** ../bash-3.2-patched/configure.in 2007-03-06 11:07:38.000000000 -0500 +--- configure.in 2007-11-23 15:37:41.000000000 -0500 +*************** +*** 519,523 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 519,523 ---- + # dynamic version + case "${host_os}" in +! darwin[[89]]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/configure 2007-03-24 14:51:22.000000000 -0400 +--- configure 2007-11-23 15:46:15.000000000 -0500 +*************** +*** 4872,4876 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 4872,4876 ---- + # dynamic version + case "${host_os}" in +! darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/version.c 2005-05-16 11:58:34.000000000 -0400 +--- version.c 2007-11-23 16:03:40.000000000 -0500 +*************** +*** 80,83 **** + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n")); + } +--- 80,83 ---- + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n")); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash32-027 b/bash32-027 new file mode 100644 index 0000000..5e110cb --- /dev/null +++ b/bash32-027 @@ -0,0 +1,85 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-027 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: <4702ED8A.5000503@thequod.de> +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../bash-3.2.25/lib/readline/display.c Mon Aug 6 14:26:29 2007 +--- lib/readline/display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash32-028 b/bash32-028 new file mode 100644 index 0000000..e818294 --- /dev/null +++ b/bash32-028 @@ -0,0 +1,60 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-028 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash32-029 b/bash32-029 new file mode 100644 index 0000000..9de2085 --- /dev/null +++ b/bash32-029 @@ -0,0 +1,52 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-029 + +Bug-Reported-by: Tomas Janousek +Bug-Reference-ID: <20071102104034.GA26893@redhat.com> +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=286861 + +Bug-Description: + +When the bash arithmetic expression evaluator has temporarily turned off +evalation, such as when parsing a pre- or post-decrement or -increment +operator, and an error occurs, evaluation is not re-enabled. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400 +--- expr.c 2007-10-18 08:08:44.000000000 -0400 +*************** +*** 287,290 **** +--- 287,292 ---- + } + free (expr_stack[expr_depth]); /* free the allocated EXPR_CONTEXT */ ++ ++ noeval = 0; /* XXX */ + } + +*************** +*** 320,323 **** +--- 322,326 ---- + + val = 0; ++ noeval = 0; + + FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash32-030 b/bash32-030 new file mode 100644 index 0000000..3f12c28 --- /dev/null +++ b/bash32-030 @@ -0,0 +1,50 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-030 + +Bug-Reported-by: Paul Eggert Andreas Schwab +Bug-Reference-ID: <877il0nu84.fsf_-_@penguin.cs.ucla.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html + +Bug-Description: + +If redirections attached to a compound command fail, bash does not set the +command's exit status correctly. This only happens when the command is the +first in a sequential list. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-03-24 14:51:05.000000000 -0400 +--- execute_cmd.c 2007-11-05 22:31:14.000000000 -0500 +*************** +*** 615,619 **** + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (EXECUTION_FAILURE); + } + +--- 620,624 ---- + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (last_command_exit_value = EXECUTION_FAILURE); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ + + diff --git a/bash32-031 b/bash32-031 new file mode 100644 index 0000000..6c96fb9 --- /dev/null +++ b/bash32-031 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-031 + +Bug-Reported-by: Miroslav Lichvar +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash32-032 b/bash32-032 new file mode 100644 index 0000000..5e53e29 --- /dev/null +++ b/bash32-032 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-032 + +Bug-Reported-by: Uwe Doering +Bug-Reference-ID: <46F3DD72.2090801@geminix.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c 2007-08-25 13:47:10.000000000 -0400 +--- lib/readline/input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash32-033 b/bash32-033 new file mode 100644 index 0000000..0d69810 --- /dev/null +++ b/bash32-033 @@ -0,0 +1,88 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-033 + +Bug-Reported-by: Christophe Martin +Bug-Reference-ID: <465ABA4A.3030805@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html + +Bug-Description: + +References made within a function to an uninitialized local array variable +using the [*] subscript in a double-quoted string can result in spurious +ASCII 127 characters in the expanded value. + +Patch: + +*** ../bash-3.2-patched/arrayfunc.c 2007-08-25 13:47:05.000000000 -0400 +--- arrayfunc.c 2007-05-31 11:55:46.000000000 -0400 +*************** +*** 723,727 **** + { + if (rtype) +! *rtype = 1; + if (allow_all == 0) + { +--- 723,727 ---- + { + if (rtype) +! *rtype = (t[0] == '*') ? 1 : 2; + if (allow_all == 0) + { +*** ../bash-3.2-patched/subst.c 2007-08-25 13:47:08.000000000 -0400 +--- subst.c 2007-11-14 15:43:00.000000000 -0500 +*************** +*** 4908,4915 **** + intmax_t arg_index; + SHELL_VAR *var; +! int atype; + + ret = 0; + temp = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +--- 4973,4981 ---- + intmax_t arg_index; + SHELL_VAR *var; +! int atype, rflags; + + ret = 0; + temp = 0; ++ rflags = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +*************** +*** 4944,4947 **** +--- 5010,5015 ---- + ? quote_string (temp) + : quote_escapes (temp); ++ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) ++ rflags |= W_HASQUOTEDNULL; + } + #endif +*************** +*** 4971,4974 **** +--- 5039,5043 ---- + ret = alloc_word_desc (); + ret->word = temp; ++ ret->flags |= rflags; + } + return ret; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/readline-5.2-inv.patch b/readline-5.2-inv.patch deleted file mode 100644 index a98c679..0000000 --- a/readline-5.2-inv.patch +++ /dev/null @@ -1,15 +0,0 @@ -fix cursor position when prompt has one invisible character (#358231) - -Written-by: Miroslav Lichvar - ---- bash-3.2/lib/readline/display.c.inv 2007-10-31 17:14:31.000000000 +0100 -+++ bash-3.2/lib/readline/display.c 2007-10-31 17:15:00.000000000 +0100 -@@ -943,7 +943,7 @@ rl_redisplay () - cpos_adjusted == 0 && - _rl_last_c_pos != o_cpos && - _rl_last_c_pos > wrap_offset && -- o_cpos < prompt_last_invisible) -+ o_cpos <= prompt_last_invisible) - _rl_last_c_pos -= wrap_offset; - - /* If this is the line with the prompt, we might need to