summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilippe Altherr <philippe.altherr@gmail.com>2026-07-19 14:13:59 -0700
committerBart Schaefer <schaefer@zsh.org>2026-07-19 14:13:59 -0700
commit1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b (patch)
tree5473d577aa8eae7b6c4acb405636bf49dde9c943
parent54809: ZLE specials are always in realparamtab and can't be namerefs (diff)
downloadzsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.tar
zsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.tar.gz
zsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.tar.bz2
zsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.tar.lz
zsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.tar.xz
zsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.tar.zst
zsh-1caf52e3aedb46ea6a3d8a8f62da7aa29893a56b.zip
54943: Do not export named references even when ALLEXPORT is enabled
-rw-r--r--Src/params.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Src/params.c b/Src/params.c
index e111b28c7..7409ff530 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1167,7 +1167,7 @@ createparam(char *name, int flags)
paramtab->addnode(paramtab, ztrdup(name), pm);
}
- if (isset(ALLEXPORT) && !(flags & PM_HASHELEM))
+ if (isset(ALLEXPORT) && !(flags & (PM_NAMEREF | PM_HASHELEM)))
flags |= PM_EXPORTED;
} else {
pm = (Param) hcalloc(sizeof *pm);
@@ -2835,7 +2835,8 @@ assignstrvalue(Value v, char *val, int flags)
setscope(v->pm);
if (errflag ||
((!v->pm->env && !(v->pm->node.flags & PM_EXPORTED) &&
- !(isset(ALLEXPORT) && !(v->pm->node.flags & PM_HASHELEM))) ||
+ !(isset(ALLEXPORT) &&
+ !(v->pm->node.flags & (PM_NAMEREF | PM_HASHELEM)))) ||
(v->pm->node.flags & PM_ARRAY) || v->pm->ename))
return;
export_param(v->pm);