Author: matthew
Date: 2010-10-18 15:41:34 -0600 (Mon, 18 Oct 2010)
New Revision: 2233
Added:
trunk/bash/bash-4.1-fixes-3.patch
Log:
Add latest upstream patches for Bash-4.1.
Added: trunk/bash/bash-4.1-fixes-3.patch
===================================================================
--- trunk/bash/bash-4.1-fixes-3.patch (rev 0)
+++ trunk/bash/bash-4.1-fixes-3.patch 2010-10-18 21:41:34 UTC (rev 2233)
@@ -0,0 +1,166 @@
+Submitted By: Matt Burgess <matthew_at_linuxfromscratch_dot_org>
+Date: 2010-10-11
+Initial Package Version: 4.1
+Upstream Status: Already in upstream patch repo
+Origin: Upstream
+Description: This patch contains upstream patch numbers 1 thru 9.
+
+diff -Naur bash-4.1.orig//bashline.c bash-4.1//bashline.c
+--- bash-4.1.orig//bashline.c 2009-10-24 19:10:19.000000000 +0100
++++ bash-4.1//bashline.c 2010-10-11 22:39:38.213029316 +0100
+@@ -1680,7 +1680,7 @@
+ a single match (multiple matches that end up reducing the number of
+ characters in the common prefix are bad) will ever be returned on
+ regular completion. */
+- if (glob_pattern_p (hint))
++ if (globpat)
+ {
+ if (state == 0)
+ {
+diff -Naur bash-4.1.orig//builtins/declare.def bash-4.1//builtins/declare.def
+--- bash-4.1.orig//builtins/declare.def 2009-11-26 00:42:00.000000000
+0000
++++ bash-4.1//builtins/declare.def 2010-10-11 22:39:38.397029565 +0100
+@@ -512,7 +512,7 @@
+ {
+ /* let bind_{array,assoc}_variable take care of this. */
+ if (assoc_p (var))
+- bind_assoc_variable (var, name, "0", value, aflags);
++ bind_assoc_variable (var, name, savestring ("0"), value,
aflags);
+ else
+ bind_array_variable (name, 0, value, aflags);
+ }
+diff -Naur bash-4.1.orig//builtins/printf.def bash-4.1//builtins/printf.def
+--- bash-4.1.orig//builtins/printf.def 2009-11-20 20:31:23.000000000 +0000
++++ bash-4.1//builtins/printf.def 2010-10-11 22:39:38.381029548 +0100
+@@ -117,7 +117,7 @@
+ else if (have_fieldwidth) \
+ nw = vflag ? vbprintf (f, fieldwidth, func) : printf (f, fieldwidth,
func); \
+ else if (have_precision) \
+- nw = vflag ? vbprintf (f, precision, func) : printf (f, fieldwidth,
func); \
++ nw = vflag ? vbprintf (f, precision, func) : printf (f, precision,
func); \
+ else \
+ nw = vflag ? vbprintf (f, func) : printf (f, func); \
+ tw += nw; \
+@@ -172,7 +172,7 @@
+ #endif
+
+ #if !HAVE_VSNPRINTF
+-extern int vsnprintf __P((char *, size_t, const char *, ...))
__attribute__((__format__ (printf, 3, 4)));
++extern int vsnprintf __P((char *, size_t, const char *, va_list))
__attribute__((__format__ (printf, 3, 0)));
+ #endif
+
+ static void printf_erange __P((char *));
+diff -Naur bash-4.1.orig//builtins/read.def bash-4.1//builtins/read.def
+--- bash-4.1.orig//builtins/read.def 2009-10-08 16:35:46.000000000 +0100
++++ bash-4.1//builtins/read.def 2010-10-11 22:39:38.321029469 +0100
+@@ -615,14 +615,15 @@
+ if (unbuffered_read == 0)
+ zsyncfd (fd);
+
+- interrupt_immediately--;
+- terminate_immediately--;
+ discard_unwind_frame ("read_builtin");
+
+ retval = eof ? EXECUTION_FAILURE : EXECUTION_SUCCESS;
+
+ 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,
+ an assign them to `arrayname' in turn. */
+diff -Naur bash-4.1.orig//lib/readline/complete.c
bash-4.1//lib/readline/complete.c
+--- bash-4.1.orig//lib/readline/complete.c 2009-11-29 23:39:30.000000000
+0000
++++ bash-4.1//lib/readline/complete.c 2010-10-11 22:39:38.189029310 +0100
+@@ -2138,7 +2138,7 @@
+ All other entries except "." and ".." match. */
+ if (filename_len == 0)
+ {
+- if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
++ if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
+ continue;
+
+ if (convfn[0] != '.' ||
+@@ -2219,7 +2219,7 @@
+ temp[dirlen++] = '/';
+ }
+
+- strcpy (temp + dirlen, entry->d_name);
++ strcpy (temp + dirlen, convfn);
+ }
+ else
+ temp = savestring (convfn);
+diff -Naur bash-4.1.orig//patchlevel.h bash-4.1//patchlevel.h
+--- bash-4.1.orig//patchlevel.h 2009-10-01 21:39:22.000000000 +0100
++++ bash-4.1//patchlevel.h 2010-10-11 22:39:38.433029614 +0100
+@@ -25,6 +25,6 @@
+ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
+ looks for to find the patch level (for the sccs version string). */
+
+-#define PATCHLEVEL 0
++#define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
+diff -Naur bash-4.1.orig//print_cmd.c bash-4.1//print_cmd.c
+--- bash-4.1.orig//print_cmd.c 2009-09-16 20:32:26.000000000 +0100
++++ bash-4.1//print_cmd.c 2010-10-11 22:39:38.357029519 +0100
+@@ -113,6 +113,12 @@
+
+ #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;
+ static int skip_this_indent;
+@@ -560,13 +566,15 @@
+ FOR_COM *for_command;
+ {
+ 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");
+ }
+
+diff -Naur bash-4.1.orig//sig.c bash-4.1//sig.c
+--- bash-4.1.orig//sig.c 2009-08-14 21:31:52.000000000 +0100
++++ bash-4.1//sig.c 2010-10-11 22:39:38.421029599 +0100
+@@ -655,6 +655,9 @@
+ 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);
+diff -Naur bash-4.1.orig//variables.c bash-4.1//variables.c
+--- bash-4.1.orig//variables.c 2009-11-03 19:13:58.000000000 +0000
++++ bash-4.1//variables.c 2010-10-11 22:39:38.281029411 +0100
+@@ -3808,6 +3808,11 @@
+
+ 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);
+ if (shell_variables == global_variables)
--
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page