commit bash-20170407 snapshot

This commit is contained in:
Chet Ramey
2017-04-10 16:25:57 -04:00
parent 7c4ef411b5
commit 1a5fa30baf
43 changed files with 14065 additions and 13436 deletions
+11
View File
@@ -25,3 +25,14 @@ ok 8
ok 9
mysterious 1
mysterious 2
argv[1] = <\a\b\c\^A\d\e\f>
argv[1] = <\a\b\c\^A\d\e\f>
argv[1] = <abc^Adef>
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
+1
View File
@@ -51,3 +51,4 @@ case " " in ( [" "] ) echo ok;; ( * ) echo no;; esac
# tests of quote removal and pattern matching
${THIS_SH} ./case1.sub
${THIS_SH} ./case2.sub
+52
View File
@@ -0,0 +1,52 @@
x=$'\\a\\b\\c\\\001\\d\\e\\f'
y='\a\b\c\\d\e\f'
z=$'abc\001def'
recho "$x"
recho "$y"
recho "$z"
case $'abc\001def' in
$x) echo ok 1 ;;
*) echo oops 1;;
esac
case $z in
$x) echo ok 2 ;;
*) echo oops 2;;
esac
case $'abc\001def' in
$y) echo ok 3 ;;
*) echo oops 3;;
esac
case $z in
$y) echo ok 4 ;;
*) echo oops 4;;
esac
# no backslash before \001
x=$'\\a\\b\\c\001\\d\\e\\f'
y='\a\b\c\d\e\f'
case $'abc\001def' in
$x) echo ok 5 ;;
*) echo oops 5;;
esac
case $z in
$x) echo ok 6 ;;
*) echo oops 6;;
esac
case $'abc\001def' in
$y) echo ok 7 ;;
*) echo oops 7;;
esac
case $z in
$y) echo ok 8 ;;
*) echo oops 8;;
esac
+43
View File
@@ -210,11 +210,13 @@ argv[1] = <correct>
argv[2] = <a>
argv[1] = <correct>
argv[2] = <a>
./exp7.sub: line 5: INFORM: dequote_string: string with bare CTLESC
argv[1] = <^A>
argv[1] = <3>
argv[2] = <^C>
argv[3] = <^C>
argv[4] = <^C>
./exp7.sub: line 10: INFORM: dequote_string: string with bare CTLESC
argv[1] = <^A>
argv[1] = <x^Ay^?z>
argv[1] = <x^Ay^?z>
@@ -345,3 +347,44 @@ jkl
< A >< B >< a >< b >
< A >< B >< A >< B >
< A >< B ><' A '><' B '>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <a b>
argv[1] = <a>
argv[2] = <b>
argv[1] = <a b>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <12>
argv[1] = <12>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = < >
argv[1] = <12>
argv[1] = <12>
argv[1] = <12>
argv[1] = <12>
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
+1
View File
@@ -406,3 +406,4 @@ ${THIS_SH} ./exp7.sub
${THIS_SH} ./exp8.sub
${THIS_SH} ./exp9.sub
${THIS_SH} ./exp10.sub
${THIS_SH} ./exp11.sub
+92
View File
@@ -0,0 +1,92 @@
set -- '1 2'
unset var
recho ${var-${*:1}}
unset var
recho ${var=$*}
unset var
recho ${var=${*:1}}
recho "$var"
# posix interp 221
unset var
recho ${var:-a\ b}
recho ${var:=a\ b}
recho "$var"
set -- 1 2
IFS=
unset a b c
recho $*
recho ${a-$*}
recho ${b-${*/}}
recho ${c=${*/}}
recho "$c"
recho ${b-${*,,}}
recho ${d-${*,,}}
unset -v a b c
IFS=$' \t\n'
set -- ' '
A=(' ')
IFS=
unset var
var=${*@E}
recho "$var"
unset var
var=${A[*]@E}
recho "$var"
unset var
var=${@@E}
recho "$var"
unset var
var=${A[@]@E}
recho "$var"
unset novar
recho ${novar-${A[*]@E}}
unset -v var novar
IFS=$' \t\n'
set -- 1 2
A=( 1 2 )
IFS=
a=$*
recho "$a"
b=${*@E}
recho "$b"
unset a b
a=${A[*]}
recho "$a"
b=${A[*]@E}
recho "$b"
set -- $'\t'
A=$1
IFS=$1
[[ ${A[@]} ]] && echo ok 1
[[ ${A[*]} ]] && echo ok 2
[[ ${A[0]} ]] && echo ok 3
IFS=$' \t\n'
[[ ${A[@]} ]] && echo ok 4
[[ ${A[*]} ]] && echo ok 5
[[ ${A[0]} ]] && echo ok 6
IFS=
[[ ${A[@]} ]] && echo ok 7
[[ ${A[*]} ]] && echo ok 8
[[ ${A[0]} ]] && echo ok 9
+71 -2
View File
@@ -37,5 +37,74 @@ argv[1] = <'bar>
argv[1] = <foo 'bar baz>
argv[1] = <}z>
argv[1] = <''z}>
./posixexp.tests: line 77: unexpected EOF while looking for matching `}'
./posixexp.tests: line 78: syntax error: unexpected end of file
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <12>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <1>
argv[2] = <2>
argv[1] = <1 2>
argv[1] = <12>
argv[1] = <12>
argv[1] = <12>
argv[1] = <12>
normal IFS
argv[1] = <abc>
argv[2] = <def>
argv[3] = <ghi>
argv[4] = <jkl>
argv[1] = <abc>
argv[2] = <def>
argv[3] = <ghi>
argv[4] = <jkl>
argv[1] = <abc>
argv[2] = <def>
argv[3] = <ghi>
argv[4] = <jkl>
null IFS
argv[1] = < abc>
argv[2] = <def ghi>
argv[3] = <jkl >
argv[1] = < abc def ghi jkl >
argv[1] = < abc>
argv[2] = <def ghi>
argv[3] = <jkl >
non-standard IFS
argv[1] = < abc>
argv[2] = <def ghi>
argv[3] = <jkl >
argv[1] = < abc def ghi jkl >
argv[1] = < abc def ghi jkl >
unset IFS
argv[1] = < abc>
argv[2] = <def ghi>
argv[3] = <jkl >
argv[1] = < abc def ghi jkl >
argv[1] = < abc def ghi jkl >
./posixexp.tests: line 80: unexpected EOF while looking for matching `}'
./posixexp.tests: line 81: syntax error: unexpected end of file
+3
View File
@@ -72,6 +72,9 @@ ${THIS_SH} ./posixexp1.sub || echo "bash posixexp1.sub: test $? failed"
THIS_SH=$TMPDIR/sh ${THIS_SH} ./posixexp2.sub || echo "sh posixexp2.sub: test $? failed"
rm -f $TMPDIR/sh
${THIS_SH} ./posixexp3.sub
${THIS_SH} ./posixexp4.sub
# this will be an error
foo=bar
echo "${foo:-"a}"
+35
View File
@@ -0,0 +1,35 @@
set -- 1 2
unset var
recho ${var-$@}
recho ${var-"$@"}
recho ${var-$*}
recho ${var-"$*"}
unset -v a b c d
recho ${a=$@}
recho "$a"
recho ${b="$@"}
recho "$b"
recho ${c=$*}
recho "$c"
recho ${d="$*"}
recho "$d"
IFS=
unset var
recho ${var-$@}
recho ${var-"$@"}
recho ${var-$*}
recho ${var-"$*"}
unset -v a b c d
# Posix interp 221
recho ${a=$@}
recho "$a"
recho ${b="$@"}
recho "$b"
recho ${c=$*}
recho "$c"
recho ${d="$*"}
recho "$d"
+31
View File
@@ -0,0 +1,31 @@
set -- ' abc' 'def ghi' 'jkl '
echo normal IFS
recho $@
: ${var=$@}
recho $var
unset -v var
recho ${var-$@}
echo null IFS
IFS=
recho $@
: ${var=$@}
recho $var
unset -v var
recho ${var-$@}
echo non-standard IFS
IFS=:
recho $@
: ${var=$@}
recho $var
unset -v var
recho ${var-$@} # this is inconsistent
echo unset IFS
recho $@
: ${var=$@}
recho $var
unset -v var
recho ${var-$@}