aboutsummaryrefslogtreecommitdiffstats
path: root/assoc.c
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-11-21 20:51:19 -0500
committerChet Ramey <chet.ramey@case.edu>2011-11-21 20:51:19 -0500
commit0001803f0b9523c94fa2ede48eaecb047fef4524 (patch)
treef334332811e033ff966d94f6268f0629a94304b3 /assoc.c
parent89a92869e56aba4e4cab2d639c00a86f0545c862 (diff)
downloadandroid_external_bash-0001803f0b9523c94fa2ede48eaecb047fef4524.tar.gz
android_external_bash-0001803f0b9523c94fa2ede48eaecb047fef4524.tar.bz2
android_external_bash-0001803f0b9523c94fa2ede48eaecb047fef4524.zip
Bash-4.1 distribution source
Diffstat (limited to 'assoc.c')
-rw-r--r--assoc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/assoc.c b/assoc.c
index 476facb..bbc7b17 100644
--- a/assoc.c
+++ b/assoc.c
@@ -405,7 +405,14 @@ assoc_to_assign (hash, quoted)
for (i = 0; i < hash->nbuckets; i++)
for (tlist = hash_items (i, hash); tlist; tlist = tlist->next)
{
+#if 1
+ if (sh_contains_shell_metas (tlist->key))
+ istr = sh_double_quote (tlist->key);
+ else
+ istr = tlist->key;
+#else
istr = tlist->key;
+#endif
vstr = tlist->data ? sh_double_quote ((char *)tlist->data) : (char *)0;
elen = STRLEN (istr) + 8 + STRLEN (vstr);
@@ -423,6 +430,10 @@ assoc_to_assign (hash, quoted)
}
ret[rlen++] = ' ';
+
+ if (istr != tlist->key)
+ FREE (istr);
+
FREE (vstr);
}