52985: avoid adding original param to restorelist

This commit is contained in:
Jun-ichi Takimoto 2024-07-04 11:51:09 +09:00
parent da733f5df6
commit 2a54de1675
2 changed files with 7 additions and 4 deletions

View file

@ -1,3 +1,7 @@
2024-07-04 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* 52985: Src/exec.c: avoid adding original param to restorelist
2024-06-24 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* 52968: Doc/Makefile.in: use pdfroff to create intro.pdf

View file

@ -4409,7 +4409,7 @@ save_params(Estate state, Wordcode pc, LinkList *restore_p, LinkList *remove_p)
while (wc_code(ac = *pc) == WC_ASSIGN) {
s = ecrawstr(state->prog, pc + 1, NULL);
if ((pm = (Param) paramtab->getnode(paramtab, s))) {
Param tpm;
Param tpm = NULL;
if (pm->env)
delenv(pm);
if (!(pm->node.flags & PM_SPECIAL)) {
@ -4426,7 +4426,6 @@ save_params(Estate state, Wordcode pc, LinkList *restore_p, LinkList *remove_p)
tpm = (Param) zshcalloc(sizeof *tpm);
tpm->node.nam = ztrdup(pm->node.nam);
copyparam(tpm, pm, 0);
pm = tpm;
} else if (!(pm->node.flags & PM_READONLY) &&
(unset(RESTRICTED) || !(pm->node.flags & PM_RESTRICTED))) {
/*
@ -4437,10 +4436,10 @@ save_params(Estate state, Wordcode pc, LinkList *restore_p, LinkList *remove_p)
tpm = (Param) hcalloc(sizeof *tpm);
tpm->node.nam = pm->node.nam;
copyparam(tpm, pm, 1);
pm = tpm;
}
addlinknode(*remove_p, dupstring(s));
addlinknode(*restore_p, pm);
if (tpm)
addlinknode(*restore_p, tpm);
} else
addlinknode(*remove_p, dupstring(s));