--- parser3/tests/185.html 2008/07/17 09:09:22 1.2 +++ 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[ @@ -6,14 +6,28 @@ $response:content-type[ $.charset[$response:charset] ] -$str[^taint[abgh] -^$str[$str] [^str.length[]]

+$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,10 +35,13 @@ $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; ] ^pos[$str;чудных] ^pos[$str;2005] @@ -33,39 +50,73 @@ $length(^str.length[]) ^rem{ *** length
- - - + + + + + ^for[i](0;$length\2+1){ - - - - + $iLeft($i*2+$i%2) + + + + $iRight($i*2+($i+1)%2) + + + + $iMid($i*2) + $iLength(^if($i%2)(3;4)) + + }
N^^str.left(N) [^^substr.length[]]
^^str.right(N) [^^substr.length[]]
L^^str.left(L) [^^substr.length[]]
R^^str.right(R) [^^substr.length[]]
N, O ^^str.mid(N;O)
^eval($i*2)^left[$str]($i*2+$i%2)^right[$str]($i*2+($i+1)%2)^mid[$str]($i*2;^if($i%2)(3;4))$iLeft^left[$str]($iLeft)$iRight^right[$str]($iRight)$iMid, $iLength^mid[$str]($iMid;$iLength)
- - @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] -^^str.pos[$substr]: ^str.pos[$substr]
+@pos[str;substr;offset] +^^str.pos[$substr]^if(def $offset){($offset)}: ^if(def $offset){^str.pos[$substr]($offset)}{^str.pos[$substr]}