From 2c0820fb204f25b67f57ce917e44712965684e47 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Sun, 27 Jan 2002 18:21:21 +0000 Subject: 16201: introduce the PM_NAMEDDIR flag --- Src/params.c | 6 +++++- Src/zsh.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'Src') diff --git a/Src/params.c b/Src/params.c index bff3d25a2..a89ea01e5 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2138,6 +2138,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) { @@ -2226,8 +2227,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 */ diff --git a/Src/zsh.h b/Src/zsh.h index 3b6c0aad4..b5e446f6f 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1132,6 +1132,7 @@ struct param { #define PM_AUTOLOAD (1<<23) /* autoloaded from module */ #define PM_NORESTORE (1<<24) /* do not restore value of local special */ #define PM_HASHELEM (1<<25) /* is a hash-element */ +#define PM_NAMEDDIR (1<<26) /* has a corresponding nameddirtab entry */ /* The option string corresponds to the first of the variables above */ #define TYPESET_OPTSTR "aiEFALRZlurtxUhHT" -- cgit 1.4.1