about summary refs log tree commit diff
path: root/Src/params.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2001-05-19 23:47:58 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2001-05-19 23:47:58 +0000
commit6ea2dab092feb373c13a4dda85bc0d399978975a (patch)
treeecfe95f3bb44e53849d3519f81b95ecaa80b13fc /Src/params.c
parentfbe51d3ee974988aa1f2ffcba748918b1845fb65 (diff)
downloadzsh-6ea2dab092feb373c13a4dda85bc0d399978975a.tar.gz
zsh-6ea2dab092feb373c13a4dda85bc0d399978975a.tar.xz
zsh-6ea2dab092feb373c13a4dda85bc0d399978975a.zip
Fix, test and comment unsetting and resetting of special tied parameters
Diffstat (limited to 'Src/params.c')
-rw-r--r--Src/params.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Src/params.c b/Src/params.c
index 28a8f1e85..63e1dc75c 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -669,6 +669,12 @@ createparam(char *name, int flags)
 	if (oldpm && (oldpm->level == locallevel || !(flags & PM_LOCAL))) {
 	    if (!(oldpm->flags & PM_UNSET) || (oldpm->flags & PM_SPECIAL)) {
 		oldpm->flags &= ~PM_UNSET;
+		if ((oldpm->flags & PM_SPECIAL) && oldpm->ename) {
+		    Param altpm = 
+			(Param) paramtab->getnode(paramtab, oldpm->ename);
+		    if (altpm)
+			altpm->flags &= ~PM_UNSET;
+		}
 		return NULL;
 	    }
 	    if ((oldpm->flags & PM_RESTRICTED) && isset(RESTRICTED)) {