ash: [VAR] Move unsetvar functionality into setvareq
Upstream commit: Date: Tue, 25 May 2010 20:55:05 +0800 [VAR] Move unsetvar functionality into setvareq This patch moves the unsetvar code into setvareq so that we can no have a pathological case of an unset variable hanging around unless it has a bit pinning it like VEXPORT. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> function old new delta setvareq 227 303 +76 expmeta 517 521 +4 localcmd 364 366 +2 unsetcmd 96 76 -20 unsetvar 129 7 -122 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/2 up/down: 82/-142) Total: -60 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -10,4 +10,4 @@ Fail:2
|
||||
./readonly0.tests: export: line 27: a: is read only
|
||||
Fail:2
|
||||
|
||||
Fail:1
|
||||
./readonly0.tests: unset: line 44: a: is read only
|
||||
|
17
shell/ash_test/ash-vars/unset.right
Normal file
17
shell/ash_test/ash-vars/unset.right
Normal file
@@ -0,0 +1,17 @@
|
||||
./unset.tests: unset: line 3: -: bad variable name
|
||||
2
|
||||
./unset.tests: unset: line 5: illegal option -m
|
||||
2
|
||||
0
|
||||
___
|
||||
0 f g
|
||||
0 g
|
||||
0
|
||||
___
|
||||
0 f g
|
||||
0
|
||||
0 f g
|
||||
0
|
||||
___
|
||||
./unset.tests: unset: line 36: VAR_RO: is read only
|
||||
2 f g
|
40
shell/ash_test/ash-vars/unset.tests
Executable file
40
shell/ash_test/ash-vars/unset.tests
Executable file
@@ -0,0 +1,40 @@
|
||||
# check invalid options are rejected
|
||||
# bash: in posix mode, aborts if non-interactive; using subshell to avoid that
|
||||
(unset -)
|
||||
echo $?
|
||||
(unset -m a b c)
|
||||
echo $?
|
||||
|
||||
# check funky usage
|
||||
unset
|
||||
echo $?
|
||||
|
||||
# check normal usage
|
||||
echo ___
|
||||
f=f g=g
|
||||
echo $? $f $g
|
||||
unset f
|
||||
echo $? $f $g
|
||||
unset g
|
||||
echo $? $f $g
|
||||
|
||||
echo ___
|
||||
f=f g=g
|
||||
echo $? $f $g
|
||||
unset f g
|
||||
echo $? $f $g
|
||||
f=f g=g
|
||||
echo $? $f $g
|
||||
unset -v f g
|
||||
echo $? $f $g
|
||||
|
||||
# check read only vars
|
||||
echo ___
|
||||
f=f g=g
|
||||
VAR_RO=1
|
||||
readonly VAR_RO
|
||||
(unset VAR_RO)
|
||||
echo $? $f $g
|
||||
# not testing "do variables survive error halfway through unset" since unset aborts
|
||||
# unset f VAR_RO g
|
||||
#echo $? $f $g
|
Reference in New Issue
Block a user