diff options
| author | Bart Schaefer <schaefer@zsh.org> | 2023-02-12 11:29:10 -0800 |
|---|---|---|
| committer | Bart Schaefer <schaefer@zsh.org> | 2023-02-12 11:29:10 -0800 |
| commit | 3e55a135c10d3582af22a3e6dc616f57ea212df8 (patch) | |
| tree | 0a36a3336c938f62686c1b98417484e3941b4111 /Src/Modules/parameter.c | |
| parent | 51362: Begin documentation for named references. (diff) | |
| download | zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.tar zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.tar.gz zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.tar.bz2 zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.tar.lz zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.tar.xz zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.tar.zst zsh-3e55a135c10d3582af22a3e6dc616f57ea212df8.zip | |
51374: Expose named references in $parameters, fix substitution error.
Diffstat (limited to 'Src/Modules/parameter.c')
| -rw-r--r-- | Src/Modules/parameter.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index 5bf675e2a..a659300fd 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -105,10 +105,15 @@ getpmparameter(UNUSED(HashTable ht), const char *name) pm->node.nam = dupstring(name); pm->node.flags = PM_SCALAR | PM_READONLY; pm->gsu.s = &nullsetscalar_gsu; - if ((rpm = (Param) realparamtab->getnode(realparamtab, name)) && - !(rpm->node.flags & PM_UNSET)) + if ((rpm = (Param) realparamtab->getnode2(realparamtab, name)) && + !(rpm->node.flags & PM_UNSET)) { pm->u.str = paramtypestr(rpm); - else { + if ((rpm->node.flags & PM_NAMEREF) && + (rpm = (Param) realparamtab->getnode(realparamtab, name)) && + !(rpm->node.flags & PM_UNSET)) { + pm->u.str = zhtricat(pm->u.str, "-", paramtypestr(rpm)); + } + } else { pm->u.str = dupstring(""); pm->node.flags |= (PM_UNSET|PM_SPECIAL); } |
