commit bash-20140725 snapshot

This commit is contained in:
Chet Ramey
2014-07-28 11:08:27 -04:00
parent fd1ddff358
commit 1034e10bb4
4 changed files with 21 additions and 1 deletions
+9
View File
@@ -6496,3 +6496,12 @@ tests/array.right
and
declare -a foo
are not equivalent
7/22
----
subst.c
- parameter_brace_expand: after calling parameter_brace_expand_indir,
turn off the W_ARRAYIND flag in the word it returns, because there
is no way for it to return the index that should be used, and the
rest of the function assumes that IND is valid if W_ARRAYIND is set.
Fixes bug reported by Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
BIN
View File
Binary file not shown.
Binary file not shown.
+12 -1
View File
@@ -339,6 +339,11 @@ dump_word_flags (flags)
f = flags;
fprintf (stderr, "%d -> ", f);
if (f & W_ARRAYIND)
{
f &= ~W_ARRAYIND;
fprintf (stderr, "W_ARRAYIND%s", f ? "|" : "");
}
if (f & W_ASSIGNASSOC)
{
f &= ~W_ASSIGNASSOC;
@@ -7439,7 +7444,13 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
}
if (want_indir)
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
{
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
/* Turn off the W_ARRAYIND flag because there is no way for this function
to return the index we're supposed to be using. */
if (tdesc && tdesc->flags)
tdesc->flags &= ~W_ARRAYIND;
}
else
tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind);