hush: move towards more correct variable expansion

hush: fix a few cases in FOR v IN ... construct
      unfortunately, code growth is big - ~600 bytes
This commit is contained in:
Denis Vlasenko
2007-05-14 16:19:34 +00:00
parent 602d13cba5
commit 03eb8bf6ce
5 changed files with 407 additions and 66 deletions

View File

@@ -0,0 +1,40 @@
Testing: in x y z
.x.
.y.
.z.
Testing: in u $empty v
.u.
.v.
Testing: in u " $empty" v
.u.
. .
.v.
Testing: in u $empty $empty$a v
.u.
.a.
.v.
Testing: in $a_b
.a.
.b.
Testing: in $*
.abc.
.d.
.e.
Testing: in $@
.abc.
.d.
.e.
Testing: in -$*-
.-abc.
.d.
.e-.
Testing: in -$@-
.-abc.
.d.
.e-.
Testing: in $a_b -$a_b-
.a.
.b.
.-a.
.b-.
Finished

View File

@@ -0,0 +1,40 @@
if test $# = 0; then
exec "$THIS_SH" var_subst_in_for.tests abc "d e"
fi
echo 'Testing: in x y z'
for a in x y z; do echo ".$a."; done
echo 'Testing: in u $empty v'
empty=''
for a in u $empty v; do echo ".$a."; done
echo 'Testing: in u " $empty" v'
empty=''
for a in u " $empty" v; do echo ".$a."; done
echo 'Testing: in u $empty $empty$a v'
a='a'
for a in u $empty $empty$a v; do echo ".$a."; done
echo 'Testing: in $a_b'
a_b='a b'
for a in $a_b; do echo ".$a."; done
echo 'Testing: in $*'
for a in $*; do echo ".$a."; done
echo 'Testing: in $@'
for a in $@; do echo ".$a."; done
echo 'Testing: in -$*-'
for a in -$*-; do echo ".$a."; done
echo 'Testing: in -$@-'
for a in -$@-; do echo ".$a."; done
echo 'Testing: in $a_b -$a_b-'
a_b='a b'
for a in $a_b -$a_b-; do echo ".$a."; done
echo Finished