]> git.pld-linux.org Git - packages/bash.git/commitdiff
- official patches
authorElan Ruusamäe <glen@pld-linux.org>
Wed, 1 Nov 2006 22:16:43 +0000 (22:16 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    bash32-001 -> 1.1
    bash32-002 -> 1.1
    bash32-003 -> 1.1

bash32-001 [new file with mode: 0644]
bash32-002 [new file with mode: 0644]
bash32-003 [new file with mode: 0644]

diff --git a/bash32-001 b/bash32-001
new file mode 100644 (file)
index 0000000..b7d1f1e
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-001
+
+Bug-Reported-by:       Greg Schafer <gschafer@zip.com.au>
+Bug-Reference-ID:      <20061012084940.GA15768@tigers.local>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
+
+Bug-Description:
+
+When using historical ``-style command substitution, bash incorrectly attempts
+to interpret shell comments while scanning for the closing backquote.
+
+Patch:
+
+*** ../bash-3.2/parse.y        Tue Sep 19 16:37:21 2006
+--- parse.y    Thu Oct 12 10:30:57 2006
+***************
+*** 2736,2740 ****
+    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. */
+--- 2736,2740 ----
+    count = 1;
+    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
+!   check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+  
+    /* RFLAGS is the set of flags we want to pass to recursive calls. */
+*** ../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 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 --git a/bash32-002 b/bash32-002
new file mode 100644 (file)
index 0000000..b934df9
--- /dev/null
@@ -0,0 +1,48 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-002
+
+Bug-Reported-by:       Jim Gifford <jim@jg555.com>
+Bug-Reference-ID:      <12j2pc3aq35mb04@corp.supernews.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
+
+Bug-Description:
+
+An incorrect encoding specification in the Content-Type header causes msgfmt
+to fail, which causes `make install' to fail.
+
+Patch:
+
+*** ../bash-3.2/po/ru.po        Tue Jan 10 17:51:03 2006
+--- po/ru.po    Mon Oct 16 15:13:23 2006
+***************
+*** 13,17 ****
+  "Language-Team: Russian <ru@li.org>\n"
+  "MIME-Version: 1.0\n"
+! "Content-Type: text/plain; charset=UTF-8\n"
+  "Content-Transfer-Encoding: 8bit\n"
+  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+--- 13,17 ----
+  "Language-Team: Russian <ru@li.org>\n"
+  "MIME-Version: 1.0\n"
+! "Content-Type: text/plain; charset=KOI8-R\n"
+  "Content-Transfer-Encoding: 8bit\n"
+  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+*** ../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 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 --git a/bash32-003 b/bash32-003
new file mode 100644 (file)
index 0000000..922041b
--- /dev/null
@@ -0,0 +1,147 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-003
+
+Bug-Reported-by:       John Gatewood Ham <zappaman@buraphalinux.org>
+Bug-Reference-ID:      <Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
+
+Bug-Description:
+
+When using the conditional command's `=~' operator to match regular
+expressions, the parser did not skip over shell metacharacters in the
+regular expression, leading to syntax errors.
+
+Patch:
+
+*** ../bash-3.2-patched/parse.y        Tue Oct 17 11:45:20 2006
+--- parse.y    Sat Oct 14 14:56:16 2006
+***************
+*** 1029,1034 ****
+--- 1029,1035 ----
+  #define PST_CMDTOKEN 0x1000          /* command token OK - unused */
+  #define PST_COMPASSIGN       0x2000          /* parsing x=(...) compound assignment */
+  #define PST_ASSIGNOK 0x4000          /* assignment statement ok in this context */
++ #define PST_REGEXP   0x8000          /* parsing an ERE/BRE as a single word */
+  
+  /* Initial size to allocate for tokens, and the
+     amount to grow them by. */
+***************
+*** 2591,2596 ****
+--- 2592,2600 ----
+        return (character);
+      }
+  
++   if (parser_state & PST_REGEXP)
++     goto tokword;
++ 
+    /* Shell meta-characters. */
+    if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
+      {
+***************
+*** 2698,2703 ****
+--- 2702,2708 ----
+    if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
+      return (character);
+  
++ tokword:
+    /* Okay, if we got this far, we have to read a word.  Read one,
+       and then check it against the known ones. */
+    result = read_token_word (character);
+***************
+*** 3202,3209 ****
+        if (tok == WORD && test_binop (yylval.word->word))
+       op = yylval.word;
+  #if defined (COND_REGEXP)
+!       else if (tok == WORD && STREQ (yylval.word->word,"=~"))
+!      op = yylval.word;
+  #endif
+        else if (tok == '<' || tok == '>')
+       op = make_word_from_token (tok);  /* ( */
+--- 3207,3217 ----
+        if (tok == WORD && test_binop (yylval.word->word))
+       op = yylval.word;
+  #if defined (COND_REGEXP)
+!       else if (tok == WORD && STREQ (yylval.word->word, "=~"))
+!      {
+!        op = yylval.word;
+!        parser_state |= PST_REGEXP;
+!      }
+  #endif
+        else if (tok == '<' || tok == '>')
+       op = make_word_from_token (tok);  /* ( */
+***************
+*** 3234,3239 ****
+--- 3242,3248 ----
+  
+        /* rhs */
+        tok = read_token (READ);
++       parser_state &= ~PST_REGEXP;
+        if (tok == WORD)
+       {
+         tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
+***************
+*** 3419,3427 ****
+         goto next_character;
+       }
+  
+  #ifdef EXTENDED_GLOB
+        /* Parse a ksh-style extended pattern matching specification. */
+!       if (extended_glob && PATTERN_CHAR (character))
+       {
+         peek_char = shell_getc (1);
+         if MBTEST(peek_char == '(')           /* ) */
+--- 3428,3461 ----
+         goto next_character;
+       }
+  
++ #ifdef COND_REGEXP
++       /* When parsing a regexp as a single word inside a conditional command,
++       we need to special-case characters special to both the shell and
++       regular expressions.  Right now, that is only '(' and '|'. */ /*)*/
++       if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|'))               /*)*/
++         {
++           if (character == '|')
++             goto got_character;
++ 
++        push_delimiter (dstack, character);
++        ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
++        pop_delimiter (dstack);
++        if (ttok == &matched_pair_error)
++          return -1;          /* Bail immediately. */
++        RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
++                                token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
++        token[token_index++] = character;
++        strcpy (token + token_index, ttok);
++        token_index += ttoklen;
++        FREE (ttok);
++        dollar_present = all_digit_token = 0;
++        goto next_character;
++         }
++ #endif /* COND_REGEXP */
++ 
+  #ifdef EXTENDED_GLOB
+        /* Parse a ksh-style extended pattern matching specification. */
+!       if MBTEST(extended_glob && PATTERN_CHAR (character))
+       {
+         peek_char = shell_getc (1);
+         if MBTEST(peek_char == '(')           /* ) */
+
+*** ../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 2
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
+
This page took 0.100145 seconds and 4 git commands to generate.