projects
/
platform
/
upstream
/
bash.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
0213a83
)
Bash-4.2 patch 39
author
Chet Ramey
<chet@caleb.ins.cwru.edu>
Fri, 2 Nov 2012 14:06:20 +0000
(10:06 -0400)
committer
Chet Ramey
<chet@caleb.ins.cwru.edu>
Fri, 2 Nov 2012 14:06:20 +0000
(10:06 -0400)
expr.c
patch
|
blob
|
history
patchlevel.h
patch
|
blob
|
history
diff --git
a/expr.c
b/expr.c
index
14cdca2
..
98d75b6
100644
(file)
--- a/
expr.c
+++ b/
expr.c
@@
-1009,6
+1009,12
@@
expr_streval (tok, e, lvalue)
arrayind_t ind;
#endif
arrayind_t ind;
#endif
+/*itrace("expr_streval: %s: noeval = %d", tok, noeval);*/
+ /* If we are suppressing evaluation, just short-circuit here instead of
+ going through the rest of the evaluator. */
+ if (noeval)
+ return (0);
+
/* [[[[[ */
#if defined (ARRAY_VARS)
v = (e == ']') ? array_variable_part (tok, (char **)0, (int *)0) : find_variable (tok);
/* [[[[[ */
#if defined (ARRAY_VARS)
v = (e == ']') ? array_variable_part (tok, (char **)0, (int *)0) : find_variable (tok);
@@
-1182,6
+1188,10
@@
readtok ()
#endif /* ARRAY_VARS */
*cp = '\0';
#endif /* ARRAY_VARS */
*cp = '\0';
+ /* XXX - watch out for pointer aliasing issues here */
+ if (curlval.tokstr && curlval.tokstr == tokstr)
+ init_lvalue (&curlval);
+
FREE (tokstr);
tokstr = savestring (tp);
*cp = c;
FREE (tokstr);
tokstr = savestring (tp);
*cp = c;
diff --git
a/patchlevel.h
b/patchlevel.h
index
99d2ea2
..
7193c0c
100644
(file)
--- a/
patchlevel.h
+++ b/
patchlevel.h
@@
-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). */
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */
-#define PATCHLEVEL 3
8
+#define PATCHLEVEL 3
9
#endif /* _PATCHLEVEL_H_ */
#endif /* _PATCHLEVEL_H_ */