commit bash-20160722 snapshot

This commit is contained in:
Chet Ramey
2016-08-03 15:37:14 -04:00
parent 7fa3190622
commit 13eae87b0c
16 changed files with 319 additions and 34 deletions
+5
View File
@@ -220,6 +220,11 @@ ${THIS_SH} ./dollar-at-star5.sub
${THIS_SH} ./dollar-at-star6.sub
${THIS_SH} ./dollar-at-star7.sub
# tests for expansions of $@ and ${a[@]} (vs. $* and ${a[*]}) on the RHS of
# assignment statements with non-default IFS: $@ expands to args or array
# members separated by spaces
${THIS_SH} ./dollar-at-star8.sub
# tests for special expansion of "$*" and "${array[*]}" when used with other
# expansions -- bugs through bash-2.05b
${THIS_SH} ./dollar-star1.sub
+14
View File
@@ -0,0 +1,14 @@
function f {
typeset -a a
a=("$@")
typeset IFS=,
typeset a1="${a[@]} ${a[*]} $@ $* ${@} ${*}"
typeset a2=${a[@]}\ ${a[*]}\ $@\ $*\ ${@}\ ${*} a3 a4
a3="${a[@]} ${a[*]} $@ $* ${@} ${*}"
a4=${a[@]}\ ${a[*]}\ $@\ $*\ ${@}\ ${*}
unset -v IFS
printf '%s\n' "a1=$a1" "a2=$a2" "a3=$a3" "a4=$a4"
}
echo
f a b c
+5
View File
@@ -294,6 +294,11 @@ argv[3] = <'c'>
|is|
|a|
|test|
a1=a b c a,b,c a b c a,b,c a b c a,b,c
a2=a b c a,b,c a b c a,b,c a b c a,b,c
a3=a b c a,b,c a b c a,b,c a b c a,b,c
a4=a b c a,b,c a b c a,b,c a b c a,b,c
xa|xb|xc
xa|xb|xc
a|b|c
+100
View File
@@ -234,3 +234,103 @@ declare -a array=([0]=$'x\001y\177z')
argv[1] = <x^Ay^?z>
declare -a array=([0]=$'x\001y\177z')
declare -A array=([$'x\001y\177z']=$'a\242b\002c' )
abc
def
ghi
jkl
abc def ghi jkl
xxabc
def
ghi
jklyy
xxabc def ghi jklyy
abc
def
ghi
jkl
abc
def ghi
jkl
abc
def ghi
jkl
abc
def ghi
jkl
xxabc
def
ghi
jklyy
xxabc
def ghi
jklyy
abc
def
ghi
jklabc
def
ghi
jkl
abc
def ghi
jklabc
def ghi
jkl
abc:def ghi:jkl
abc:def ghi:jkl
abc:def ghi:jkl
abc
def ghi
jkl
abc:def ghi:jkl
abc:def ghi:jkl
abc
def ghi
jkl
var=abc:def ghi:jkl
abc:def ghi:jkl
var=abc:def ghi:jkl
abcdef ghijkl
abcdef ghijkl
abcdef ghijkl
abcdef ghijkl
abcdef ghijkl
abcdef ghijkl
abcdef ghijkl
var=abcdef ghijkl
abcdef ghijkl
var=abcdef ghijkl
abc
def ghi
jkl
abc def ghi jkl
abc def ghi jkl
abc def ghi jkl
abc
def
ghi
jkl
abc def ghi jkl
abc def ghi jkl
abc
def
ghi
jkl
var=abc def ghi jkl
abc def ghi jkl
var=abc def ghi jkl
abc
def ghi
jkl
[foo]
[]
[foo]
[]
[foo]
[foo]
[foo]
[]
[foo]
[]
[foo]
[]
+1
View File
@@ -404,3 +404,4 @@ ${THIS_SH} ./exp5.sub
${THIS_SH} ./exp6.sub
${THIS_SH} ./exp7.sub
${THIS_SH} ./exp8.sub
${THIS_SH} ./exp9.sub
+69
View File
@@ -0,0 +1,69 @@
# expansion test cases from Posix interp 888
set "abc" "def ghi" "jkl"
unset novar
IFS=' ' # a space
printf '%s\n' $*
printf '%s\n' "$*"
printf '%s\n' xx$*yy
printf '%s\n' "xx$*yy"
printf '%s\n' $@
printf '%s\n' "$@"
printf '%s\n' ${1+"$@"}
printf '%s\n' ${novar-"$@"}
printf '%s\n' xx$@yy
printf '%s\n' "xx$@yy"
printf '%s\n' $@$@
printf '%s\n' "$@$@"
IFS=':'
printf '%s\n' "$*"
var=$*; printf '%s\n' "$var"
var="$*"; printf '%s\n' "$var"
unset var
printf '%s\n' ${var-$*}
printf '%s\n' "${var-$*}"
printf '%s\n' ${var-"$*"}
printf '%s\n' ${var=$*}
printf 'var=%s\n' "$var"
unset var
printf '%s\n' "${var=$*}"
printf 'var=%s\n' "$var"
IFS='' # null
printf '%s\n' "$*"
var=$*; printf '%s\n' "$var"
var="$*"; printf '%s\n' "$var"
unset var
printf '%s\n' ${var-$*}
printf '%s\n' "${var-$*}"
printf '%s\n' ${var-"$*"}
printf '%s\n' ${var=$*}
printf 'var=%s\n' "$var"
unset var
printf '%s\n' "${var=$*}"
printf 'var=%s\n' "$var"
printf '%s\n' "$@"
unset IFS
printf '%s\n' "$*"
var=$*; printf '%s\n' "$var"
var="$*"; printf '%s\n' "$var"
unset var
printf '%s\n' ${var-$*}
printf '%s\n' "${var-$*}"
printf '%s\n' ${var-"$*"}
printf '%s\n' ${var=$*}
printf 'var=%s\n' "$var"
unset var
printf '%s\n' "${var=$*}"
printf 'var=%s\n' "$var"
printf '%s\n' "$@"
set --
printf '[%s]\n' foo "$*"
printf '[%s]\n' foo "$novar$*$(echo)"
printf '[%s]\n' foo $@
printf '[%s]\n' foo "$@"
printf '[%s]\n' foo ''$@
printf '[%s]\n' foo ''"$@"
printf '[%s]\n' foo ''"$novar$@$(echo)"