diff options
| author | Philippe Altherr <philippe.altherr@gmail.com> | 2026-07-19 13:34:52 -0700 |
|---|---|---|
| committer | Bart Schaefer <schaefer@zsh.org> | 2026-07-19 13:34:52 -0700 |
| commit | 27b7b59af8ba0e6993416436b09e7fb859311fb9 (patch) | |
| tree | 00ef82bf6a2e827b996d633a3a66a0e1ab480cf5 | |
| parent | 54988: Add comment clarifying test from workers/54792 (diff) | |
| download | zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.tar zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.tar.gz zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.tar.bz2 zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.tar.lz zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.tar.xz zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.tar.zst zsh-27b7b59af8ba0e6993416436b09e7fb859311fb9.zip | |
54809: ZLE specials are always in realparamtab and can't be namerefs
| -rw-r--r-- | Src/Zle/compctl.c | 6 | ||||
| -rw-r--r-- | Src/Zle/complete.c | 13 | ||||
| -rw-r--r-- | Src/Zle/compresult.c | 2 | ||||
| -rw-r--r-- | Src/Zle/zle_main.c | 2 | ||||
| -rw-r--r-- | Src/Zle/zle_params.c | 5 | ||||
| -rw-r--r-- | Src/Zle/zle_thingy.c | 3 | ||||
| -rw-r--r-- | Src/Zle/zle_tricky.c | 13 |
7 files changed, 22 insertions, 22 deletions
diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index c66bca888..347f5532c 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -3664,7 +3664,7 @@ makecomplistflags(Compctl cc, char *s, int incmd, int compadd) dumphashtable(cmdnamtab, -3); /* And parameter names if autocd and cdablevars are set. */ if (isset(AUTOCD) && isset(CDABLEVARS)) - dumphashtable(paramtab, -4); + dumphashtable(realparamtab, -4); } oaw = addwhat = (cc->mask & CC_QUOTEFLAG) ? -2 : CC_QUOTEFLAG; @@ -3676,7 +3676,7 @@ makecomplistflags(Compctl cc, char *s, int incmd, int compadd) dumphashtable(optiontab, addwhat); if (cc->mask & CC_VARS) { /* And parameter names. */ - dumphashtable(paramtab, -9); + dumphashtable(realparamtab, -9); addwhat = oaw; } if (cc->mask & CC_BINDINGS) { @@ -3843,7 +3843,7 @@ makecomplistflags(Compctl cc, char *s, int incmd, int compadd) if ((t = cc->mask & (CC_ARRAYS | CC_INTVARS | CC_ENVVARS | CC_SCALARS | CC_READONLYS | CC_SPECIALS | CC_PARAMS))) /* Add various flavours of parameters. */ - dumphashtable(paramtab, t); + dumphashtable(realparamtab, t); if ((t = cc->mask & CC_SHFUNCS)) /* Add shell functions. */ dumphashtable(shfunctab, t | (cc->mask & (CC_DISCMDS|CC_EXCMDS))); diff --git a/Src/Zle/complete.c b/Src/Zle/complete.c index 3643bf72f..96d58d380 100644 --- a/Src/Zle/complete.c +++ b/Src/Zle/complete.c @@ -1314,15 +1314,14 @@ addcompparams(struct compparam *cp, Param *pp) Param pm = createparam(cp->name, cp->type |PM_SPECIAL|PM_REMOVABLE|PM_LOCAL); if (!pm) - pm = (Param) paramtab->getnode(paramtab, cp->name); - DPUTS(!pm, "param not set in addcompparams"); + pm = (Param) paramtab->getnode2(paramtab, cp->name); + DPUTS1(!pm, "param %s not set in addcompparams", cp->name); *pp = pm; pm->level = locallevel + 1; if ((pm->u.data = cp->var)) { switch(PM_TYPE(cp->type)) { case PM_SCALAR: - case PM_NAMEREF: pm->gsu.s = &compvarscalar_gsu; break; case PM_INTEGER: @@ -1347,23 +1346,21 @@ void makecompparams(void) { Param cpm; - HashTable tht; addcompparams(comprparams, comprpms); if (!(cpm = createparam( COMPSTATENAME, PM_SPECIAL|PM_REMOVABLE|PM_SINGLE|PM_LOCAL|PM_HASHED))) - cpm = (Param) paramtab->getnode(paramtab, COMPSTATENAME); - DPUTS(!cpm, "param not set in makecompparams"); + cpm = (Param) realparamtab->getnode2(realparamtab, COMPSTATENAME); + DPUTS1(!cpm, "param %s not set in makecompparams", COMPSTATENAME); comprpms[CPN_COMPSTATE] = cpm; - tht = paramtab; cpm->level = locallevel + 1; cpm->gsu.h = &compstate_gsu; cpm->u.hash = paramtab = newparamtable(31, COMPSTATENAME); addcompparams(compkparams, compkpms); - paramtab = tht; + paramtab = realparamtab; } /**/ diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c index f7d74ec7a..e8a6b6422 100644 --- a/Src/Zle/compresult.c +++ b/Src/Zle/compresult.c @@ -1082,7 +1082,7 @@ do_single(Cmatch m) } else n = p + 1; - if ((pm = (Param) paramtab->getnode(paramtab, n)) && + if ((pm = (Param) realparamtab->getnode(realparamtab, n)) && PM_TYPE(pm->node.flags) != PM_SCALAR) tryit = 0; } diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index ea88a4247..0e581365f 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -1867,7 +1867,7 @@ bin_vared(char *name, char **args, Options ops, UNUSED(int func)) createparam(args[0], type); } queue_signals(); - pm = (Param) paramtab->getnode(paramtab, args[0]); + pm = (Param) realparamtab->getnode(realparamtab, args[0]); if (pm && (PM_TYPE(pm->node.flags) & (PM_ARRAY|PM_HASHED))) { char **a; diff --git a/Src/Zle/zle_params.c b/Src/Zle/zle_params.c index 6ac7d4f0a..b828e145c 100644 --- a/Src/Zle/zle_params.c +++ b/Src/Zle/zle_params.c @@ -200,14 +200,13 @@ makezleparams(int ro) Param pm = createparam(zp->name, (zp->type |PM_SPECIAL|PM_REMOVABLE| PM_LOCAL|(ro ? PM_READONLY : 0))); if (!pm) - pm = (Param) paramtab->getnode(paramtab, zp->name); - DPUTS(!pm, "param not set in makezleparams"); + pm = (Param) realparamtab->getnode2(realparamtab, zp->name); + DPUTS1(!pm, "param %s not set in makezleparams", zp->name); pm->level = locallevel + 1; pm->u.data = zp->data; switch(PM_TYPE(zp->type)) { case PM_SCALAR: - case PM_NAMEREF: pm->gsu.s = zp->gsu; break; case PM_ARRAY: diff --git a/Src/Zle/zle_thingy.c b/Src/Zle/zle_thingy.c index f6c521d11..ce9639531 100644 --- a/Src/Zle/zle_thingy.c +++ b/Src/Zle/zle_thingy.c @@ -683,7 +683,8 @@ bin_zle_flags(char *name, char **args, UNUSED(Options ops), UNUSED(char func)) if (invicmdmode()) { startvichange(-1); if (zmod.flags & (MOD_MULT|MOD_TMULT)) { - Param pm = (Param) paramtab->getnode(paramtab, "NUMERIC"); + Param pm = (Param) + realparamtab->getnode2(realparamtab, "NUMERIC"); if (pm && pm->node.flags & PM_SPECIAL) pm->node.flags &= ~PM_UNSET; } diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 3e46acdab..8f8776da3 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -437,8 +437,8 @@ checkparams(char *p) int t0, n, l = strlen(p), e = 0; struct hashnode *hn; - for (t0 = paramtab->hsize - 1, n = 0; n < 2 && t0 >= 0; t0--) - for (hn = paramtab->nodes[t0]; n < 2 && hn; hn = hn->next) + for (t0 = realparamtab->hsize - 1, n = 0; n < 2 && t0 >= 0; t0--) + for (hn = realparamtab->nodes[t0]; n < 2 && hn; hn = hn->next) if (pfxlen(p, hn->nam) == l) { n++; if ((int)strlen(hn->nam) == l) @@ -1512,7 +1512,8 @@ get_comp_string(void) zlemetacs_qsub - wb) { s = NULL; inwhat = IN_MATH; - if ((keypm = (Param) paramtab->getnode(paramtab, varname)) && + if ((keypm = (Param) + realparamtab->getnode(realparamtab, varname)) && (keypm->node.flags & PM_HASHED)) insubscr = 2; else @@ -1612,7 +1613,8 @@ get_comp_string(void) zsfree(varname); varname = ztrdup(nb); *ne = sav; - if ((keypm = (Param) paramtab->getnode(paramtab, varname)) && + if ((keypm = (Param) + realparamtab->getnode(realparamtab, varname)) && (keypm->node.flags & PM_HASHED)) insubscr = 2; } @@ -1693,7 +1695,8 @@ get_comp_string(void) if (wptr < sqbr) { zsfree(varname); varname = ztrduppfx(wptr, sqbr - wptr); - if ((keypm = (Param) paramtab->getnode(paramtab, varname)) && + if ((keypm = (Param) + realparamtab->getnode(realparamtab, varname)) && (keypm->node.flags & PM_HASHED)) { if (insubscr != 3) insubscr = 2; |
