7 Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
8 Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org>
9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html
13 There are parsing problems with compound assignments in several contexts,
14 including as arguments to builtins like `local', `eval', and `let', and
15 as multiple assignments in a single command.
19 *** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005
20 --- parse.y Fri Dec 16 20:43:07 2005
23 b = builtin_address_internal (token, 0);
24 if (b && (b->flags & ASSIGNMENT_BUILTIN))
25 ! parser_state |= PST_ASSIGNOK;
29 b = builtin_address_internal (token, 0);
30 if (b && (b->flags & ASSIGNMENT_BUILTIN))
31 ! parser_state |= PST_ASSIGNOK;
32 ! else if (STREQ (token, "eval") || STREQ (token, "let"))
33 ! parser_state |= PST_ASSIGNOK;
40 ! int tok, orig_line_number, orig_token_size;
41 char *saved_token, *ret;
46 ! int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
47 char *saved_token, *ret;
52 orig_token_size = token_buffer_size;
53 orig_line_number = line_number;
54 + orig_last_token = last_read_token;
56 last_read_token = WORD; /* WORD to allow reserved words here */
60 token_buffer_size = 0;
62 + assignok = parser_state&PST_ASSIGNOK; /* XXX */
64 wl = (WORD_LIST *)NULL; /* ( */
65 parser_state |= PST_COMPASSIGN;
70 ! last_read_token = WORD;
76 ! last_read_token = orig_last_token; /* XXX - was WORD? */
83 *retlenp = (ret && *ret) ? strlen (ret) : 0;
86 + parser_state |= PST_ASSIGNOK;
90 *** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
91 --- patchlevel.h Wed Dec 7 13:48:42 2005
94 looks for to find the patch level (for the sccs version string). */
96 ! #define PATCHLEVEL 0
98 #endif /* _PATCHLEVEL_H_ */
100 looks for to find the patch level (for the sccs version string). */
102 ! #define PATCHLEVEL 1
104 #endif /* _PATCHLEVEL_H_ */