--- parser3/tests/185.html 2008/07/18 08:28:10 1.4
+++ parser3/tests/185.html 2010/07/03 07:21:52 1.6
@@ -1,4 +1,4 @@
-@main[]
+@main[]
$request:charset[UTF-8]
$response:charset[UTF-8]
$response:content-type[
@@ -9,11 +9,25 @@ $response:content-type[
$str[ab^taint["]"cd^taint[xml][&]&ef]
^$str[$str] [^str.length[]]
+^^str.left[]: ^left[$str]
+^^str.left(-2): ^left[$str](-2)
^^str.left(4): ^left[$str](4)
^^str.left(9): ^left[$str](9)
+^^str.left(20): ^left[$str](20)
+^^str.right[]: ^right[$str]
+^^str.right(-3): ^right[$str](-3)
^^str.right(4): ^right[$str](4)
^^str.right(9): ^right[$str](9)
+^^str.right(30): ^right[$str](30)
^^str.mid(1;8): ^mid[$str](1;8)
+^^str.mid(2;0): ^mid[$str](2;0)
+^^str.mid(3;-1): ^mid[$str](3;-1)
+^^str.mid(7): ^mid[$str](7)
+^^str.mid(8;99): ^mid[$str](8;99)
+^^str.mid(40): ^mid[$str](40)
+^^str.mid(40;2): ^mid[$str](40;2)
+^^str.mid(-5): ^mid[$str](-5)
+^^str.mid(-5;2): ^mid[$str](-5;2)
$str[о сколько нам открытий чудных...10.11.2005]
@@ -21,9 +35,11 @@ $length(^str.length[]) ^rem{ *** length
^taint[as-is][
^$str[$str] [^str.length[]]
- 01234567890123456789012345678901234567890123456789
+ 01234567890123456789012345678901234567890123456789
]
+^^str.pos[]: ^try{^str.pos[]}{$exception.handled(1)error}
+^^str.pos[^$empty]: ^str.pos[$empty]
^pos[$str;о]
^pos[$str;о;2]
^pos[$str; ]
@@ -59,24 +75,48 @@ $length(^str.length[]) ^rem{ *** length
}
-
-
@left[str;num][substr]
-$substr[^str.left($num)]
-'$substr' [^substr.length[]]
-
-
+^try{
+ ^if(def $num){
+ $substr[^str.left($num)]
+ }{
+ $substr[^str.left[]]
+ }
+ $result['$substr' [^substr.length[]]]
+}{
+ $exception.handled(1)
+ $result[error]
+}
@right[str;num][substr]
-$substr[^str.right($num)]
-'$substr' [^substr.length[]]
-
-
+^try{
+ ^if(def $num){
+ $substr[^str.right($num)]
+ }{
+ $substr[^str.right[]]
+ }
+ $result['$substr' [^substr.length[]]]
+}{
+ $exception.handled(1)
+ $result[error]
+}
@mid[str;num;count]
-'^str.mid($num;$count)'
-
-
+^try{
+ ^if(def $num){
+ ^if(def $count){
+ $substr[^str.mid($num;$count)]
+ }{
+ $substr[^str.mid($num)]
+ }
+ }{
+ $substr[^str.mid[]]
+ }
+ $result['$substr' [^substr.length[]]]
+}{
+ $exception.handled(1)
+ $result[error]
+}
@pos[str;substr;offset]
^^str.pos[$substr]^if(def $offset){($offset)}: ^if(def $offset){^str.pos[$substr]($offset)}{^str.pos[$substr]}