# HG changeset patch # User Antoine Bodin # Date 1294578672 -3600 # Node ID f534b662cde53bd0619411bbded0bc11c796d11b # Parent d2d594c8804db018d611c323338af661eb0030e2 bash: update patches diff -r d2d594c8804d -r f534b662cde5 bash/stuff/bash-4.1-fixes-3.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bash/stuff/bash-4.1-fixes-3.patch Sun Jan 09 14:11:12 2011 +0100 @@ -0,0 +1,166 @@ +Submitted By: Matt Burgess +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) diff -r d2d594c8804d -r f534b662cde5 bash/stuff/bash32-025.patch --- a/bash/stuff/bash32-025.patch Sun Jan 09 14:07:48 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 3.2 -Patch-ID: bash32-025 - -Bug-Reported-by: Tom Bjorkholm -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html - -Bug-Description: - -An off-by-one error in readline's input buffering caused readline to drop -each 511th character of buffered input (e.g., when pasting a large amount -of data into a terminal window). - -Patch: - -*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 ---- lib/readline/input.c Tue Jul 17 09:24:21 2007 -*************** -*** 134,139 **** - - *key = ibuffer[pop_index++]; -! - if (pop_index >= ibuffer_len) - pop_index = 0; - ---- 134,142 ---- - - *key = ibuffer[pop_index++]; -! #if 0 - if (pop_index >= ibuffer_len) -+ #else -+ if (pop_index > ibuffer_len) -+ #endif - pop_index = 0; - -*************** -*** 251,255 **** - { - k = (*rl_getc_function) (rl_instream); -! rl_stuff_char (k); - if (k == NEWLINE || k == RETURN) - break; ---- 254,259 ---- - { - k = (*rl_getc_function) (rl_instream); -! if (rl_stuff_char (k) == 0) -! break; /* some problem; no more room */ - if (k == NEWLINE || k == RETURN) - break; -*************** -*** 374,378 **** ---- 378,386 ---- - } - ibuffer[push_index++] = key; -+ #if 0 - if (push_index >= ibuffer_len) -+ #else -+ if (push_index > ibuffer_len) -+ #endif - push_index = 0; - -*** ../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 24 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */