From d946f22a4cd2eed0f3a67881cfa57c805703929c Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Wed, 14 Aug 2019 15:16:59 +0100
Subject: 44664: Fix problem with temporary assignment. "foo=bar builtin"
inside a function lost any variable from enclosing scope.
---
Src/params.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'Src/params.c')
diff --git a/Src/params.c b/Src/params.c
index 1499e3a40..a253a9d8e 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1124,8 +1124,10 @@ copyparam(Param tpm, Param pm, int fakecopy)
tpm->base = pm->base;
tpm->width = pm->width;
tpm->level = pm->level;
- if (!fakecopy)
+ if (!fakecopy) {
+ tpm->old = pm->old;
tpm->node.flags &= ~PM_SPECIAL;
+ }
switch (PM_TYPE(pm->node.flags)) {
case PM_SCALAR:
tpm->u.str = ztrdup(pm->gsu.s->getfn(pm));
--
cgit 1.4.1