commit bash-20180427 snapshot

This commit is contained in:
Chet Ramey
2018-04-30 09:45:04 -04:00
parent fd01c588ad
commit 2afeb2af6a
101 changed files with 17433 additions and 13694 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
BUILD_DIR=/usr/local/build/chet/bash/bash-current
BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
+3
View File
@@ -35,3 +35,6 @@ for c in $'\1' $'\2' $'\177'; do
testmatch "x${c}" "\\x\\${c}"
testmatch "x${c}" "x\\${c}"
done
match() { case $1 in ( $2 ) ;; ( * ) return 1 ;; esac; }
match $'? *x\1y\177z' $'??\\*\\x\\\1\\y\\\177\\z' || echo bad 6
+3
View File
@@ -180,6 +180,9 @@ echo ${BASH_REMATCH[@]}
if [[ "123abc" == *?(a)bc ]]; then echo ok 42; else echo bad 42; fi
if [[ "123abc" == *?(a)bc ]]; then echo ok 43; else echo bad 43; fi
match() { [[ $1 == $2 ]]; }
match $'? *x\1y\177z' $'??\\*\\x\\\1\\y\\\177\\z' || echo bad 44
foo=""
[[ bar == *"${foo,,}"* ]] && echo ok 1
[[ bar == *${foo,,}* ]] && echo ok 2
+44 -1
View File
@@ -13,6 +13,49 @@ argv[1] = <a
0000004
ok 6
ok 7
invalid bracket expression
== LANG=C ==
[[:alpha:]
ok 1
[a
[[:alpha:]
ok 2
ok 3
== LANG=en_US.UTF-8 ==
[[:alpha:]
ok 1
[a
[[:alpha:]
ok 2
ok 3
invalid character class
== LANG=C ==
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
== LANG=en_US.UTF-8 ==
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
invalid collating symbols
== LANG=C ==
ok 1
ok 2
ok 3
ok 4
ok 5
== LANG=en_US.UTF-8 ==
ok 1
ok 2
ok 3
ok 4
ok 5
argv[1] = <a>
argv[2] = <abc>
argv[3] = <abd>
@@ -27,7 +70,7 @@ argv[2] = <abc>
argv[3] = <abd>
argv[4] = <abe>
tmp/l1 tmp/l2 tmp/*4 tmp/l3
./glob.tests: line 45: no match: tmp/*4
./glob.tests: line 46: no match: tmp/*4
argv[1] = <bdir/>
argv[1] = <*>
argv[1] = <a*>
+1
View File
@@ -10,6 +10,7 @@ expect()
# First, a test that bash-2.01.1 fails
${THIS_SH} ./glob1.sub
${THIS_SH} ./glob2.sub
${THIS_SH} ./glob3.sub
MYDIR=$PWD # save where we are
+123
View File
@@ -0,0 +1,123 @@
: ${TMPDIR:=/var/tmp}
cd $TMPDIR
matchfunc()
{
echo == LANG=$LANG ==
touch a p
echo [[:alpha:]
rm a p
case l in
[[:alpha:]) echo bad 1;;
*) echo ok 1;;
esac
touch '[a' '[x'
echo [[:alpha:]
rm '[a'
echo [[:alpha:]
rm '[x'
case [a in
[[:alpha:]) echo ok 2;;
*) echo bad 2;;
esac
case [x in
[[:alpha:]) echo bad 3;;
*) echo ok 3;;
esac
}
echo invalid bracket expression
export LANG=C
matchfunc
export LANG=en_US.UTF-8
matchfunc
unset -f matchfunc
matchfunc()
{
echo == LANG=$LANG ==
case a] in
[[:aleph:]]) echo bad 1;;
*) echo ok 1;;
esac
case a in
[[:aleph:]]) echo bad 2;;
*) echo ok 2;;
esac
case a] in
[[:"alpha":]]) echo bad 3;;
*) echo ok 3;;
esac
case a in
[[:"alpha":]]) echo bad 4;;
*) echo ok 4;;
esac
case a in
[abc[:foo:]]) echo ok 5;;
*) echo bad 5 ;;
esac
case a in
[[:foo:]abc]) echo ok 6;;
*) echo bad 6 ;;
esac
}
echo invalid character class
export LANG=C
matchfunc
export LANG=en_US.UTF-8
matchfunc
unset -f matchfunc
matchfunc()
{
echo == LANG=$LANG ==
case h in
[[.hyphen.]) echo bad 1;;
*) echo ok 1;;
esac
case - in
[[.hyphen.]]) echo ok 2;;
*) echo bad 2;;
esac
case slash in
[[.slash.]]) echo bad 3;;
*) echo ok 3;;
esac
case a in
[abc[.nonsense.]]) echo ok 4;;
*) echo bad 4 ;;
esac
case a in
[[.nonsense.]abc]) echo ok 5;;
*) echo bad 5 ;;
esac
}
echo invalid collating symbols
export LANG=C
matchfunc
export LANG=en_US.UTF-8
matchfunc
+4 -3
View File
@@ -20,13 +20,15 @@ case 9 in
[![:alpha:]]) echo ok 4;;
esac
# invalid character class expressions are just characters to be matched
case a in
[:al:]) echo ok 5;;
esac
# invalid character class expressions are no longer just characters to be
# matched
case a in
[[:al:]) echo ok 6;;
[[:al:]) echo bad 6;;
*) echo ok 6;;
esac
case '!' in
@@ -230,4 +232,3 @@ case a in
[[=b=]) echo oops;; # an incomplete equiv class is just a string
*) echo ok 3;;
esac
+3
View File
@@ -231,5 +231,8 @@ ${THIS_SH} ./varenv10.sub
# tests of compound assignments in function scope
${THIS_SH} ./varenv11.sub
# temporary environment variable propagation in posix mode
${THIS_SH} ./varenv12.sub
# make sure variable scoping is done right
tt() { typeset a=b;echo a=$a; };a=z;echo a=$a;tt;echo a=$a
+4
View File
@@ -0,0 +1,4 @@
set -o posix
fn() { foo=abc : ; typeset +x foo; printenv|grep ^foo=; }
fn