about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Src/params.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d4a2d5cc7..622ad7767 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-28  Bart Schaefer  <schaefer@zsh.org>
+
+	* 12112: Src/params.c: Don't make namedirs out of hash elements.
+
 2000-06-28  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 12109: Completion/Core/_complete: make _complete return the
diff --git a/Src/params.c b/Src/params.c
index 2768c273d..e7f5011d1 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -2020,6 +2020,7 @@ unsetparam_pm(Param pm, int altflag, int exp)
 	oldpm = pm->old;
 	paramtab->addnode(paramtab, oldpm->nam, oldpm);
 	if ((PM_TYPE(oldpm->flags) == PM_SCALAR) &&
+	    !(pm->flags & PM_HASHELEM) &&
 	    oldpm->sets.cfn == strsetfn)
 	    adduserdir(oldpm->nam, oldpm->u.str, 0, 0);
 	if (oldpm->flags & PM_EXPORTED) {
@@ -2104,7 +2105,8 @@ strsetfn(Param pm, char *x)
 {
     zsfree(pm->u.str);
     pm->u.str = x;
-    adduserdir(pm->nam, x, 0, 0);
+    if (!(pm->flags & PM_HASHELEM))
+	adduserdir(pm->nam, x, 0, 0);
 }
 
 /* Function to get value of an array parameter */