- 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)
This commit is contained in:
parent
fe0b9cfa2a
commit
4fb09911e3
133
bash-3.2-190350.patch
Normal file
133
bash-3.2-190350.patch
Normal file
@ -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 'kekepop<esc>hxi\<esc>.'
|
||||
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 <tomi@nomi.cz>
|
||||
---
|
||||
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.
|
||||
|
@ -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 <tjanouse@redhat.com>
|
||||
|
||||
--- 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)
|
35
bash.spec
35
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 <tjanouse@redhat.com> - 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 <tjanouse@redhat.com> - 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
|
||||
|
82
bash32-026
Normal file
82
bash32-026
Normal file
@ -0,0 +1,82 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-026
|
||||
|
||||
Bug-Reported-by: Chet Ramey <chet.ramey@case.edu>
|
||||
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_ */
|
85
bash32-027
Normal file
85
bash32-027
Normal file
@ -0,0 +1,85 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-027
|
||||
|
||||
Bug-Reported-by: dAniel hAhler <ubuntu@thequod.de>
|
||||
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_ */
|
60
bash32-028
Normal file
60
bash32-028
Normal file
@ -0,0 +1,60 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-028
|
||||
|
||||
Bug-Reported-by: dAniel hAhler <ubuntu@thequod.de>
|
||||
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_ */
|
52
bash32-029
Normal file
52
bash32-029
Normal file
@ -0,0 +1,52 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-029
|
||||
|
||||
Bug-Reported-by: Tomas Janousek <tjanouse@redhat.com>
|
||||
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_ */
|
50
bash32-030
Normal file
50
bash32-030
Normal file
@ -0,0 +1,50 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-030
|
||||
|
||||
Bug-Reported-by: Paul Eggert <eggert@cs.ucla.edu> Andreas Schwab <schwab@suse.de>
|
||||
Bug-Reference-ID: <877il0nu84.fsf_-_@penguin.cs.ucla.edu> <m28x5gparz.fsf@igel.home>
|
||||
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_ */
|
||||
|
||||
|
62
bash32-031
Normal file
62
bash32-031
Normal file
@ -0,0 +1,62 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-031
|
||||
|
||||
Bug-Reported-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
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_ */
|
47
bash32-032
Normal file
47
bash32-032
Normal file
@ -0,0 +1,47 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-032
|
||||
|
||||
Bug-Reported-by: Uwe Doering <gemini@geminix.org>
|
||||
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_ */
|
88
bash32-033
Normal file
88
bash32-033
Normal file
@ -0,0 +1,88 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-033
|
||||
|
||||
Bug-Reported-by: Christophe Martin <schplurtz@free.fr>
|
||||
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_ */
|
||||
|
@ -1,15 +0,0 @@
|
||||
fix cursor position when prompt has one invisible character (#358231)
|
||||
|
||||
Written-by: Miroslav Lichvar <mlichvar@redhat.com>
|
||||
|
||||
--- 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
|
Loading…
Reference in New Issue
Block a user