- 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
|
Version: 3.2
|
||||||
Name: bash
|
Name: bash
|
||||||
Summary: The GNU Bourne Again shell (bash) version %{version}
|
Summary: The GNU Bourne Again shell (bash) version %{version}
|
||||||
Release: 19%{?dist}
|
Release: 20%{?dist}
|
||||||
Group: System Environment/Shells
|
Group: System Environment/Shells
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Url: http://www.gnu.org/software/bash
|
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
|
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
|
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
|
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
|
# Other patches
|
||||||
Patch100: bash-2.03-paths.patch
|
Patch100: bash-2.03-paths.patch
|
||||||
Patch101: bash-2.02-security.patch
|
Patch101: bash-2.02-security.patch
|
||||||
@ -53,9 +61,8 @@ Patch130: bash-infotags.patch
|
|||||||
Patch131: bash-cond-rmatch.patch
|
Patch131: bash-cond-rmatch.patch
|
||||||
Patch132: bash-ulimit-m.patch
|
Patch132: bash-ulimit-m.patch
|
||||||
Patch133: bash-3.2-rng.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
|
Patch136: bash-3.2-344411.patch
|
||||||
|
Patch137: bash-3.2-190350.patch
|
||||||
Requires: mktemp
|
Requires: mktemp
|
||||||
Requires(post): ncurses
|
Requires(post): ncurses
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
@ -100,6 +107,14 @@ compliance over previous versions.
|
|||||||
%patch23 -p0 -b .023
|
%patch23 -p0 -b .023
|
||||||
%patch24 -p0 -b .024
|
%patch24 -p0 -b .024
|
||||||
%patch25 -p0 -b .025
|
%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
|
# Other patches
|
||||||
%patch100 -p1 -b .paths
|
%patch100 -p1 -b .paths
|
||||||
@ -118,9 +133,8 @@ compliance over previous versions.
|
|||||||
%patch131 -p1 -b .cond-rmatch
|
%patch131 -p1 -b .cond-rmatch
|
||||||
%patch132 -p1 -b .ulimit-m
|
%patch132 -p1 -b .ulimit-m
|
||||||
%patch133 -p1 -b .rng.patch
|
%patch133 -p1 -b .rng.patch
|
||||||
%patch134 -p1 -b .readline-inv
|
|
||||||
%patch135 -p1 -b .286861
|
|
||||||
%patch136 -p1 -b .344411
|
%patch136 -p1 -b .344411
|
||||||
|
%patch137 -p1 -b .190350
|
||||||
|
|
||||||
echo %{version} > _distribution
|
echo %{version} > _distribution
|
||||||
echo %{release} > _patchlevel
|
echo %{release} > _patchlevel
|
||||||
@ -262,6 +276,17 @@ fi
|
|||||||
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
||||||
|
|
||||||
%changelog
|
%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
|
* Tue Nov 06 2007 Tomas Janousek <tjanouse@redhat.com> - 3.2-19
|
||||||
- fix cursor position when prompt has one invisible character (#358231)
|
- fix cursor position when prompt has one invisible character (#358231)
|
||||||
- dropped examples/loadables/ from docs, since it wasn't possible to build them
|
- 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