Bash-4.3 distribution sources and documentation
[platform/upstream/bash.git] / tests / new-exp.tests
index e0c2702..e48ac3d 100644 (file)
@@ -212,9 +212,9 @@ recho ${av[1]/??/za}
 expect '<zaza>'
 recho ${av[1]//??/za}
 expect '<zagh>'
-recho ${av[1]//#??/za}
+recho ${av[1]/#??/za}
 expect '<efza>'
-recho ${av[1]//%??/za}
+recho ${av[1]/%??/za}
 
 expect '<yyy> <yyy> <yyy> <yyy> <yyy> <yyy>'
 recho ${av[@]/*/yyy}
@@ -238,17 +238,17 @@ recho ${@/%??/xx}
 expect '<zaza>'
 recho ${3//??/za}
 expect '<efza>'
-recho ${3//%??/za}
+recho ${3/%??/za}
 expect '<zaza> <zaza> <zaza> <zaza> <zaza> <zaza>'
 recho ${@//??/za}
 expect '<zacd> <zagh> <zakl> <zaop> <zast> <zawx>'
-recho ${@//#??/za}
+recho ${@/#??/za}
 expect '<yyy> <yyy> <yyy> <yyy> <yyy> <yyy>'
 recho ${@//*/yyy}
 expect '<yyy> <efgh> <ijkl> <mnop> <qrst> <uvwx>'
 recho ${@//a*/yyy}
 expect '<abcd> <efgh> <ijkl> <mnop> <qrst> <uvwyyy>'
-recho ${@//%x*/yyy}
+recho ${@/%x*/yyy}
 
 expect a newline
 echo $abmcde
@@ -417,8 +417,10 @@ recho $c
 c=${var:4}
 expect nothing
 recho $c
-expect '<./new-exp.tests: -2: substring expression < 0>'
+# as of bash-4.2, negative LENGTH means offset from the end
 c=${var:0:-2}
+expect '<a>'
+recho $c
 
 var=abcdefghi
 c=${var:3:12}
@@ -548,11 +550,35 @@ var=blah
 # these had better agree
 echo ${var[@]:3}
 echo ${var:3}
-echo ${var[@]//#/--}
-echo ${var//#/--}
+echo ${var[@]/#/--}
+echo ${var/#/--}
 echo ${var[@]##?}
 echo ${var##?}
 
+unset var
+var=(abcde abcfg abchi)
+
+# problems with anchoring pattern replacements
+echo ${var[*]//#abc/foo}
+echo ${var[*]/#abc/foo}
+unset var
+
+${THIS_SH} ./new-exp6.sub
+
+${THIS_SH} ./new-exp7.sub
+
+${THIS_SH} ./new-exp8.sub
+
+# tests to check whether things like indirect expansion of a variable whose
+# value is 'anothervar[@]' stop working
+${THIS_SH} ./new-exp9.sub
+
+# problems with stray CTLNUL in bash-4.0-alpha
+unset a
+a=/a
+recho "/${a%/*}"
+recho "/${a///a/}"
+
 # this must be last!
 expect $0: 'ABXD: parameter unset'
 recho ${ABXD:?"parameter unset"}