ash: an unset dynamic variable should not be dynamic

Commit b28d4c346 (ash: [VAR] Move unsetvar functionality into setvareq)
dropped the code that caused dynamic variables to lose their special
properties when unset.  Add it back again.

function                                             old     new   delta
setvareq                                             346     360     +14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 14/0)               Total: 14 bytes

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Ron Yorston 2019-04-15 10:49:35 +01:00 committed by Denys Vlasenko
parent a81700bc08
commit d96c69d876

View File

@ -2364,6 +2364,10 @@ setvareq(char *s, int flags)
}
flags |= vp->flags & ~(VTEXTFIXED|VSTACK|VNOSAVE|VUNSET);
#if ENABLE_ASH_RANDOM_SUPPORT
if (flags & VUNSET)
flags &= ~VDYNAMIC;
#endif
} else {
/* variable s is not found */
if (flags & VNOSET)