summaryrefslogtreecommitdiffstats
path: root/Src/Modules/param_private.c
diff options
context:
space:
mode:
authorPhilippe Altherr <philippe.altherr@gmail.com>2026-02-16 16:22:18 -0800
committerBart Schaefer <schaefer@zsh.org>2026-02-16 16:22:18 -0800
commit09e1b5631dfe367aa8e44acf28bc8581a47a5d54 (patch)
tree2ce03eb479e7e6306ce55cdd26d812fb2d1b68a4 /Src/Modules/param_private.c
parent54122: avoid warnings for valid nameref options (diff)
downloadzsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.tar
zsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.tar.gz
zsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.tar.bz2
zsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.tar.lz
zsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.tar.xz
zsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.tar.zst
zsh-09e1b5631dfe367aa8e44acf28bc8581a47a5d54.zip
53776: Add PM_NAMEREF to PM_TYPE, reject array initializers for namerefs
Diffstat (limited to 'Src/Modules/param_private.c')
-rw-r--r--Src/Modules/param_private.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Src/Modules/param_private.c b/Src/Modules/param_private.c
index 95859ce36..caa1fb0b0 100644
--- a/Src/Modules/param_private.c
+++ b/Src/Modules/param_private.c
@@ -100,6 +100,7 @@ makeprivate(HashNode hn, UNUSED(int flags))
/* why have a union if we need this switch anyway? */
switch (PM_TYPE(pm->node.flags)) {
case PM_SCALAR:
+ case PM_NAMEREF:
pm->gsu.s->setfn(pm, tpm->u.str);
tpm->u.str = NULL;
break;
@@ -138,6 +139,7 @@ makeprivate(HashNode hn, UNUSED(int flags))
struct gsu_closure *gsu = zalloc(sizeof(struct gsu_closure));
switch (PM_TYPE(pm->node.flags)) {
case PM_SCALAR:
+ case PM_NAMEREF:
gsu->g = (void *)(pm->gsu.s);
gsu->u.s = scalar_private_gsu;
pm->gsu.s = (GsuScalar)gsu;
@@ -180,6 +182,7 @@ is_private(Param pm)
{
switch (PM_TYPE(pm->node.flags)) {
case PM_SCALAR:
+ case PM_NAMEREF:
if (!pm->gsu.s || pm->gsu.s->unsetfn != pps_unsetfn)
return 0;
break;