summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Src/builtin.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index 691734221..68ebead7e 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -2890,6 +2890,8 @@ bin_typeset(char *name, char **argv, LinkList assigns, Options ops, int func)
*
* Don't attempt to set it yet, it's too early
* to be exported properly.
+ *
+ * This creates the array with PM_DECLAREDNULL.
*/
asg2.name = asg->name;
asg2.flags = 0;
@@ -2933,6 +2935,10 @@ bin_typeset(char *name, char **argv, LinkList assigns, Options ops, int func)
assignaparam(asg->name, zlinklist2array(asg->value.array, 1), flags);
} else if (oldval)
assignsparam(asg0.name, oldval, 0);
+ else /*if (asg0.value.scalar)*/ {
+ /* We have to undo what we did wrong with asg2 */
+ apm->node.flags &= ~PM_DECLAREDNULL;
+ }
unqueue_signals();
return 0;