r2198 - trunk/bash

matthew at linuxfromscratch.org matthew at linuxfromscratch.org
Mon May 17 16:12:40 PDT 2010


Author: matthew
Date: 2010-05-17 17:12:40 -0600 (Mon, 17 May 2010)
New Revision: 2198

Added:
   trunk/bash/bash-4.1-fixes-2.patch
Log:
Add latest upstream patches for Bash

Added: trunk/bash/bash-4.1-fixes-2.patch
===================================================================
--- trunk/bash/bash-4.1-fixes-2.patch	                        (rev 0)
+++ trunk/bash/bash-4.1-fixes-2.patch	2010-05-17 23:12:40 UTC (rev 2198)
@@ -0,0 +1,141 @@
+Submitted By:            Matt Burgess <matthew_at_linuxfromscratch_dot_org>
+Date:                    2010-05-18
+Initial Package Version: 4.1
+Upstream Status:         Already in upstream patch repo
+Origin:                  Upstream
+Description:             This patch contains upstream patch numbers 1 thru 7.
+
+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-05-18 00:03:19.247415503 +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/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-05-18 00:03:19.414603747 +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-05-18 00:03:19.330602547 +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-05-18 00:03:19.210602265 +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-05-18 00:03:19.414603747 +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 7
+ 
+ #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-05-18 00:03:19.374616709 +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/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-05-18 00:03:19.274703342 +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)




More information about the patches mailing list