diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2001-11-03 23:36:33 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2001-11-03 23:36:33 +0000 |
commit | d98a67c56990a81bc8a913612b8a2ae496000836 (patch) | |
tree | caeebcf41bbdb23e25cd733299d5a0a1b9f91e02 /Src/params.c | |
parent | 7f1ce57089409f98a0f13ce2eed5b56152219455 (diff) | |
download | zsh-d98a67c56990a81bc8a913612b8a2ae496000836.tar.gz zsh-d98a67c56990a81bc8a913612b8a2ae496000836.tar.xz zsh-d98a67c56990a81bc8a913612b8a2ae496000836.zip |
16201: introduce the PM_NAMEDDIR flag
Diffstat (limited to 'Src/params.c')
-rw-r--r-- | Src/params.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Src/params.c b/Src/params.c index cd0b16964..22346896d 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2147,6 +2147,7 @@ unsetparam_pm(Param pm, int altflag, int exp) paramtab->addnode(paramtab, oldpm->nam, oldpm); if ((PM_TYPE(oldpm->flags) == PM_SCALAR) && !(pm->flags & PM_HASHELEM) && + (oldpm->flags & PM_NAMEDDIR) && oldpm->sets.cfn == strsetfn) adduserdir(oldpm->nam, oldpm->u.str, 0, 0); if (oldpm->flags & PM_EXPORTED) { @@ -2231,8 +2232,11 @@ strsetfn(Param pm, char *x) { zsfree(pm->u.str); pm->u.str = x; - if (!(pm->flags & PM_HASHELEM)) + if (!(pm->flags & PM_HASHELEM) && + ((pm->flags & PM_NAMEDDIR) || isset(AUTONAMEDIRS))) { + pm->flags |= PM_NAMEDDIR; adduserdir(pm->nam, x, 0, 0); + } } /* Function to get value of an array parameter */ |