Hello community,
here is the log from the commit of package bash for openSUSE:Factory
checked in at Wed Mar 9 09:20:03 CET 2011.
--------
--- bash/bash.changes 2011-02-25 18:10:04.000000000 +0100
+++ /mounts/work_src_done/STABLE/bash/bash.changes 2011-03-08 18:49:06.000000000 +0100
@@ -2 +2 @@
-Fri Feb 25 17:08:09 UTC 2011 - werner@suse.de
+Tue Mar 8 18:47:59 CET 2011 - werner@suse.de
@@ -4 +4,11 @@
-- Add patch bash41-010
+- Much better solution for saving history for system with sigsetjmp
+
+-------------------------------------------------------------------
+Tue Mar 8 12:51:29 CET 2011 - werner@suse.de
+
+- Reintroduce history saving at SIGHUP
+
+-------------------------------------------------------------------
+Tue Mar 7 15:25:33 CET 2011 - werner@suse.de
+
+- Update bash 4.2 to patch level 7
@@ -9,0 +20,73 @@
+
+-------------------------------------------------------------------
+Mon Feb 14 16:50:00 CET 2011 - werner@suse.de
+
+- Update to bash 4.2 -- changelog see entry for bash 4.2 rc1
+
+-------------------------------------------------------------------
+Mon Jan 17 16:19:59 CET 2011 - werner@suse.de
+
+- Update to bash 4.2 rc1
+ * `exec -a foo' now sets $0 to `foo' in an executable shell script
+ without a leading #!.
+ * Subshells begun to execute command substitutions or run shell functions or
+ builtins in subshells do not reset trap strings until a new trap is
+ specified. This allows $(trap) to display the caller's traps and the
+ trap strings to persist until a new trap is set.
+ * `trap -p' will now show signals ignored at shell startup, though their
+ disposition still cannot be modified.
+ * $'...', echo, and printf understand \uXXXX and \UXXXXXXXX escape sequences.
+ * declare/typeset has a new `-g' option, which creates variables in the
+ global scope even when run in a shell function.
+ * test/[/[[ have a new -v variable unary operator, which returns success if
+ `variable' has been set.
+ * Posix parsing changes to allow `! time command' and multiple consecutive
+ instances of `!' (which toggle) and `time' (which have no cumulative
+ effect).
+ * Posix change to allow `time' as a command by itself to print the elapsed
+ user, system, and real times for the shell and its children.
+ * $((...)) is always parsed as an arithmetic expansion first, instead of as
+ a potential nested command substitution, as Posix requires.
+ * A new FUNCNEST variable to allow the user to control the maximum shell
+ function nesting (recursive execution) level.
+ * The mapfile builtin now supplies a third argument to the callback command:
+ the line about to be assigned to the supplied array index.
+ * The printf builtin has a new %(fmt)T specifier, which allows time values
+ to use strftime-like formatting.
+ * There is a new `compat41' shell option.
+ * The cd builtin has a new Posix-mandated `-e' option.
+ * Negative subscripts to indexed arrays, previously errors, now are treated
+ as offsets from the maximum assigned index + 1.
+ * Negative length specifications in the ${var:offset:length} expansion,
+ previously errors, are now treated as offsets from the end of the variable.
+ * Parsing change to allow `time -p --'.
+ * Posix-mode parsing change to not recognize `time' as a keyword if the
+ following token begins with a `-'. This means no more Posix-mode
+ `time -p'. Posix interpretation 267.
+ * There is a new `lastpipe' shell option that runs the last command of a
+ pipeline in the current shell context. The lastpipe option has no
+ effect if job control is enabled.
+ * History expansion no longer expands the `$!' variable expansion.
+ * Posix mode shells no longer exit if a variable assignment error occurs
+ with an assignment preceding a command that is not a special builtin.
+ * History expansion no longer expands the `$!' variable expansion.
+ * Posix mode shells no longer exit if a variable assignment error occurs
+ with an assignment preceding a command that is not a special builtin.
+ * Non-interactive mode shells exit if -u is enabled and an attempt is made
+ to use an unset variable with the % or # expansions, the `//', `^', or
+ `,' expansions, or the parameter length expansion.
+ * Posix-mode shells use the argument passed to `.' as-is if a $PATH search
+ fails, effectively searching the current directory. Posix-2008 change.
+- Update to readline 6.2 rc1
+ * The history library does not try to write the history filename in the
+ current directory if $HOME is unset. This closes a potential security
+ problem if the application does not specify a history filename.
+ * New bindable variable `completion-display-width' to set the number of
+ columns used when displaying completions.
+ * New bindable variable `completion-case-map' to cause case-insensitive
+ completion to treat `-' and `_' as identical.
+ * There are new bindable vi-mode command names to avoid readline's case-
+ insensitive matching not allowing them to be bound separately.
+ * New bindable variable `menu-complete-display-prefix' causes the menu
+ completion code to display the common prefix of the possible completions
+ before cycling through the list, instead of after.
calling whatdependson for head-i586
Old:
----
bash-3.2-2.4.4.patch
bash-4.1-array.dif
bash-4.1-edit-parser-state.patch
bash-4.1-intr.dif
bash-4.1-non_void.patch
bash-4.1-patches.tar.bz2
bash-4.1-pipe.dif
bash-4.1-po-cs-messages-fix.patch
bash-4.1-sigrestart.patch
bash-4.1.dif
bash-4.1.tar.bz2
readline-6.0-metamode.patch
readline-6.1-destdir.patch
readline-6.1-patches.tar.bz2
readline-6.1.dif
readline-6.1.tar.bz2
New:
----
bash-4.2-2.4.4.patch
bash-4.2-history.dif
bash-4.2-patches.tar.bz2
bash-4.2-sigrestart.patch
bash-4.2.dif
bash-4.2.tar.bz2
readline-6.2-destdir.patch
readline-6.2-metamode.patch
readline-6.2-patches.tar.bz2
readline-6.2.dif
readline-6.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bash.spec ++++++
--- /var/tmp/diff_new_pack.1EqC8J/_old 2011-03-09 09:15:37.000000000 +0100
+++ /var/tmp/diff_new_pack.1EqC8J/_new 2011-03-09 09:15:37.000000000 +0100
@@ -24,8 +24,9 @@
%endif
License: GPLv2+
Group: System/Shells
-%define bash_vers 4.1
-%define rl_vers 6.1
+%define bash_vers 4.2
+%define rl_vers 6.2
+%define extend ""
%if %suse_version > 1020
Recommends: bash-lang = %bash_vers
# The package bash-completion is a source of
@@ -35,8 +36,8 @@
Recommends: bash-doc = %bash_vers
%endif
AutoReqProv: on
-Version: 4.1
-Release: 23
+Version: 4.2
+Release: 1
Summary: The GNU Bourne-Again Shell
Url: http://www.gnu.org/software/bash/bash.html
Source0: ftp://ftp.gnu.org/gnu/bash/bash-%{bash_vers}.tar.bz2
@@ -51,17 +52,17 @@
Patch0: bash-%{bash_vers}.dif
Patch1: bash-2.03-manual.patch
Patch2: bash-4.0-security.patch
-Patch3: bash-3.2-2.4.4.patch
+Patch3: bash-4.2-2.4.4.patch
Patch4: bash-3.0-evalexp.patch
Patch5: bash-3.0-warn-locale.patch
-Patch6: bash-4.1-po-cs-messages-fix.patch
Patch7: bash-3.0-decl.patch
Patch8: bash-4.0-async-bnc523667.dif
Patch9: bash-4.0-extended_quote.patch
Patch10: bash-3.2-printf.patch
Patch11: bash-4.0-loadables.dif
Patch12: bash-4.1-completion.dif
-Patch14: bash-4.1-sigrestart.patch
+Patch13: bash-4.2-history.dif
+Patch14: bash-4.2-sigrestart.patch
Patch15: bash-3.2-longjmp.dif
Patch16: bash-4.0-setlocale.dif
Patch17: bash-4.0-headers.dif
@@ -69,14 +70,9 @@
Patch21: readline-4.3-input.dif
Patch22: readline-6.1-wrap.patch
Patch23: readline-5.2-conf.patch
-Patch24: readline-6.0-metamode.patch
-Patch30: readline-6.1-destdir.patch
+Patch24: readline-6.2-metamode.patch
+Patch30: readline-6.2-destdir.patch
Patch40: bash-4.1-bash.bashrc.dif
-Patch41: bash-4.1-intr.dif
-Patch42: bash-4.1-non_void.patch
-Patch43: bash-4.1-array.dif
-Patch44: bash-4.1-pipe.dif
-Patch45: bash-4.1-edit-parser-state.patch
Patch46: man2html-no-timestamp.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir /etc
@@ -105,8 +101,8 @@
Group: Documentation/Man
Provides: bash:%{_infodir}/bash.info.gz
PreReq: %install_info_prereq
-Version: 4.1
-Release: 19
+Version: 4.2
+Release: 1
AutoReqProv: on
%if %suse_version > 1120
BuildArch: noarch
@@ -141,8 +137,8 @@
License: GPLv2+
Summary: Include Files mandatory for Development of bash loadable builtins
Group: Development/Languages/C and C++
-Version: 4.1
-Release: 19
+Version: 4.2
+Release: 1
AutoReqProv: on
%description -n bash-devel
@@ -161,8 +157,8 @@
License: GPLv2+
Summary: Loadable bash builtins
Group: System/Shells
-Version: 4.1
-Release: 19
+Version: 4.2
+Release: 1
AutoReqProv: on
%description -n bash-loadables
@@ -230,8 +226,8 @@
Summary: The Readline Library
Group: System/Libraries
Provides: bash:/%{_lib}/libreadline.so.%{rl_major}
-Version: 6.1
-Release: 19
+Version: 6.2
+Release: 1
%if %suse_version > 1020
Recommends: readline-doc = %{version}
%endif
@@ -240,8 +236,8 @@
Obsoletes: readline-64bit
%endif
#
-Provides: readline = 6.1
-Obsoletes: readline <= 6.0
+Provides: readline = 6.2
+Obsoletes: readline <= 6.1
AutoReqProv: on
%description -n libreadline6
@@ -261,8 +257,8 @@
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/C and C++
Provides: bash:%{_libdir}/libreadline.a
-Version: 6.1
-Release: 19
+Version: 6.2
+Release: 1
Requires: libreadline6 = %{version}
Requires: ncurses-devel
%if %suse_version > 1020
@@ -292,8 +288,8 @@
Group: System/Libraries
Provides: readline:%{_infodir}/readline.info.gz
PreReq: %install_info_prereq
-Version: 6.1
-Release: 19
+Version: 6.2
+Release: 1
AutoReqProv: on
%if %suse_version > 1120
BuildArch: noarch
@@ -311,7 +307,7 @@
Chet Ramey
%prep
-%setup -q -n bash-%{bash_vers} -b1 -b2 -b3
+%setup -q -n bash-%{bash_vers}%{extend} -b1 -b2 -b3
for p in ../bash-%{bash_vers}-patches/*; do
test -e $p || break
echo Patch $p
@@ -323,13 +319,13 @@
%patch3 -p0 -b .2.4.4
%patch4 -p0 -b .evalexp
%patch5 -p0 -b .warnlc
-%patch6 -p1 -b .po-cs
%patch7 -p0 -b .decl
%patch8 -p0 -b .async
%patch9 -p0 -b .extended_quote
%patch10 -p0 -b .printf
%patch11 -p0 -b .plugins
%patch12 -p0 -b .completion
+%patch13 -p0 -b .history
%patch14 -p0 -b .sigrestart
%patch15 -p0 -b .longjmp
%patch16 -p0 -b .setlocale
@@ -339,16 +335,9 @@
%patch23 -p0 -b .conf
%patch24 -p0 -b .metamode
%patch40 -p0 -b .bashrc
-%patch41 -p0 -b .intr
-%patch42 -p0 -b .non_void
-%patch43 -p0 -b .array
-# This currently resets the PIPESTATUS array
-# the status of the forground process only
-#%patch44 -p0 -b .pipe
-%patch45 -p0 -b .parser
-%patch46 -p0
-%patch0 -p0
-cd ../readline-%{rl_vers}
+%patch46 -p0 -b .notimestamp
+%patch0 -p0 -b .0
+pushd ../readline-%{rl_vers}%{extend}
for p in ../readline-%{rl_vers}-patches/*; do
test -e $p || break
echo Patch $p
@@ -359,7 +348,7 @@
%patch23 -p2 -b .conf
%patch24 -p2 -b .metamode
%patch30 -p0 -b .destdir
-%patch20 -p0
+%patch20 -p0 -b .0
%build
LANG=POSIX
@@ -369,7 +358,7 @@
HOSTTYPE=${CPU}
MACHTYPE=${CPU}-suse-linux
export LANG LC_ALL HOSTTYPE MACHTYPE
-cd ../readline-%{rl_vers}
+pushd ../readline-%{rl_vers}%{extend}
%{?suse_update_config:%{suse_update_config -f support}}
autoconf
cflags ()
@@ -438,7 +427,7 @@
ln -sf shlib/libreadline.so.%{rl_vers} libreadline.so.%{rl_major}
ln -sf shlib/libhistory.so.%{rl_vers} libhistory.so
ln -sf shlib/libhistory.so.%{rl_vers} libhistory.so.%{rl_major}
-cd ../bash-%{bash_vers}
+popd
# /proc is required for correct configuration
test -d /dev/fd || { echo "/proc is not mounted!" >&2; exit 1; }
ln -sf ../readline-%{rl_vers} readline
@@ -539,7 +528,7 @@
make documentation
%install
-cd ../readline-%{rl_vers}
+pushd ../readline-%{rl_vers}%{extend}
make install htmldir=%{_defaultdocdir}/readline \
installdir=%{_defaultdocdir}/readline/examples DESTDIR=%{buildroot}
make install-shared libdir=/%{_lib} linkagedir=%{_libdir} DESTDIR=%{buildroot}
@@ -553,7 +542,7 @@
rm -vf %{buildroot}/%{_lib}/libreadline.so
ln -sf /%{_lib}/libhistory.so.%{rl_vers} %{buildroot}/%{_libdir}/libhistory.so
ln -sf /%{_lib}/libreadline.so.%{rl_vers} %{buildroot}/%{_libdir}/libreadline.so
-cd ../bash-%{bash_vers}
+popd
make install DESTDIR=%{buildroot}
make -C examples/loadables/ install-plugins DESTDIR=%{buildroot} libdir=/%{_lib}
make -C examples/loadables/ install-headers DESTDIR=%{buildroot}
++++++ bash-3.2-2.4.4.patch -> bash-4.2-2.4.4.patch ++++++
--- bash/bash-3.2-2.4.4.patch 2010-02-15 18:15:17.000000000 +0100
+++ /mounts/work_src_done/STABLE/bash/bash-4.2-2.4.4.patch 2011-03-08 13:18:04.000000000 +0100
@@ -1,6 +1,6 @@
--- array.c
+++ array.c 2006-11-14 09:54:22.000000000 +0000
-@@ -877,7 +877,7 @@ char *s, *sep;
+@@ -922,7 +922,7 @@ char *s, *sep;
* To make a running version, compile -DTEST_ARRAY and link with:
* xmalloc.o syntax.o lib/malloc/libmalloc.a lib/sh/libsh.a
*/
@@ -9,6 +9,25 @@
int
signal_is_trapped(s)
+--- examples/loadables/tee.c
++++ examples/loadables/tee.c 2006-11-14 10:31:29.000000000 +0000
+@@ -35,6 +35,7 @@
+ #include "bashansi.h"
+
+ #include
++#include
+ #include
+
+ #include "builtins.h"
+@@ -56,7 +57,7 @@ static FLIST *tee_flist;
+
+ #define TEE_BUFSIZE 8192
+
+-extern int interrupt_immediately;
++extern volatile sig_atomic_t interrupt_immediately;
+
+ extern char *strerror ();
+
--- hashlib.c
+++ hashlib.c 2006-11-14 09:54:36.000000000 +0000
@@ -381,7 +381,7 @@ hash_pstats (table, name)
@@ -22,7 +41,7 @@
signal_is_trapped (s)
--- jobs.c
+++ jobs.c 2001-05-02 16:20:31.000000000 +0000
-@@ -1735,6 +1735,15 @@ make_child (command, async_p)
+@@ -1769,6 +1769,15 @@ make_child (command, async_p)
pid_t mypid;
mypid = getpid ();
@@ -58,8 +77,8 @@
When it is safe, put QUIT in the code, and the "interrupt" will take
--- sig.c
+++ sig.c 2006-11-14 09:53:51.000000000 +0000
-@@ -61,13 +61,13 @@ extern int comsub_ignore_return;
- extern int parse_and_execute_level, shell_initialized;
+@@ -66,13 +66,13 @@ extern int history_lines_this_session;
+ extern void initialize_siglist ();
/* Non-zero after SIGINT. */
-volatile int interrupt_state = 0;
@@ -75,7 +94,7 @@
/* The environment at the top-level R-E loop. We use this in
the case of error return. */
-@@ -79,10 +79,10 @@ sigset_t top_level_mask;
+@@ -84,10 +84,10 @@ sigset_t top_level_mask;
#endif /* JOB_CONTROL */
/* When non-zero, we throw_to_top_level (). */
@@ -109,22 +128,3 @@
/* Functions from sig.c. */
extern sighandler termsig_sighandler __P((int));
---- examples/loadables/tee.c
-+++ examples/loadables/tee.c 2006-11-14 10:31:29.000000000 +0000
-@@ -35,6 +35,7 @@
- #include "bashansi.h"
-
- #include
-+#include
- #include
-
- #include "builtins.h"
-@@ -56,7 +57,7 @@ static FLIST *tee_flist;
-
- #define TEE_BUFSIZE 8192
-
--extern int interrupt_immediately;
-+extern volatile sig_atomic_t interrupt_immediately;
-
- extern char *strerror ();
-
++++++ bash-4.2-history.dif ++++++
--- shell.c
+++ shell.c 2011-03-08 17:25:55.160426342 +0000
@@ -261,6 +261,11 @@ static const struct {
{ (char *)0x0, Int, (int *)0x0, (char **)0x0 }
};
+#if defined (HAVE_POSIX_SIGSETJMP)
+volatile procenv_t terminating_now;
+volatile sig_atomic_t jump_with_sig;
+#endif /* HAVE_POSIX_SIGSETJMP */
+
/* These are extern so execute_simple_command can set them, and then
longjmp back to main to execute a shell script, instead of calling
main () again and resulting in indefinite, possibly fatal, stack
@@ -379,6 +384,39 @@ main (argc, argv, env)
if (code)
exit (2);
+#if defined (HAVE_POSIX_SIGSETJMP)
+ /* Catch signals here */
+ if (sigsetjmp (terminating_now, 1))
+ {
+ int sig = jump_with_sig;
+
+ /* I don't believe this condition ever tests true. */
+ if (sig == SIGINT && signal_is_trapped (SIGINT))
+ run_interrupt_trap ();
+
+# if defined (HISTORY)
+ if (interactive_shell && sig != SIGABRT)
+ maybe_save_shell_history ();
+# endif /* HISTORY */
+
+# if defined (JOB_CONTROL)
+ if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
+ hangup_all_jobs ();
+ end_job_control ();
+# endif /* JOB_CONTROL */
+
+# if defined (PROCESS_SUBSTITUTION)
+ unlink_fifo_list ();
+# endif /* PROCESS_SUBSTITUTION */
+
+ run_exit_trap ();
+ set_signal_handler (sig, SIG_DFL);
+ kill (getpid (), sig);
+ _exit(0);
+ }
+ jump_with_sig = 0;
+#endif /* HAVE_POSIX_SIGSETJMP */
+
xtrace_init ();
#if defined (USING_BASH_MALLOC) && defined (DEBUG) && !defined (DISABLE_MALLOC_WRAPPERS)
--- sig.c
+++ sig.c 2011-03-08 17:26:31.627928783 +0000
@@ -503,7 +503,7 @@ termsig_sighandler (sig)
/* XXX - should this also trigger when interrupt_immediately is set? */
if (terminate_immediately)
{
-#if defined (HISTORY)
+#if defined (HISTORY) && ! defined (HAVE_POSIX_SIGSETJMP)
/* XXX - will inhibit history file being written */
history_lines_this_session = 0;
#endif
@@ -514,6 +514,11 @@ termsig_sighandler (sig)
SIGRETURN (0);
}
+#if defined (HAVE_POSIX_SIGSETJMP)
+extern volatile procenv_t terminating_now;
+extern volatile sig_atomic_t jump_with_sig;
+#endif /* HAVE_POSIX_SIGSETJMP */
+
void
termsig_handler (sig)
int sig;
@@ -528,32 +533,39 @@ termsig_handler (sig)
handling_termsig = 1;
terminating_signal = 0; /* keep macro from re-testing true. */
+#if ! defined (HAVE_POSIX_SIGSETJMP)
/* I don't believe this condition ever tests true. */
if (sig == SIGINT && signal_is_trapped (SIGINT))
run_interrupt_trap ();
-#if defined (HISTORY)
+# if defined (HISTORY)
if (interactive_shell && sig != SIGABRT)
maybe_save_shell_history ();
-#endif /* HISTORY */
+# endif /* HISTORY */
-#if defined (JOB_CONTROL)
+# if defined (JOB_CONTROL)
if (sig == SIGHUP && (interactive || (subshell_environment & (SUBSHELL_COMSUB|SUBSHELL_PROCSUB))))
hangup_all_jobs ();
end_job_control ();
-#endif /* JOB_CONTROL */
+# endif /* JOB_CONTROL */
-#if defined (PROCESS_SUBSTITUTION)
+# if defined (PROCESS_SUBSTITUTION)
unlink_fifo_list ();
-#endif /* PROCESS_SUBSTITUTION */
+# endif /* PROCESS_SUBSTITUTION */
+#endif /* ! HAVE_POSIX_SIGSETJMP */
/* Reset execution context */
loop_level = continuing = breaking = funcnest = 0;
executing_list = comsub_ignore_return = return_catch_flag = 0;
+#if defined (HAVE_POSIX_SIGSETJMP)
+ jump_with_sig = sig;
+ siglongjmp(terminating_now, 1);
+#else /* ! HAVE_POSIX_SIGSETJMP */
run_exit_trap ();
set_signal_handler (sig, SIG_DFL);
kill (getpid (), sig);
+#endif /* ! HAVE_POSIX_SIGSETJMP */
}
/* What we really do when SIGINT occurs. */
++++++ bash-4.1-patches.tar.bz2 -> bash-4.2-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-001 new/bash-4.2-patches/bash41-001
--- old/bash-4.1-patches/bash41-001 2010-01-18 17:22:44.000000000 +0100
+++ new/bash-4.2-patches/bash41-001 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-001
-
-Bug-Reported-by: Yann Rouillard
-Bug-Reference-ID: <4B44A410.4070107@pleiades.fr.eu.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00018.html
-
-Bug-Description:
-
-A prototype for vsnprintf was incorrect, and caused compilation failures
-on systems that did not have a suitable vsnprintf, but had a declaration in
-one of the system header files.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/printf.def 2009-11-20 15:31:23.000000000 -0500
---- builtins/printf.def 2010-01-07 08:50:06.000000000 -0500
-***************
-*** 173,177 ****
-
- #if !HAVE_VSNPRINTF
-! extern int vsnprintf __P((char *, size_t, const char *, ...)) __attribute__((__format__ (printf, 3, 4)));
- #endif
-
---- 173,177 ----
-
- #if !HAVE_VSNPRINTF
-! extern int vsnprintf __P((char *, size_t, const char *, va_list)) __attribute__((__format__ (printf, 3, 0)));
- #endif
-
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 0
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 1
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-002 new/bash-4.2-patches/bash41-002
--- old/bash-4.1-patches/bash41-002 2010-01-18 17:22:55.000000000 +0100
+++ new/bash-4.2-patches/bash41-002 1970-01-01 01:00:00.000000000 +0100
@@ -1,65 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-002
-
-Bug-Reported-by: guillaume.outters@free.fr
-Bug-Reference-ID: <20100105230441.70D171AA7F52@asterix.local>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00017.html
-
-Bug-Description:
-
-Bash-4.1/Readline-6.1 introduced a hook function that allows applications
-to rewrite or modify filenames read from the file system before comparing
-them with a word to be completed. The converted filename, if it matches,
-needs to be inserted into the line buffer, replacing the original contents.
-
-This fixes a completion bug on Mac OS X involving filenames containing
-UTF-8 characters.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/lib/readline/complete.c 2009-11-29 18:39:30.000000000 -0500
---- lib/readline/complete.c 2010-01-06 08:30:23.000000000 -0500
-***************
-*** 2139,2143 ****
- if (filename_len == 0)
- {
-! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
- continue;
-
---- 2139,2143 ----
- if (filename_len == 0)
- {
-! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
- continue;
-
-***************
-*** 2220,2224 ****
- }
-
-! strcpy (temp + dirlen, entry->d_name);
- }
- else
---- 2220,2224 ----
- }
-
-! strcpy (temp + dirlen, convfn);
- }
- else
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 1
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 2
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-003 new/bash-4.2-patches/bash41-003
--- old/bash-4.1-patches/bash41-003 2010-03-26 17:21:40.000000000 +0100
+++ new/bash-4.2-patches/bash41-003 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-003
-
-Bug-Reported-by: coyote@wariat.org.pl
-Bug-Reference-ID: <4b64a1f8.06e2660a.60af.4bfb@mx.google.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00135.html
-
-Bug-Description:
-
-If command completion is attempted on a word with a quoted globbing
-character (e.g., `*' or `?'), bash can reference a NULL pointer and
-dump core.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/bashline.c 2009-10-24 14:10:19.000000000 -0400
---- bashline.c 2010-01-30 21:53:49.000000000 -0500
-***************
-*** 1681,1685 ****
- characters in the common prefix are bad) will ever be returned on
- regular completion. */
-! if (glob_pattern_p (hint))
- {
- if (state == 0)
---- 1681,1685 ----
- characters in the common prefix are bad) will ever be returned on
- regular completion. */
-! if (globpat)
- {
- if (state == 0)
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 2
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 3
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-004 new/bash-4.2-patches/bash41-004
--- old/bash-4.1-patches/bash41-004 2010-03-26 17:21:52.000000000 +0100
+++ new/bash-4.2-patches/bash41-004 1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-004
-
-Bug-Reported-by: Crestez Dan Leonard
-Bug-Reference-ID: <1265592839.30682.21.camel@deskbox>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00034.html
-
-Bug-Description:
-
-When running in Posix mode and executing a shell function without local
-variables, bash will not propagate a variable in a special builtin's temporary
-environment to have global scope.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/variables.c 2009-11-03 14:13:58.000000000 -0500
---- variables.c 2010-02-08 17:36:18.000000000 -0500
-***************
-*** 3809,3812 ****
---- 3809,3817 ----
- if (tempvar_p (var) && (posixly_correct || (var->attributes & att_propagate)))
- {
-+ /* Make sure we have a hash table to store the variable in while it is
-+ being propagated down to the global variables table. Create one if
-+ we have to */
-+ if ((vc_isfuncenv (shell_variables) || vc_istempenv (shell_variables)) && shell_variables->table == 0)
-+ shell_variables->table = hash_create (0);
- /* XXX - should we set v->context here? */
- v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 3
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 4
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-005 new/bash-4.2-patches/bash41-005
--- old/bash-4.1-patches/bash41-005 2010-03-26 17:22:07.000000000 +0100
+++ new/bash-4.2-patches/bash41-005 1970-01-01 01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-005
-
-Bug-Reported-by: werner@suse.de
-Bug-Reference-ID: <201002251238.o1PCcYcg016893@boole.suse.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html
-
-Bug-Description:
-
-When the `read' builtin times out after the timeout specified with -t is
-exceeded, it does not reset the flags that tell signal handlers to process
-signals immediately instead of deferring their handling. This can result
-in unsafe functions being called from signal handlers, which can cause bash
-to hang or dump core.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/read.def 2009-10-08 11:35:46.000000000 -0400
---- builtins/read.def 2010-03-17 17:35:39.000000000 -0400
-***************
-*** 616,621 ****
- zsyncfd (fd);
-
-- interrupt_immediately--;
-- terminate_immediately--;
- discard_unwind_frame ("read_builtin");
-
---- 616,619 ----
-***************
-*** 624,627 ****
---- 622,628 ----
- assign_vars:
-
-+ interrupt_immediately--;
-+ terminate_immediately--;
-+
- #if defined (ARRAY_VARS)
- /* If -a was given, take the string read, break it into a list of words,
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 4
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 5
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-006 new/bash-4.2-patches/bash41-006
--- old/bash-4.1-patches/bash41-006 2010-05-14 20:23:55.000000000 +0200
+++ new/bash-4.2-patches/bash41-006 1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-006
-
-Bug-Reported-by: Mike Frysinger
-Bug-Reference-ID: <201003210155.56618.vapier@gentoo.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00063.html
-
-Bug-Description:
-
-Bash did not correctly print/reproduce here documents attached to commands
-inside compound commands such as for and while. This affected the
-execution of such commands inside a shell function when the function
-definition is saved and later restored using `.' or `eval'.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/print_cmd.c 2009-09-16 15:32:26.000000000 -0400
---- print_cmd.c 2010-03-22 21:15:30.000000000 -0400
-***************
-*** 114,117 ****
---- 114,123 ----
- #define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
-
-+ #define PRINT_DEFERRED_HEREDOCS(x) \
-+ do { \
-+ if (deferred_heredocs) \
-+ print_deferred_heredocs (x); \
-+ } while (0)
-+
- /* Non-zero means the stuff being printed is inside of a function def. */
- static int inside_function_def;
-***************
-*** 561,571 ****
- {
- print_for_command_head (for_command);
--
- cprintf (";");
- newline ("do\n");
- indentation += indentation_amount;
- make_command_string_internal (for_command->action);
- semicolon ();
- indentation -= indentation_amount;
- newline ("done");
- }
---- 566,578 ----
- {
- print_for_command_head (for_command);
- cprintf (";");
- newline ("do\n");
-+
- indentation += indentation_amount;
- make_command_string_internal (for_command->action);
-+ PRINT_DEFERRED_HEREDOCS ("");
- semicolon ();
- indentation -= indentation_amount;
-+
- newline ("done");
- }
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 5
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 6
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-007 new/bash-4.2-patches/bash41-007
--- old/bash-4.1-patches/bash41-007 2010-05-14 20:24:08.000000000 +0200
+++ new/bash-4.2-patches/bash41-007 1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-007
-
-Bug-Reported-by: Rob Robason
-Bug-Reference-ID: <1269513145.22336.9.camel@home.robason.homelinux.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00089.html
-
-Bug-Description:
-
-A typo caused bash to not honor a precision specification in a printf
-format.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/printf.def 2010-01-18 10:50:22.000000000 -0500
---- builtins/printf.def 2010-03-25 09:40:56.000000000 -0400
-***************
-*** 118,122 ****
- nw = vflag ? vbprintf (f, fieldwidth, func) : printf (f, fieldwidth, func); \
- else if (have_precision) \
-! nw = vflag ? vbprintf (f, precision, func) : printf (f, fieldwidth, func); \
- else \
- nw = vflag ? vbprintf (f, func) : printf (f, func); \
---- 118,122 ----
- nw = vflag ? vbprintf (f, fieldwidth, func) : printf (f, fieldwidth, func); \
- else if (have_precision) \
-! nw = vflag ? vbprintf (f, precision, func) : printf (f, precision, func); \
- else \
- nw = vflag ? vbprintf (f, func) : printf (f, func); \
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 6
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 7
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-008 new/bash-4.2-patches/bash41-008
--- old/bash-4.1-patches/bash41-008 2010-10-08 17:08:56.000000000 +0200
+++ new/bash-4.2-patches/bash41-008 1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-008
-
-Bug-Reported-by: Dennis van Dok
-Bug-Reference-ID: <4BBF2501.5050703@gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-04/msg00038.html
-
-Bug-Description:
-
-When declaring an associative array and implicitly assigning a value
-to element "0", bash does not correctly allocate memory, leading to
-a segmentation violation when that element or the array itself is
-unset.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/declare.def 2009-11-25 19:42:00.000000000 -0500
---- builtins/declare.def 2010-05-30 18:25:21.000000000 -0400
-***************
-*** 513,517 ****
- /* let bind_{array,assoc}_variable take care of this. */
- if (assoc_p (var))
-! bind_assoc_variable (var, name, "0", value, aflags);
- else
- bind_array_variable (name, 0, value, aflags);
---- 519,523 ----
- /* let bind_{array,assoc}_variable take care of this. */
- if (assoc_p (var))
-! bind_assoc_variable (var, name, savestring ("0"), value, aflags);
- else
- bind_array_variable (name, 0, value, aflags);
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 7
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 8
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-009 new/bash-4.2-patches/bash41-009
--- old/bash-4.1-patches/bash41-009 2010-10-08 17:09:12.000000000 +0200
+++ new/bash-4.2-patches/bash41-009 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-009
-
-Bug-Reported-by: Tomas Trnka
-Bug-Reference-ID: <201003242030.02166.tomastrnka@gmx.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00090.html
-
-Bug-Description:
-
-An arriving SIGCHLD will interrupt `slow' system calls such as write(2) to
-or read(2) from a terminal. This results in an error message and truncated
-input or output.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/sig.c Fri Aug 14 16:31:52 2009
---- sig.c Fri Mar 26 22:34:11 2010
-***************
-*** 655,660 ****
---- 655,663 ----
- act.sa_flags |= SA_INTERRUPT; /* XXX */
- else
- act.sa_flags |= SA_RESTART; /* XXX */
-+ #else
-+ if (sig == SIGCHLD)
-+ act.sa_flags |= SA_RESTART;
- #endif
- sigemptyset (&act.sa_mask);
- sigemptyset (&oact.sa_mask);
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 8
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 9
-
- #endif /* _PATCHLEVEL_H_ */
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash41-010 new/bash-4.2-patches/bash41-010
--- old/bash-4.1-patches/bash41-010 2011-02-25 16:27:44.000000000 +0100
+++ new/bash-4.2-patches/bash41-010 1970-01-01 01:00:00.000000000 +0100
@@ -1,68 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-010
-
-Bug-Reported-by: Stephane Jourdois
-Bug-Reference-ID:
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-05/msg00165.html
-
-Bug-Description:
-
-The expansion of the \W prompt string escape sequence incorrectly used
-strcpy to copy overlapping strings. Only memmove works in this case.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/parse.y 2009-12-30 12:51:42.000000000 -0500
---- parse.y 2011-02-24 16:40:48.000000000 -0500
-***************
-*** 5153,5157 ****
- t = strrchr (t_string, '/');
- if (t)
-! strcpy (t_string, t + 1);
- }
- }
---- 5153,5157 ----
- t = strrchr (t_string, '/');
- if (t)
-! memmove (t_string, t + 1, strlen (t));
- }
- }
-*** ../bash-4.1-patched/y.tab.c 2009-12-30 12:52:02.000000000 -0500
---- y.tab.c 2011-02-24 16:50:27.000000000 -0500
-***************
-*** 7482,7486 ****
- t = strrchr (t_string, '/');
- if (t)
-! strcpy (t_string, t + 1);
- }
- }
---- 7482,7486 ----
- t = strrchr (t_string, '/');
- if (t)
-! memmove (t_string, t + 1, strlen (t));
- }
- }
-***************
-*** 8244,8246 ****
- }
- #endif /* HANDLE_MULTIBYTE */
--
---- 8244,8245 ----
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 9
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 10
-
- #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-001 new/bash-4.2-patches/bash42-001
--- old/bash-4.1-patches/bash42-001 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-001 2011-02-28 16:02:00.000000000 +0100
@@ -0,0 +1,78 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-001
+
+Bug-Reported-by: Juergen Daubert
+Bug-Reference-ID: <20110214175132.GA19813@jue.netz>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00125.html
+
+Bug-Description:
+
+When running in Posix mode, bash does not correctly expand the right-hand
+side of a double-quoted word expansion containing single quotes.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
+--- subst.c 2011-02-19 00:00:00.000000000 -0500
+***************
+*** 1380,1387 ****
+
+ /* The handling of dolbrace_state needs to agree with the code in parse.y:
+! parse_matched_pair() */
+! dolbrace_state = 0;
+! if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+! dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
+
+ i = *sindex;
+--- 1380,1389 ----
+
+ /* The handling of dolbrace_state needs to agree with the code in parse.y:
+! parse_matched_pair(). The different initial value is to handle the
+! case where this function is called to parse the word in
+! ${param op word} (SX_WORD). */
+! dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
+! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
+! dolbrace_state = DOLBRACE_QUOTE;
+
+ i = *sindex;
+***************
+*** 7177,7181 ****
+ /* Extract the contents of the ${ ... } expansion
+ according to the Posix.2 rules. */
+! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
+ if (string[sindex] == RBRACE)
+ sindex++;
+--- 7181,7185 ----
+ /* Extract the contents of the ${ ... } expansion
+ according to the Posix.2 rules. */
+! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
+ if (string[sindex] == RBRACE)
+ sindex++;
+*** ../bash-4.2-patched/subst.h 2010-12-02 20:21:29.000000000 -0500
+--- subst.h 2011-02-16 21:12:09.000000000 -0500
+***************
+*** 57,60 ****
+--- 57,61 ----
+ #define SX_ARITHSUB 0x0080 /* extracting $(( ... )) (currently unused) */
+ #define SX_POSIXEXP 0x0100 /* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
++ #define SX_WORD 0x0200 /* extracting word in ${param op word} */
+
+ /* Remove backslashes which are quoting backquotes from STRING. Modifies
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 0
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-002 new/bash-4.2-patches/bash42-002
--- old/bash-4.1-patches/bash42-002 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-002 2011-02-28 16:02:12.000000000 +0100
@@ -0,0 +1,60 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-002
+
+Bug-Reported-by: Clark J. Wang
+Bug-Reference-ID:
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
+
+Bug-Description:
+
+The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
+entire line.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/readline/vi_mode.c 2010-11-20 19:51:39.000000000 -0500
+--- lib/readline/vi_mode.c 2011-02-17 20:24:25.000000000 -0500
+***************
+*** 1115,1119 ****
+ _rl_vi_last_motion = c;
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+! return (0);
+ }
+ #if defined (READLINE_CALLBACKS)
+--- 1115,1119 ----
+ _rl_vi_last_motion = c;
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+! return (vidomove_dispatch (m));
+ }
+ #if defined (READLINE_CALLBACKS)
+*** ../bash-4.2-patched/lib/readline/callback.c 2010-06-06 12:18:58.000000000 -0400
+--- lib/readline/callback.c 2011-02-17 20:43:28.000000000 -0500
+***************
+*** 149,152 ****
+--- 149,155 ----
+ /* Should handle everything, including cleanup, numeric arguments,
+ and turning off RL_STATE_VIMOTION */
++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
++ _rl_internal_char_cleanup ();
++
+ return;
+ }
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-003 new/bash-4.2-patches/bash42-003
--- old/bash-4.1-patches/bash42-003 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-003 2011-02-28 16:02:19.000000000 +0100
@@ -0,0 +1,318 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-003
+
+Bug-Reported-by: Clark J. Wang
+Bug-Reference-ID:
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00136.html
+
+Bug-Description:
+
+When using the pattern replacement and pattern removal word expansions, bash
+miscalculates the possible match length in the presence of an unescaped left
+bracket without a closing right bracket, resulting in a failure to match
+the pattern.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/glob/gmisc.c 2011-02-05 16:11:17.000000000 -0500
+--- lib/glob/gmisc.c 2011-02-18 23:53:42.000000000 -0500
+***************
+*** 78,83 ****
+ size_t wmax;
+ {
+! wchar_t wc, *wbrack;
+! int matlen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*wpat == 0)
+--- 78,83 ----
+ size_t wmax;
+ {
+! wchar_t wc;
+! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*wpat == 0)
+***************
+*** 119,123 ****
+ case L'[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! wbrack = wpat;
+ wc = *wpat++;
+ do
+--- 119,123 ----
+ case L'[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! bracklen = 1;
+ wc = *wpat++;
+ do
+***************
+*** 125,140 ****
+ if (wc == 0)
+ {
+! matlen += wpat - wbrack - 1; /* incremented below */
+! break;
+ }
+ else if (wc == L'\\')
+ {
+! wc = *wpat++;
+! if (*wpat == 0)
+! break;
+ }
+ else if (wc == L'[' && *wpat == L':') /* character class */
+ {
+ wpat++;
+ in_cclass = 1;
+ }
+--- 125,148 ----
+ if (wc == 0)
+ {
+! wpat--; /* back up to NUL */
+! matlen += bracklen;
+! goto bad_bracket;
+ }
+ else if (wc == L'\\')
+ {
+! /* *wpat == backslash-escaped character */
+! bracklen++;
+! /* If the backslash or backslash-escape ends the string,
+! bail. The ++wpat skips over the backslash escape */
+! if (*wpat == 0 || *++wpat == 0)
+! {
+! matlen += bracklen;
+! goto bad_bracket;
+! }
+ }
+ else if (wc == L'[' && *wpat == L':') /* character class */
+ {
+ wpat++;
++ bracklen++;
+ in_cclass = 1;
+ }
+***************
+*** 142,145 ****
+--- 150,154 ----
+ {
+ wpat++;
++ bracklen++;
+ in_cclass = 0;
+ }
+***************
+*** 147,152 ****
+ {
+ wpat++;
+ if (*wpat == L']') /* right bracket can appear as collating symbol */
+! wpat++;
+ in_collsym = 1;
+ }
+--- 156,165 ----
+ {
+ wpat++;
++ bracklen++;
+ if (*wpat == L']') /* right bracket can appear as collating symbol */
+! {
+! wpat++;
+! bracklen++;
+! }
+ in_collsym = 1;
+ }
+***************
+*** 154,157 ****
+--- 167,171 ----
+ {
+ wpat++;
++ bracklen++;
+ in_collsym = 0;
+ }
+***************
+*** 159,164 ****
+ {
+ wpat++;
+ if (*wpat == L']') /* right bracket can appear as equivalence class */
+! wpat++;
+ in_equiv = 1;
+ }
+--- 173,182 ----
+ {
+ wpat++;
++ bracklen++;
+ if (*wpat == L']') /* right bracket can appear as equivalence class */
+! {
+! wpat++;
+! bracklen++;
+! }
+ in_equiv = 1;
+ }
+***************
+*** 166,174 ****
+--- 184,196 ----
+ {
+ wpat++;
++ bracklen++;
+ in_equiv = 0;
+ }
++ else
++ bracklen++;
+ }
+ while ((wc = *wpat++) != L']');
+ matlen++; /* bracket expression can only match one char */
++ bad_bracket:
+ break;
+ }
+***************
+*** 214,219 ****
+ size_t max;
+ {
+! char c, *brack;
+! int matlen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*pat == 0)
+--- 236,241 ----
+ size_t max;
+ {
+! char c;
+! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*pat == 0)
+***************
+*** 255,259 ****
+ case '[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! brack = pat;
+ c = *pat++;
+ do
+--- 277,281 ----
+ case '[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! bracklen = 1;
+ c = *pat++;
+ do
+***************
+*** 261,276 ****
+ if (c == 0)
+ {
+! matlen += pat - brack - 1; /* incremented below */
+! break;
+ }
+ else if (c == '\\')
+ {
+! c = *pat++;
+! if (*pat == 0)
+! break;
+ }
+ else if (c == '[' && *pat == ':') /* character class */
+ {
+ pat++;
+ in_cclass = 1;
+ }
+--- 283,306 ----
+ if (c == 0)
+ {
+! pat--; /* back up to NUL */
+! matlen += bracklen;
+! goto bad_bracket;
+ }
+ else if (c == '\\')
+ {
+! /* *pat == backslash-escaped character */
+! bracklen++;
+! /* If the backslash or backslash-escape ends the string,
+! bail. The ++pat skips over the backslash escape */
+! if (*pat == 0 || *++pat == 0)
+! {
+! matlen += bracklen;
+! goto bad_bracket;
+! }
+ }
+ else if (c == '[' && *pat == ':') /* character class */
+ {
+ pat++;
++ bracklen++;
+ in_cclass = 1;
+ }
+***************
+*** 278,281 ****
+--- 308,312 ----
+ {
+ pat++;
++ bracklen++;
+ in_cclass = 0;
+ }
+***************
+*** 283,288 ****
+ {
+ pat++;
+ if (*pat == ']') /* right bracket can appear as collating symbol */
+! pat++;
+ in_collsym = 1;
+ }
+--- 314,323 ----
+ {
+ pat++;
++ bracklen++;
+ if (*pat == ']') /* right bracket can appear as collating symbol */
+! {
+! pat++;
+! bracklen++;
+! }
+ in_collsym = 1;
+ }
+***************
+*** 290,293 ****
+--- 325,329 ----
+ {
+ pat++;
++ bracklen++;
+ in_collsym = 0;
+ }
+***************
+*** 295,300 ****
+ {
+ pat++;
+ if (*pat == ']') /* right bracket can appear as equivalence class */
+! pat++;
+ in_equiv = 1;
+ }
+--- 331,340 ----
+ {
+ pat++;
++ bracklen++;
+ if (*pat == ']') /* right bracket can appear as equivalence class */
+! {
+! pat++;
+! bracklen++;
+! }
+ in_equiv = 1;
+ }
+***************
+*** 302,310 ****
+--- 342,354 ----
+ {
+ pat++;
++ bracklen++;
+ in_equiv = 0;
+ }
++ else
++ bracklen++;
+ }
+ while ((c = *pat++) != ']');
+ matlen++; /* bracket expression can only match one char */
++ bad_bracket:
+ break;
+ }
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-004 new/bash-4.2-patches/bash42-004
--- old/bash-4.1-patches/bash42-004 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-004 2011-02-28 16:02:31.000000000 +0100
@@ -0,0 +1,53 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-004
+
+Bug-Reported-by: Mike Frysinger
+Bug-Reference-ID: <201102182106.17834.vapier@gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
+
+Bug-Description:
+
+When used in contexts where word splitting and quote removal were not
+performed, such as pattern removal or pattern substitution, empty strings
+(either literal or resulting from quoted variables that were unset or
+null) were not matched correctly, resulting in failure.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
+--- subst.c 2011-02-18 22:30:13.000000000 -0500
+***************
+*** 3373,3379 ****
+ if (string == 0 || *string == '\0')
+ return (WORD_LIST *)NULL;
+
+! td.flags = 0;
+ td.word = string;
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
+ return (tresult);
+--- 3373,3379 ----
+ if (string == 0 || *string == '\0')
+ return (WORD_LIST *)NULL;
+
+! td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */
+ td.word = string;
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
+ return (tresult);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-005 new/bash-4.2-patches/bash42-005
--- old/bash-4.1-patches/bash42-005 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-005 2011-02-28 16:02:42.000000000 +0100
@@ -0,0 +1,131 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-005
+
+Bug-Reported-by: Dennis Williamson
+Bug-Reference-ID:
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
+
+Bug-Description:
+
+Systems that use tzset() to set the local timezone require the TZ variable
+to be in the environment. Bash must make sure the environment has been
+modified with any updated value for TZ before calling tzset(). This
+affects prompt string expansions and the `%T' printf conversion specification
+on systems that do not allow bash to supply a replacement for getenv(3).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/variables.h 2010-12-02 20:22:01.000000000 -0500
+--- variables.h 2011-02-19 19:57:12.000000000 -0500
+***************
+*** 314,317 ****
+--- 314,318 ----
+ extern void sort_variables __P((SHELL_VAR **));
+
++ extern int chkexport __P((char *));
+ extern void maybe_make_export_env __P((void));
+ extern void update_export_env_inplace __P((char *, int, char *));
+*** ../bash-4.2-patched/variables.c 2011-01-24 20:07:48.000000000 -0500
+--- variables.c 2011-02-19 20:04:50.000000000 -0500
+***************
+*** 3654,3657 ****
+--- 3654,3673 ----
+ }
+
++ int
++ chkexport (name)
++ char *name;
++ {
++ SHELL_VAR *v;
++
++ v = find_variable (name);
++ if (exported_p (v))
++ {
++ array_needs_making = 1;
++ maybe_make_export_env ();
++ return 1;
++ }
++ return 0;
++ }
++
+ void
+ maybe_make_export_env ()
+***************
+*** 4215,4219 ****
+ { "TEXTDOMAINDIR", sv_locale },
+
+! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+ { "TZ", sv_tz },
+ #endif
+--- 4231,4235 ----
+ { "TEXTDOMAINDIR", sv_locale },
+
+! #if defined (HAVE_TZSET)
+ { "TZ", sv_tz },
+ #endif
+***************
+*** 4559,4568 ****
+ #endif /* HISTORY */
+
+! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+ void
+ sv_tz (name)
+ char *name;
+ {
+! tzset ();
+ }
+ #endif
+--- 4575,4585 ----
+ #endif /* HISTORY */
+
+! #if defined (HAVE_TZSET)
+ void
+ sv_tz (name)
+ char *name;
+ {
+! if (chkexport (name))
+! tzset ();
+ }
+ #endif
+*** ../bash-4.2-patched/parse.y 2011-01-02 15:48:11.000000000 -0500
+--- parse.y 2011-02-19 20:05:00.000000000 -0500
+***************
+*** 5136,5139 ****
+--- 5136,5142 ----
+ /* Make the current time/date into a string. */
+ (void) time (&the_time);
++ #if defined (HAVE_TZSET)
++ sv_tz ("TZ"); /* XXX -- just make sure */
++ #endif
+ tm = localtime (&the_time);
+
+*** ../bash-4.2-patched/builtins/printf.def 2010-11-23 10:02:55.000000000 -0500
+--- builtins/printf.def 2011-02-19 20:05:04.000000000 -0500
+***************
+*** 466,469 ****
+--- 466,472 ----
+ else
+ secs = arg;
++ #if defined (HAVE_TZSET)
++ sv_tz ("TZ"); /* XXX -- just make sure */
++ #endif
+ tm = localtime (&secs);
+ n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-006 new/bash-4.2-patches/bash42-006
--- old/bash-4.1-patches/bash42-006 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-006 2011-03-02 02:01:07.000000000 +0100
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-006
+
+Bug-Reported-by: Allan McRae
+Bug-Reference-ID: <4D6D0D0B.50908@archlinux.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00001.html
+
+Bug-Description:
+
+A problem with bash42-005 caused it to dump core if TZ was unset.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/variables.c 2011-02-25 12:07:41.000000000 -0500
+--- variables.c 2011-03-01 10:13:04.000000000 -0500
+***************
+*** 3661,3665 ****
+
+ v = find_variable (name);
+! if (exported_p (v))
+ {
+ array_needs_making = 1;
+--- 3661,3665 ----
+
+ v = find_variable (name);
+! if (v && exported_p (v))
+ {
+ array_needs_making = 1;
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bash-4.1-patches/bash42-007 new/bash-4.2-patches/bash42-007
--- old/bash-4.1-patches/bash42-007 1970-01-01 01:00:00.000000000 +0100
+++ new/bash-4.2-patches/bash42-007 2011-03-07 15:25:16.000000000 +0100
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-007
+
+Bug-Reported-by: Matthias Klose
+Bug-Reference-ID: <4D6FD2AC.1010500@debian.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00015.html
+
+Bug-Description:
+
+When used in contexts where word splitting and quote removal were not
+performed, such as case statement word expansion, empty strings
+(either literal or resulting from quoted variables that were unset or
+null) were not expanded correctly, resulting in failure.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-02-25 12:03:58.000000000 -0500
+--- subst.c 2011-03-03 14:08:23.000000000 -0500
+***************
+*** 4609,4614 ****
+--- 4611,4617 ----
+ if (ifs_firstc == 0)
+ #endif
+ word->flags |= W_NOSPLIT;
++ word->flags |= W_NOSPLIT2;
+ result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
+ expand_no_split_dollar_star = 0;
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
++++++ bash-4.1-sigrestart.patch -> bash-4.2-sigrestart.patch ++++++
--- bash/bash-4.1-sigrestart.patch 2010-10-14 14:41:18.000000000 +0200
+++ /mounts/work_src_done/STABLE/bash/bash-4.2-sigrestart.patch 2011-03-08 13:18:05.000000000 +0100
@@ -1,6 +1,6 @@
--- jobs.c
+++ jobs.c 2008-01-08 18:10:16.000000000 +0000
-@@ -2426,7 +2426,11 @@ wait_for (pid)
+@@ -2454,7 +2454,11 @@ wait_for (pid)
act.sa_handler = SIG_DFL;
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
@@ -13,12 +13,12 @@
# endif
queue_sigchld = 1;
--- sig.c
-+++ sig.c 2010-10-14 12:28:48.004425767 +0000
-@@ -658,6 +658,16 @@ set_signal_handler (sig, handler)
- #else
++++ sig.c 2011-01-14 13:10:48.591925968 +0000
+@@ -668,6 +668,16 @@ set_signal_handler (sig, handler)
+ if we take the time to reap children */
if (sig == SIGCHLD)
- act.sa_flags |= SA_RESTART;
-+# if !defined(MUST_REINSTALL_SIGHANDLERS)
+ act.sa_flags |= SA_RESTART; /* XXX */
++#if !defined(MUST_REINSTALL_SIGHANDLERS)
+ if (sig != SIGALRM)
+ act.sa_flags |= SA_RESTART; /* XXX */
+ if (handler == (trap_handler))
@@ -27,7 +27,7 @@
+ act.sa_flags |= SA_NODEFER; /* XXX */
+ if (sig == SIGTSTP || sig == SIGTTOU || sig == SIGTTIN || sig == SIGCONT)
+ act.sa_flags |= SA_NODEFER; /* XXX */
-+# endif
- #endif
++#endif
+
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
++++++ bash-4.1-array.dif -> bash-4.2.dif ++++++
--- bash/bash-4.1-array.dif 2010-10-14 14:41:18.000000000 +0200
+++ /mounts/work_src_done/STABLE/bash/bash-4.2.dif 2011-03-08 13:18:05.000000000 +0100
@@ -1,24 +1,233 @@
-Roman Rakus writes:
-> Repeated in the bash-4.0.38 and bash-4.1.7 by the script;
-> #!/bin/bash
->
-> typeset -Ai s
-> y='*'
-> z='['
-> s[$y]=1
-> s[$z]=2
-> (( s[$z] = s[$z] + ${s[$y]} ))
-> (( s[$y] = s[$y] + ${s[$z]} ))
-> [[ ${s[$y]} = 4 ]] && echo "ok"
-
---- variables.c
-+++ variables.c 2010-07-29 15:03:48.671425922 +0000
-@@ -2398,7 +2398,7 @@ bind_int_variable (lhs, rhs)
+--- config-top.h
++++ config-top.h 2007-12-04 14:44:39.314025629 +0000
+@@ -54,14 +54,14 @@
+ /* The default value of the PATH variable. */
+ #ifndef DEFAULT_PATH_VALUE
+ #define DEFAULT_PATH_VALUE \
+- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
++ "/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:."
#endif
- v = bind_variable (lhs, rhs, 0);
-- if (isint)
-+ if (isint && v)
- VSETATTR (v, att_integer);
+ /* The value for PATH when invoking `command -p'. This is only used when
+ the Posix.2 confstr () function, or CS_PATH define are not present. */
+ #ifndef STANDARD_UTILS_PATH
+ #define STANDARD_UTILS_PATH \
+- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
++ "/bin:/usr/bin:/sbin:/usr/sbin"
+ #endif
+
+ /* Default primary and secondary prompt strings. */
+@@ -75,20 +75,20 @@
+ #define KSH_COMPATIBLE_SELECT
+
+ /* System-wide .bashrc file for interactive shells. */
+-/* #define SYS_BASHRC "/etc/bash.bashrc" */
++#define SYS_BASHRC "/etc/bash.bashrc"
+
+ /* System-wide .bash_logout for login shells. */
+-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */
++#define SYS_BASH_LOGOUT "/etc/bash.bash_logout"
+
+ /* Define this to make non-interactive shells begun with argv[0][0] == '-'
+ run the startup files when not in posix mode. */
+-/* #define NON_INTERACTIVE_LOGIN_SHELLS */
++#define NON_INTERACTIVE_LOGIN_SHELLS
+
+ /* Define this if you want bash to try to check whether it's being run by
+ sshd and source the .bashrc if so (like the rshd behavior). This checks
+ for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment,
+ which can be fooled under certain not-uncommon circumstances. */
+-/* #define SSH_SOURCE_BASHRC */
++#define SSH_SOURCE_BASHRC
+
+ /* Define if you want the case-capitalizing operators (~[~]) and the
+ `capcase' variable attribute (declare -c). */
+--- general.h
++++ general.h 2006-03-27 12:15:25.000000000 +0000
+@@ -21,10 +21,13 @@
+ #if !defined (_GENERAL_H_)
+ #define _GENERAL_H_
+
++#include
++#include
+ #include "stdc.h"
+
+ #include "bashtypes.h"
+ #include "chartypes.h"
++#include "bashline.h"
+
+ #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE)
+ # if defined (HAVE_SYS_TIME_H)
+--- jobs.c
++++ jobs.c 2006-03-27 12:15:25.000000000 +0000
+@@ -199,10 +199,10 @@ int previous_job = NO_JOB;
+ #endif
+
+ /* Last child made by the shell. */
+-pid_t last_made_pid = NO_PID;
++volatile pid_t last_made_pid = NO_PID;
+
+ /* Pid of the last asynchronous child. */
+-pid_t last_asynchronous_pid = NO_PID;
++volatile pid_t last_asynchronous_pid = NO_PID;
+
+ /* The pipeline currently being built. */
+ PROCESS *the_pipeline = (PROCESS *)NULL;
+@@ -215,7 +215,7 @@ int already_making_children = 0;
+
+ /* If this is non-zero, $LINES and $COLUMNS are reset after every process
+ exits from get_tty_state(). */
+-int check_window_size;
++int check_window_size = 1;
+
+ /* Functions local to this file. */
+
+--- jobs.h
++++ jobs.h 2006-03-27 12:15:25.000000000 +0000
+@@ -165,7 +165,7 @@ extern pid_t fork (), getpid (), getpgrp
+ extern struct jobstats js;
+
+ extern pid_t original_pgrp, shell_pgrp, pipeline_pgrp;
+-extern pid_t last_made_pid, last_asynchronous_pid;
++extern volatile pid_t last_made_pid, last_asynchronous_pid;
+ extern int asynchronous_notification;
+
+ extern JOB **jobs;
+--- parse.y
++++ parse.y 2006-03-27 12:15:25.000000000 +0000
+@@ -1283,7 +1283,7 @@ input_file_descriptor ()
+
+ #if defined (READLINE)
+ char *current_readline_prompt = (char *)NULL;
+-char *current_readline_line = (char *)NULL;
++unsigned char *current_readline_line = (unsigned char *)NULL;
+ int current_readline_line_index = 0;
+
+ static int
+--- shell.c
++++ shell.c 2006-03-27 12:15:25.000000000 +0000
+@@ -479,7 +479,7 @@ main (argc, argv, env)
+ if (dump_translatable_strings)
+ read_but_dont_execute = 1;
+
+- if (running_setuid && privileged_mode == 0)
++ if (running_setuid && privileged_mode == 0 /* && act_like_sh == 0 */)
+ disable_priv_mode ();
+
+ /* Need to get the argument to a -c option processed in the
+--- subst.c
++++ subst.c 2006-03-27 12:15:25.000000000 +0000
+@@ -2962,6 +2962,7 @@ call_expand_word_internal (w, q, i, c, e
+ last_command_exit_value = EXECUTION_FAILURE;
+ exp_jump_to_top_level ((result == &expand_word_error) ? DISCARD : FORCE_EOF);
+ /* NOTREACHED */
++ return NULL; /* make stupid compiler happy */
+ }
+ else
+ return (result);
+--- builtins/shopt.def
++++ builtins/shopt.def 2006-03-27 12:15:25.000000000 +0000
+@@ -279,9 +279,9 @@ reset_shopt_options ()
+ allow_null_glob_expansion = glob_dot_filenames = 0;
+ cdable_vars = mail_warning = 0;
+ no_exit_on_failed_exec = print_shift_error = 0;
+- check_hashed_filenames = cdspelling = expand_aliases = check_window_size = 0;
++ check_hashed_filenames = cdspelling = expand_aliases = 0;
+
+- source_uses_path = promptvars = 1;
++ check_window_size = source_uses_path = promptvars = 1;
+
+ #if defined (EXTENDED_GLOB)
+ extended_glob = 0;
+--- doc/Makefile.in
++++ doc/Makefile.in 2006-03-27 12:15:25.000000000 +0000
+@@ -142,7 +142,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $
+ ${RM} $@
+ -${DVIPS} $<
+
+-all: ps info dvi text html
++all: info html
+ nodvi: ps info text html
+ everything: all pdf
+
+--- doc/bash.1
++++ doc/bash.1 2006-03-27 12:15:25.000000000 +0000
+@@ -4620,8 +4620,8 @@ file (the \fIinputrc\fP file).
+ The name of this file is taken from the value of the
+ .SM
+ .B INPUTRC
+-variable. If that variable is unset, the default is
+-.IR ~/.inputrc .
++environment variable. If that variable is unset, readline will read both
++.IR /etc/inputrc " and " ~/.inputrc .
+ When a program which uses the readline library starts up, the
+ initialization file is read, and the key bindings and variables
+ are set.
+@@ -9340,6 +9340,9 @@ The individual login shell cleanup file,
+ .TP
+ .FN ~/.inputrc
+ Individual \fIreadline\fP initialization file
++.TP
++.FN /etc/inputrc
++System \fBreadline\fP initialization file
+ .PD
+ .SH AUTHORS
+ Brian Fox, Free Software Foundation
+--- support/printenv.c
++++ support/printenv.c 2007-12-06 15:33:46.899561365 +0000
+@@ -27,6 +27,7 @@
+ #if defined (HAVE_CONFIG_H)
+ # include
+ #endif
++#include
+
+ #include "bashansi.h"
+
+--- support/rlvers.sh
++++ support/rlvers.sh 2006-03-27 12:15:25.000000000 +0000
+@@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers
+
+ # defaults
+ CC=cc
+-RL_LIBDIR=/usr/local/lib
+-RL_INCDIR=/usr/local/include
++RL_LIBDIR=/lib
++RL_INCDIR=/usr/include
+
+-TERMCAP_LIB="-ltermcap"
++TERMCAP_LIB="-lncurses"
+
+ # cannot rely on the presence of getopts
+ while [ $# -gt 0 ]; do
+--- support/shobj-conf
++++ support/shobj-conf 2006-09-22 14:11:58.000000000 +0000
+@@ -112,10 +112,11 @@ sunos5*|solaris2*)
+ linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
+ SHOBJ_CFLAGS=-fPIC
+ SHOBJ_LD='${CC}'
+- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
++ SHOBJ_LDFLAGS='-shared'
+
+- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
++ SHLIB_XLDFLAGS='-Wl,-rpath-link,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
+ SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
++ SHLIB_LIBS=-lncurses
+ ;;
- return (v);
+ freebsd2*)
+--- tests/run-intl
++++ tests/run-intl 2009-08-26 11:13:13.000000000 +0000
+@@ -5,4 +5,4 @@ echo "warning: some of these tests will
+ echo "warning: locales installed on your system." >&2
+ echo "warning: please ignore any differences consisting only of white space" >&2
+ ${THIS_SH} ./intl.tests > /tmp/xx
+-diff $AFLAG /tmp/xx intl.right && rm -f /tmp/xx
++diff -w $AFLAG /tmp/xx intl.right && rm -f /tmp/xx
+--- tests/run-read
++++ tests/run-read 2009-08-26 11:13:13.000000000 +0000
+@@ -1,4 +1,4 @@
+ echo "warning: please do not consider output differing only in the amount of" >&2
+ echo "warning: white space to be an error." >&2
+ ${THIS_SH} ./read.tests > /tmp/xx 2>&1
+-diff /tmp/xx read.right && rm -f /tmp/xx
++diff -w /tmp/xx read.right && rm -f /tmp/xx
++++++ bash-4.1-patches.tar.bz2 -> bash-4.2.tar.bz2 ++++++
++++ 597967 lines of diff (skipped)
++++++ readline-6.1-destdir.patch -> readline-6.2-destdir.patch ++++++
--- bash/readline-6.1-destdir.patch 2010-02-15 18:15:11.000000000 +0100
+++ /mounts/work_src_done/STABLE/bash/readline-6.2-destdir.patch 2011-03-08 13:18:09.000000000 +0100
@@ -1,5 +1,5 @@
--- shlib/Makefile.in
-+++ shlib/Makefile.in 2010-02-15 16:02:32.644391084 +0000
++++ shlib/Makefile.in 2010-02-15 16:02:33.000000000 +0000
@@ -59,6 +59,7 @@ bindir = @bindir@
libdir = @libdir@
datadir = @datadir@
@@ -8,8 +8,8 @@
# Support an alternate destination root directory for package building
DESTDIR =
-@@ -183,13 +184,13 @@ installdirs: $(topdir)/support/mkdirs
- -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(libdir)
+@@ -184,13 +185,13 @@ installdirs: $(topdir)/support/mkdirs
+ -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(bindir)
install: installdirs $(SHLIB_STATUS)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -V $(host_vendor) -d $(DESTDIR)$(libdir) -b $(DESTDIR)$(bindir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
@@ -27,7 +27,7 @@
clean mostlyclean: force
--- support/shlib-install
-+++ support/shlib-install 2010-02-15 15:59:38.005297957 +0000
++++ support/shlib-install 2010-02-15 15:59:38.000000000 +0000
@@ -3,7 +3,7 @@
# shlib-install - install a shared library and do any necessary host-specific
# post-installation configuration (like ldconfig)
++++++ readline-6.0-metamode.patch -> readline-6.2-metamode.patch ++++++
--- bash/readline-6.0-metamode.patch 2009-09-30 13:42:53.000000000 +0200
+++ /mounts/work_src_done/STABLE/bash/readline-6.2-metamode.patch 2011-03-08 13:18:10.000000000 +0100
@@ -1,11 +1,11 @@
# See bug bnc#541379
--- lib/readline/bind.c
-+++ lib/readline/bind.c 2009-09-30 11:25:38.087930034 +0200
-@@ -1473,6 +1473,7 @@ static const struct {
++++ lib/readline/bind.c 2011-03-04 15:00:17.332426313 +0000
+@@ -1485,6 +1485,7 @@ static const struct {
#if defined (VISIBLE_STATS)
{ "visible-stats", &rl_visible_stats, 0 },
#endif /* VISIBLE_STATS */
+ { "meta-mode", &_rl_enable_meta, 0 },
- { (char *)NULL, (int *)NULL }
+ { (char *)NULL, (int *)NULL, 0 }
};
++++++ readline-6.1-patches.tar.bz2 -> readline-6.2-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.1-patches/readline61-001 new/readline-6.2-patches/readline61-001
--- old/readline-6.1-patches/readline61-001 2010-01-18 17:23:24.000000000 +0100
+++ new/readline-6.2-patches/readline61-001 1970-01-01 01:00:00.000000000 +0100
@@ -1,61 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.1
-Patch-ID: readline61-001
-
-Bug-Reported-by: guillaume.outters@free.fr
-Bug-Reference-ID: <20100105230441.70D171AA7F52@asterix.local>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00017.html
-
-Bug-Description:
-
-Bash-4.1/Readline-6.1 introduced a hook function that allows applications
-to rewrite or modify filenames read from the file system before comparing
-them with a word to be completed. The converted filename, if it matches,
-needs to be inserted into the line buffer, replacing the original contents.
-
-This fixes a completion bug on Mac OS X involving filenames containing
-UTF-8 characters.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.1-patched/complete.c 2009-11-29 18:39:30.000000000 -0500
---- complete.c 2010-01-06 08:30:23.000000000 -0500
-***************
-*** 2139,2143 ****
- if (filename_len == 0)
- {
-! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
- continue;
-
---- 2139,2143 ----
- if (filename_len == 0)
- {
-! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
- continue;
-
-***************
-*** 2220,2224 ****
- }
-
-! strcpy (temp + dirlen, entry->d_name);
- }
- else
---- 2220,2224 ----
- }
-
-! strcpy (temp + dirlen, convfn);
- }
- else
-*** ../readline-6.1-patched/patchlevel 2008-11-18 11:01:14.000000000 -0500
---- patchlevel 2010-01-14 10:15:52.000000000 -0500
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 0
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.1-patches/readline61-002 new/readline-6.2-patches/readline61-002
--- old/readline-6.1-patches/readline61-002 2010-02-22 14:12:07.000000000 +0100
+++ new/readline-6.2-patches/readline61-002 1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.1
-Patch-ID: readline61-002
-
-Bug-Reported-by: Chet Ramey
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-The readline version information was not updated for the release of version 6.1.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.1-patched/readline.h 2009-08-26 23:05:55.000000000 -0400
---- readline.h 2010-01-26 10:42:42.000000000 -0500
-***************
-*** 40,46 ****
-
- /* Hex-encoded Readline version number. */
-! #define RL_READLINE_VERSION 0x0600 /* Readline 6.0 */
- #define RL_VERSION_MAJOR 6
-! #define RL_VERSION_MINOR 0
-
- /* Readline data structures. */
---- 40,46 ----
-
- /* Hex-encoded Readline version number. */
-! #define RL_READLINE_VERSION 0x0601 /* Readline 6.1 */
- #define RL_VERSION_MAJOR 6
-! #define RL_VERSION_MINOR 1
-
- /* Readline data structures. */
-*** ../readline-6.1-patched/patchlevel 2008-11-18 11:01:14.000000000 -0500
---- patchlevel 2010-01-14 10:15:52.000000000 -0500
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 1
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 2
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/readline-6.1-patches/readline62-001 new/readline-6.2-patches/readline62-001
--- old/readline-6.1-patches/readline62-001 1970-01-01 01:00:00.000000000 +0100
+++ new/readline-6.2-patches/readline62-001 2011-02-28 16:03:00.000000000 +0100
@@ -0,0 +1,46 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.2
+Patch-ID: readline62-001
+
+Bug-Reported-by: Clark J. Wang
+Bug-Reference-ID:
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
+
+Bug-Description:
+
+The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
+entire line.
+
+[This patch intentionally does not modify patchlevel]
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.2-patched/vi_mode.c 2010-11-20 19:51:39.000000000 -0500
+--- vi_mode.c 2011-02-17 20:24:25.000000000 -0500
+***************
+*** 1115,1119 ****
+ _rl_vi_last_motion = c;
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+! return (0);
+ }
+ #if defined (READLINE_CALLBACKS)
+--- 1115,1119 ----
+ _rl_vi_last_motion = c;
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+! return (vidomove_dispatch (m));
+ }
+ #if defined (READLINE_CALLBACKS)
+*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400
+--- callback.c 2011-02-17 20:43:28.000000000 -0500
+***************
+*** 149,152 ****
+--- 149,155 ----
+ /* Should handle everything, including cleanup, numeric arguments,
+ and turning off RL_STATE_VIMOTION */
++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
++ _rl_internal_char_cleanup ();
++
+ return;
+ }
++++++ readline-6.1.dif -> readline-6.2.dif ++++++
--- bash/readline-6.1.dif 2010-02-15 18:15:15.000000000 +0100
+++ /mounts/work_src_done/STABLE/bash/readline-6.2.dif 2011-03-08 13:18:11.000000000 +0100
@@ -1,11 +1,3 @@
---- .pkgextract
-+++ .pkgextract 2005-12-09 17:09:26.000000000 +0100
-@@ -0,0 +1,5 @@
-+tar Oxfj ../readline-6.0-patches.tar.bz2 | patch -p0 -s
-+patch -p2 -s --suffix=".zerotty" < ../readline-4.3-input.dif
-+patch -p2 -s --suffix=".wrap" < ../readline-6.0-wrap.patch
-+patch -p2 -s --suffix=".conf" < ../readline-5.2-conf.patch
-+patch -p0 -s --suffix=".destdir" < ../readline-6.0-destdir.patch
--- Makefile.in
+++ Makefile.in 2009-02-27 17:25:01.076001005 +0100
@@ -222,10 +222,8 @@ uninstall-headers:
++++++ readline-6.1-patches.tar.bz2 -> readline-6.2.tar.bz2 ++++++
++++ 145532 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org