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') 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