mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-07 02:32:27 +02:00
commit bash-20180427 snapshot
This commit is contained in:
+1
-1
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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*>
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
set -o posix
|
||||
fn() { foo=abc : ; typeset +x foo; printenv|grep ^foo=; }
|
||||
|
||||
fn
|
||||
Reference in New Issue
Block a user