Author: jim
Date: 2005-12-22 01:28:31 -0700 (Thu, 22 Dec 2005)
New Revision: 1310

Added:
   trunk/bash/bash-3.1-fixes-1.patch
Modified:
   trunk/
Log:
 [EMAIL PROTECTED]:  jim | 2005-12-22 00:27:16 -0800
 Added: bash-3.1-fixes-1.patch



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - cc2644d5-6cf8-0310-b111-c40428001e49:/patches:1608
   + cc2644d5-6cf8-0310-b111-c40428001e49:/patches:1609

Added: trunk/bash/bash-3.1-fixes-1.patch
===================================================================
--- trunk/bash/bash-3.1-fixes-1.patch   2005-12-22 08:27:33 UTC (rev 1309)
+++ trunk/bash/bash-3.1-fixes-1.patch   2005-12-22 08:28:31 UTC (rev 1310)
@@ -0,0 +1,79 @@
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-12-22
+Initial Package Version: 3.1
+Origin: Upstream
+Upstream Status: Applied 
+Description: Contains Patch 001 from Upstream
+
+001 -  There are parsing problems with compound assignments in several 
contexts,
+       including as arguments to builtins like `local', `eval', and `let', and
+       as multiple assignments in a single command.
+ 
+diff -Naur bash-3.1.orig/parse.y bash-3.1/parse.y
+--- bash-3.1.orig/parse.y      2005-11-12 04:14:18.000000000 +0000
++++ bash-3.1/parse.y   2005-12-22 08:25:48.000000000 +0000
+@@ -3695,7 +3695,9 @@
+       struct builtin *b;
+       b = builtin_address_internal (token, 0);
+       if (b && (b->flags & ASSIGNMENT_BUILTIN))
+-        parser_state |= PST_ASSIGNOK;
++      parser_state |= PST_ASSIGNOK;
++      else if (STREQ (token, "eval") || STREQ (token, "let"))
++      parser_state |= PST_ASSIGNOK;
+     }
+ 
+   yylval.word = the_word;
+@@ -4686,18 +4688,21 @@
+      int *retlenp;
+ {
+   WORD_LIST *wl, *rl;
+-  int tok, orig_line_number, orig_token_size;
++  int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
+   char *saved_token, *ret;
+ 
+   saved_token = token;
+   orig_token_size = token_buffer_size;
+   orig_line_number = line_number;
++  orig_last_token = last_read_token;
+ 
+   last_read_token = WORD;     /* WORD to allow reserved words here */
+ 
+   token = (char *)NULL;
+   token_buffer_size = 0;
+ 
++  assignok = parser_state&PST_ASSIGNOK;               /* XXX */
++
+   wl = (WORD_LIST *)NULL;     /* ( */
+   parser_state |= PST_COMPASSIGN;
+ 
+@@ -4740,7 +4745,7 @@
+       jump_to_top_level (DISCARD);
+     }
+ 
+-  last_read_token = WORD;
++  last_read_token = orig_last_token;          /* XXX - was WORD? */
+   if (wl)
+     {
+       rl = REVERSE_LIST (wl, WORD_LIST *);
+@@ -4752,6 +4757,10 @@
+ 
+   if (retlenp)
+     *retlenp = (ret && *ret) ? strlen (ret) : 0;
++
++  if (assignok)
++    parser_state |= PST_ASSIGNOK;
++
+   return ret;
+ }
+ 
+diff -Naur bash-3.1.orig/patchlevel.h bash-3.1/patchlevel.h
+--- bash-3.1.orig/patchlevel.h 2005-07-20 17:58:20.000000000 +0000
++++ bash-3.1/patchlevel.h      2005-12-22 08:25:48.000000000 +0000
+@@ -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 1
+ 
+ #endif /* _PATCHLEVEL_H_ */

-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to