]> git.pld-linux.org Git - packages/bash.git/commitdiff
- up to 011
authorElan Ruusamäe <glen@pld-linux.org>
Mon, 13 Mar 2006 16:52:10 +0000 (16:52 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    bash31-008 -> 1.1
    bash31-009 -> 1.1
    bash31-010 -> 1.1
    bash31-011 -> 1.1

bash31-008 [new file with mode: 0644]
bash31-009 [new file with mode: 0644]
bash31-010 [new file with mode: 0644]
bash31-011 [new file with mode: 0644]

diff --git a/bash31-008 b/bash31-008
new file mode 100644 (file)
index 0000000..3427b64
--- /dev/null
@@ -0,0 +1,51 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-008
+
+Bug-Reported-by: Ingemar Nilsson <init@kth.se>
+Bug-Reference-ID: <43C38D35.7020404@kth.se>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html
+
+Bug-Description:
+
+In some cases, bash inappropriately allows SIGINT from the terminal to
+reach background processes.
+
+Patch:
+
+*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
+--- jobs.c     Wed Feb  1 13:55:38 2006
+***************
+*** 2199,2203 ****
+    wait_sigint_received = 0;
+    if (job_control == 0)
+!     old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+  
+    termination_state = last_command_exit_value;
+--- 2298,2306 ----
+    wait_sigint_received = 0;
+    if (job_control == 0)
+!     {
+!       old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+!       if (old_sigint_handler == SIG_IGN)
+!      set_signal_handler (SIGINT, old_sigint_handler);
+!     }
+  
+    termination_state = last_command_exit_value;
+*** ../bash-3.1/patchlevel.h   Wed Jul 20 13:58:20 2005
+--- patchlevel.h       Wed Dec  7 13:48:42 2005
+***************
+*** 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 --git a/bash31-009 b/bash31-009
new file mode 100644 (file)
index 0000000..8ef2295
--- /dev/null
@@ -0,0 +1,66 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-009
+
+Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com>
+Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html
+
+Bug-Description:
+
+Under some circumstances, background (asynchronous) jobs can set the terminal
+process group incorrectly.  This can cause a foreground process (including
+the foreground shell) to get read errors and exit.
+
+Patch:
+
+*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
+--- jobs.c     Wed Feb  1 13:55:38 2006
+***************
+*** 620,625 ****
+          * the parent gives it away.
+          *
+          */
+!        if (job_control && newjob->pgrp)
+           give_terminal_to (newjob->pgrp, 0);
+       }
+--- 634,642 ----
+          * the parent gives it away.
+          *
++         * Don't give the terminal away if this shell is an asynchronous
++         * subshell.
++         *
+          */
+!        if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
+           give_terminal_to (newjob->pgrp, 0);
+       }
+***************
+*** 1656,1660 ****
+            shell's process group (we could be in the middle of a
+            pipeline, for example). */
+!        if (async_p == 0 && pipeline_pgrp != shell_pgrp)
+           give_terminal_to (pipeline_pgrp, 0);
+  
+--- 1743,1747 ----
+            shell's process group (we could be in the middle of a
+            pipeline, for example). */
+!        if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
+           give_terminal_to (pipeline_pgrp, 0);
+  
+*** ../bash-3.1/patchlevel.h   Wed Jul 20 13:58:20 2005
+--- patchlevel.h       Wed Dec  7 13:48:42 2005
+***************
+*** 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 --git a/bash31-010 b/bash31-010
new file mode 100644 (file)
index 0000000..46d44d2
--- /dev/null
@@ -0,0 +1,164 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-010
+
+Bug-Reported-by: vw@vonwolff.de
+Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html
+
+Bug-Description:
+
+There is a difference in behavior between bash-3.0 and bash-3.1 involving
+parsing of single- and double-quoted strings occurring in old-style
+command substitution.  The difference has to do with how backslashes are
+processed.  This patch restores a measure of backwards compatibility while
+the question of POSIX conformance and ultimately correct behavior is discussed.
+
+THIS IS AN UPDATED PATCH.  USE THIS COMMAND TO REVERSE THE EFFECTS OF
+THE ORIGINAL PATCH.  THE CURRENT DIRECTORY MUST BE THE BASH-3.1 SOURCE
+DIRECTORY.
+
+patch -p0 -R < bash31-010.orig
+
+Then apply this patch as usual.
+
+Patch:
+
+*** ../bash-3.1/parse.y        Fri Nov 11 23:14:18 2005
+--- parse.y    Thu Feb 23 08:21:12 2006
+***************
+*** 2716,2721 ****
+--- 2723,2729 ----
+  #define P_ALLOWESC   0x02
+  #define P_DQUOTE     0x04
+  #define P_COMMAND    0x08    /* parsing a command, so look for comments */
++ #define P_BACKQUOTE  0x10    /* parsing a backquoted command substitution */
+  
+  static char matched_pair_error;
+  static char *
+***************
+*** 2725,2736 ****
+       int *lenp, flags;
+  {
+    int count, ch, was_dollar, in_comment, check_comment;
+!   int pass_next_character, nestlen, ttranslen, start_lineno;
+    char *ret, *nestret, *ttrans;
+    int retind, retsize, rflags;
+  
+    count = 1;
+!   pass_next_character = was_dollar = in_comment = 0;
+    check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+  
+    /* RFLAGS is the set of flags we want to pass to recursive calls. */
+--- 2733,2744 ----
+       int *lenp, flags;
+  {
+    int count, ch, was_dollar, in_comment, check_comment;
+!   int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno;
+    char *ret, *nestret, *ttrans;
+    int retind, retsize, rflags;
+  
+    count = 1;
+!   pass_next_character = backq_backslash = was_dollar = in_comment = 0;
+    check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+  
+    /* RFLAGS is the set of flags we want to pass to recursive calls. */
+***************
+*** 2742,2752 ****
+    start_lineno = line_number;
+    while (count)
+      {
+! #if 0
+!       ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0);
+! #else
+!       ch = shell_getc (qc != '\'' && pass_next_character == 0);
+! #endif
+        if (ch == EOF)
+       {
+         free (ret);
+--- 2750,2757 ----
+    start_lineno = line_number;
+    while (count)
+      {
+!       ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0);
+! 
+        if (ch == EOF)
+       {
+         free (ret);
+***************
+*** 2771,2779 ****
+         continue;
+       }
+        /* Not exactly right yet */
+!       else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1])))
+       in_comment = 1;
+  
+        if (pass_next_character)               /* last char was backslash */
+       {
+         pass_next_character = 0;
+--- 2776,2791 ----
+         continue;
+       }
+        /* Not exactly right yet */
+!       else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1])))
+       in_comment = 1;
+  
++       /* last char was backslash inside backquoted command substitution */
++       if (backq_backslash)
++      {
++        backq_backslash = 0;
++        /* Placeholder for adding special characters */
++      }
++ 
+        if (pass_next_character)               /* last char was backslash */
+       {
+         pass_next_character = 0;
+***************
+*** 2814,2819 ****
+--- 2824,2831 ----
+       {
+         if MBTEST((flags & P_ALLOWESC) && ch == '\\')
+           pass_next_character++;
++        else if MBTEST((flags & P_BACKQUOTE) && ch == '\\')
++          backq_backslash++;
+         continue;
+       }
+  
+***************
+*** 2898,2904 ****
+       }
+        else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
+       {
+!        nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
+         goto add_nestret;
+       }
+        else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))    /* ) } ] */
+--- 2910,2920 ----
+       }
+        else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
+       {
+!        /* Add P_BACKQUOTE so backslash quotes the next character and
+!           shell_getc does the right thing with \<newline>.  We do this for
+!           a measure  of backwards compatibility -- it's not strictly the
+!           right POSIX thing. */
+!        nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE);
+         goto add_nestret;
+       }
+        else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))    /* ) } ] */
+*** ../bash-3.1/patchlevel.h   Wed Jul 20 13:58:20 2005
+--- patchlevel.h       Wed Dec  7 13:48:42 2005
+***************
+*** 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 --git a/bash31-011 b/bash31-011
new file mode 100644 (file)
index 0000000..025b839
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-011
+
+Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com>
+Bug-Reference-ID: <E1EvwxP-0004LD-GC@localhost.localdomain>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html
+
+Bug-Description:
+
+A change in bash-3.1 caused the single quotes to be stripped from ANSI-C
+quoting inside double-quoted command substitutions.
+
+Patch:
+
+*** ../bash-3.1/parse.y        Fri Nov 11 23:14:18 2005
+--- parse.y    Wed Jan 25 14:55:18 2006
+***************
+*** 2908,2912 ****
+           count--;
+         if (ch == '(')                /* ) */
+!          nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
+         else if (ch == '{')           /* } */
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
+--- 2914,2918 ----
+           count--;
+         if (ch == '(')                /* ) */
+!          nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE);
+         else if (ch == '{')           /* } */
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
+*** ../bash-3.1/patchlevel.h   Wed Jul 20 13:58:20 2005
+--- patchlevel.h       Wed Dec  7 13:48:42 2005
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
This page took 0.051347 seconds and 4 git commands to generate.