diff options
author | Peter Stephenson <p.stephenson@samsung.com> | 2019-08-14 15:16:59 +0100 |
---|---|---|
committer | Peter Stephenson <p.stephenson@samsung.com> | 2019-08-14 15:16:59 +0100 |
commit | d946f22a4cd2eed0f3a67881cfa57c805703929c (patch) | |
tree | 2f8bb4ca14cd15f5c8d61d2d2a6408a9c14534c3 /Src | |
parent | 4fae52572699770fdf4af6bc94d8b219cb401ad2 (diff) | |
download | zsh-d946f22a4cd2eed0f3a67881cfa57c805703929c.tar.gz zsh-d946f22a4cd2eed0f3a67881cfa57c805703929c.tar.xz zsh-d946f22a4cd2eed0f3a67881cfa57c805703929c.zip |
44664: Fix problem with temporary assignment.
"foo=bar builtin" inside a function lost any variable from enclosing scope.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/params.c | 4 |
1 files changed, 3 insertions, 1 deletions
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)); |