ash: expand: Fixed "$@" expansion when EXP_FULL is false
Upstream commit: Date: Thu, 1 Jan 2015 07:53:10 +1100 expand: Fixed "$@" expansion when EXP_FULL is false The commit 3c06acdac0b1ba0e0acdda513a57ee6e31385dce ([EXPAND] Split unquoted $@/$* correctly when IFS is set but empty) broke the case where $@ is in quotes and EXP_FULL is false. In that case we should still emit IFS as field splitting is not performed. Reported-by: Juergen Daubert <jue@jue.li> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@ -22,4 +22,20 @@ Testing: IFS="" "$*"
|
||||
Testing: IFS="" "$@"
|
||||
.abc.
|
||||
.d e.
|
||||
Testing: !IFS v=$*
|
||||
v='abc d e'
|
||||
Testing: !IFS v=$@
|
||||
v='abc d e'
|
||||
Testing: !IFS v="$*"
|
||||
v='abc d e'
|
||||
Testing: !IFS v="$@"
|
||||
v='abc d e'
|
||||
Testing: IFS="" v=$*
|
||||
v='abcd e'
|
||||
Testing: IFS="" v=$@
|
||||
v='abcd e'
|
||||
Testing: IFS="" v="$*"
|
||||
v='abcd e'
|
||||
Testing: IFS="" v="$@"
|
||||
v='abcd e'
|
||||
Finished
|
||||
|
@ -18,4 +18,25 @@ IFS=""; for a in "$*"; do echo ".$a."; done
|
||||
echo 'Testing: IFS="" "$@"'
|
||||
IFS=""; for a in "$@"; do echo ".$a."; done
|
||||
|
||||
echo 'Testing: !IFS v=$*'
|
||||
unset IFS; v=$*; echo "v='$v'"
|
||||
echo 'Testing: !IFS v=$@'
|
||||
unset IFS; v=$@; echo "v='$v'"
|
||||
echo 'Testing: !IFS v="$*"'
|
||||
unset IFS; v="$*"; echo "v='$v'"
|
||||
echo 'Testing: !IFS v="$@"'
|
||||
unset IFS; v="$@"; echo "v='$v'"
|
||||
|
||||
echo 'Testing: IFS="" v=$*'
|
||||
IFS=""; v=$*; echo "v='$v'"
|
||||
echo 'Testing: IFS="" v=$@'
|
||||
IFS=""; v=$@; echo "v='$v'"
|
||||
echo 'Testing: IFS="" v="$*"'
|
||||
IFS=""; v="$*"; echo "v='$v'"
|
||||
echo 'Testing: IFS="" v="$@"'
|
||||
IFS=""; v="$@"; echo "v='$v'"
|
||||
|
||||
# Note: in IFS="" v=$@ and IFS="" v="$@" cases, bash produces "abc d e"
|
||||
# We produce "abcd e"
|
||||
|
||||
echo Finished
|
||||
|
Reference in New Issue
Block a user