diff options
author | Bart Schaefer <schaefer@ipost.com> | 2020-12-04 15:09:14 -0800 |
---|---|---|
committer | Bart Schaefer <schaefer@ipost.com> | 2021-04-13 21:18:35 -0700 |
commit | 733c166115841e42c39a5a11fed0a3e79b12d7d1 (patch) | |
tree | 99d009a11ac4ae3bf81b1e300d5721f7b48eb883 | |
parent | ec4093659ba316e8fb1ba0559457c72ba450ca99 (diff) | |
download | zsh-733c166115841e42c39a5a11fed0a3e79b12d7d1.tar.gz zsh-733c166115841e42c39a5a11fed0a3e79b12d7d1.tar.xz zsh-733c166115841e42c39a5a11fed0a3e79b12d7d1.zip |
Additional tied-array cleanup when tied scalar had a previous value
-rw-r--r-- | Src/builtin.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Src/builtin.c b/Src/builtin.c index 68ebead7e..fff0b641f 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -2933,11 +2933,11 @@ bin_typeset(char *name, char **argv, LinkList assigns, Options ops, int func) if (asg->value.array) { int flags = (asg->flags & ASG_KEY_VALUE) ? ASSPM_KEY_VALUE : 0; assignaparam(asg->name, zlinklist2array(asg->value.array, 1), flags); - } else if (oldval) - assignsparam(asg0.name, oldval, 0); - else /*if (asg0.value.scalar)*/ { + } else /*if (asg0.value.scalar || oldval)*/ { /* We have to undo what we did wrong with asg2 */ apm->node.flags &= ~PM_DECLAREDNULL; + if (oldval) + assignsparam(asg0.name, oldval, 0); } unqueue_signals(); |