--- parser3/src/www/htdocs/Attic/index.html 2001/11/12 10:00:32 1.470
+++ parser3/src/www/htdocs/Attic/index.html 2002/01/29 08:45:37 1.543
@@ -1,5 +1,37 @@
+@auto[]
+$request:charset[windows-1251]
+$response:charset[windows-1251]
+$response:content-type[$.value[text/html]$.charset[$response:charset]]
+
@main[]
-^cookie2[]
+^xoutputrusattr[]
+#^xdocset1[]
+#^regexp3[]
+#^exec2[]
+#^tlock[]
+#^xmloutattrwithoutvalue[]
+#^precisionProblem[]
+#^xpath[]
+#^ttablesetlang[]
+#^mail3[]
+#^ttime[]
+#^tupper[]
+#^treplace[]
+#^xslt2[]
+#^tcache2[]
+#$ORIGINS(1)
+#$t[^table::set{a b} ^table::set{c d}]
+#^ttaintuntaint[]
+#^tappend2[]
+#^badvsnprintf[]
+#^badoracequoting[]
+#^badconstructors[]
+#^xloadwrongtable[]
+#^xsetwrongtable[]
+#^if($form:test){y}{n}
+#^tablecolumnerror[]
+#^roll[]
+#^cookie2[]
#^tableset[]
#^math:PI.format{%.30f}
#^xchildren[]
@@ -59,8 +91,219 @@
#^xslt[]
#^xml[]
#^header[]
+
OK
+@xoutputrusattr[]
+$d[^xdoc::set{}]
+^show_xdoc2[$d]
+
+@xdocset1[]
+$d[^xdoc::set{=^taint[&]=}]
+^show_xdoc2[$d]
+
+@regexp3[]
+$s[abcАБВ]
+^if(^s.match[][i]){y}{n}
+
+
+@exec2[]
+$a[^file::exec[bin/t.cmd]]
+^taint[$a.text]
|$a.status|$a.stderr
+
+
+@tlock[]
+^file:lock[lockfile]{
+ code
+}
+
+@xmloutattrwithoutvalue[]
+#$ORIGINS(1)
+$doc[^xdoc::set{zz}]
+$doc[^doc.transform[global.xsl]]
+=^taint[html][^doc.string[$.method[html]]]=
+
+
+
+@precisionProblem[]
+$a[123456789012345678901234567890]
+$b(^a.double[])
+^b.format{%.20E}
+
+^eval(2*2)
+
+@xpath[]
+$xdoc[^xdoc::set{
+привет
+}]
+#^show_xdoc2[$xdoc]
+$node[^xdoc.selectSingle[/document/block/p]]
+^if(def $node){
+ ^if($node is string){
+ $node
+ }{
+ ^if($node is hash){
+ ^node._count[]
+ }{
+ $node.nodeType
+ }
+ }
+#$node.firstChild.nodeValue
+}{
+ node not found
+}
+
+
+@ttablesetlang[]
+$a-tab-b[a b
+1 2]
+
+$t[^table::set{$a-tab-b}]
+=$t.a=
+
+
+$t[^table::set[nameless]{^taint[$a-tab-b]}]
+=$t.0=
+
+
+$t[^table::set{^untaint{^taint[$a-tab-b]}}]
+=$t.a=
+
+#^t.append{1 2}
+
+@mail3[]
+^mail:send[
+ $.from[Александр Петросян ]
+ $.to[Александр Петросян ]
+ $.subject[проверка4]
+ $.body[
+ $.text[
+ $.content-type[$.value[text/plain] $.charset[windows-1251]]
+ $.body[проверка]
+ ]
+ $.attachment[
+ $.value[^file::load[text;index.html]]
+ $.file-name[привет всем.html]
+ ]
+ ]
+]
+
+
+@ttime[]
+$now[^date::now[]]
+$now.hour:$now.minute
+
+@tupper[]
+$t[abcABCабвАБВ]
+$t
+^t.upper[]
+
+@treplace[]
+$copy-paste-clean[^table::set{a b
+. _
+, _
++ _
+& _
+? _
+= _}]
+
+$cache_key[^taint[в.а,с+я]&был?тут=недавно.cache]
+# почему-то этот replace роняет апач в 500 ошибку :(
+#^cache_key.replace[$copy-paste-clean]
+$test[abc]
+^test.save[$cache_key]saved
+$cache[^file:list[.;\.cache^$]]
+^file:delete[$cache_key]deleted($cache.name)
+
+
+
+@xslt2[]
+$xdoc[^xdoc::set{
+привет
+}]
+^show_xdoc2[$xdoc]
+^show_xdoc2[^xdoc.transform[templates/_document.xslt]]
+
+
+
+@tcache2[]
+^cache[$DB_HOME/keyключ](2){
+ ^math:random(100)
+}
+
+@ttaintuntaint[]
+^taint[html][
+
+]zz
+
+^untaint[html]{1^taint[ ]2 3}
+
+
+@tappend2[]
+$t[^table::set{a b}]^t.append{1 2}$t.a
+
+@badvsnprintf[]
+^connect[zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz]{
+}
+
+
+@badoracequoting[]
+$SQL.connect-string[oracle://webspb:webpwd@mts?NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251&NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS]
+^connect[$SQL.connect-string]{
+^void:sql{delete from paf}
+^void:sql{insert into paf values (1, '$form:text')}
+$paf[^table::sql{select * from paf}]
+^paf.menu{
+ $paf.id: ^untaint{$paf.block}
+
+}
+
+
+
+^rem{
+$news[^table::sql{select description from news}[$.limit(3)]]
+^news.menu{
+ ^untaint{$news.description}
+
+}
+
+}
+
+$tables[^table::sql{select table_name from user_tables}]
+^tables.menu{
+$tables.table_name
+}
+
+}
+
+$env:PATH
+
+@badconstructors[]
+$bred[^string::length[]]
+$bred[^response::clear[]]
+$bred[^int::int[]]
+
+
+@xloadwrongtable[]
+$constr[^xdoc::load[wrongtable.xml]]
+^show_xdoc2[$constr]
+
+@xsetwrongtable[]
+$constr[^xdoc::set{
+^untaint[as-is]{$constructor}}]
+
+
+@tablecolumnerror[]
+$t[^table::set{a}]
+$t.$a
+
+@roll[]
+#$date[^date::set(1970;1;2)]
+#^date.roll[month](-1)
+$date[^date::set(2038;1;1)]
+^date.roll[month](+1)
+$date.year $date.month $date.day
+
@cookie2[]
#=$cookie:clientType[$.value[test]]=
=$cookie:clientType=
@@ -174,7 +417,7 @@ $html[^file:list[.;\.html^$]]
$dom_from_disk[^xdoc::load[input.xml]]
$dom_created_in_air[^xdoc::create[doc]]
^dom_created_in_air.documentElement.appendChild[^dom_from_disk.documentElement.cloneNode(1)]
-^show-xdoc2[$dom_created_in_air]
+^show_xdoc2[$dom_created_in_air]
@tcache[]
@@ -185,7 +428,6 @@ $code[^hashfile::open[$DB_HOME;cache]]
# ^code.delete[]
}
-
@thashfileexp[]
$hf[^hashfile::open[$DB_HOME;hashfile]]
$hf.paf[$.value[крут] $.expires(3)]
@@ -257,8 +499,8 @@ paf=$hf.paf
$a
$xdoc[^xdoc::create[doc]]
$doc[$xdoc.documentElement]
-$name[^doc.appendChild[^xdoc.createElement{name}]]
-$text[^name.appendChild[^xdoc.createTextNode{петросян ^;co}]]
+$name[^doc.appendChild[^xdoc.createElement[name]]]
+$text[^name.appendChild[^xdoc.createTextNode[петросян&coz]]]
^untaint[as-is]{=$text.nodeValue=}
@domedit[]
@@ -266,14 +508,14 @@ $text[^name.appendChild[^xdoc.createText
#$paf.nodeName
#$doc.documentElement.nodeName
-^show-xnode1[$xdoc.documentElement;0;1]
+^show_xnode1[$xdoc.documentElement;0;1]
-^show-xdoc2[$xdoc]
+^show_xdoc2[$xdoc]
@domxslt[]
^domdata[]
-^show-xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]]
+^show_xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]]
@lsplit2[]
@@ -460,7 +702,7 @@ $env:HTTP_COOKIE
@xslt[]
^xdata[]
$transformed[^xdoc.transform[global.xsl;$.param1[123/]]]
-^show-xdoc2[$transformed]
+^show_xdoc2[$transformed]
@regexp2[]
$s[ select]
@@ -517,11 +759,10 @@ $a.status|$a.stderr
@fori[][i]
^for[i](1;3){... =$i= ...}
-@xdata[]
+@xdata0[]
#$response:content-type[$.value[text/html] $.charset[windows-1251]]
$xdoc[^xdoc::set{
-
P«^;AF B
@@ -532,20 +773,34 @@ $xdoc[^xdoc::set{
}]
+@xdata[]
+#$response:content-type[$.value[text/html] $.charset[windows-1251]]
+$xdoc[^xdoc::set{^process{
+
+
+
+ P«^;AF B
+
+
+ ПИФ^taint[&]
+
+
+}}]
+
@xml[]
^xdata[]
-^show-xdoc2[$xdoc]
-#^show-xnode1[$xdoc]
+^show_xdoc2[$xdoc]
+#^show_xnode1[$xdoc]
$people[^xdoc.select[*/man]]
#^show1[]
-^show-xnodes1[$people]
+^show_xnodes1[$people]
#^people.0.owner.hren[]
-^show-xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]
+^show_xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]
by id:
-^show-xnode1[^xdoc.getElementById[1];0;1]
+^show_xnode1[^xdoc.getElementById[1];0;1]
@show1[array]
@@ -559,12 +814,12 @@ by id:
}
-@show-xnodes1[array][i]
+@show_xnodes1[array][i]
^for[i](0;^array._count[]-1){
- ^show-xnode1[$array.$i;0;1]
+ ^show_xnode1[$array.$i;0;1]
}
-@show-xnode1[x;level;single][l]
+@show_xnode1[x;level;single][l]
^if(def $x){
^for[l](0;$level-1){ ^; ^; ^; ^;}
^if($x.nodeType == $xnode:ELEMENT_NODE){
@@ -580,9 +835,9 @@ by id:
}
^if(def $x.nodeValue){$x.nodeValue}
- ^show-xnode1[$x.firstChild]($level+1)
+ ^show_xnode1[$x.firstChild]($level+1)
^if(!$single){
- ^show-xnode1[$x.nextSibling]($level)
+ ^show_xnode1[$x.nextSibling]($level)
}
^if($x.nodeType == $xnode:ELEMENT_NODE){
@@ -590,19 +845,25 @@ by id:
}
}
-@show-xdoc2[xdoc]
-^xdoc.save[save.xml;
-# $.encoding[windows-1251]
+@show_xdoc2[xdoc]
+^xdoc.save[out/save.xml;
+# $.encoding[utf-8]
$.method[xml]
]
$file[^xdoc.file[
-# $.encoding[windows-1251]
+ $.encoding[utf-8]
$.method[html]
]]
-^file.save[text;save_file.html]
-^taint[^xdoc.string[]]
-# $.encoding[windows-1251]
-# $.method[html]
-#]]
+^file.save[text;out/save_file.html]
+#$response:body[^xdoc.file[ $.media-type[text/paf] ]]
+^taint[html][^xdoc.string[
+ $.method[html]
+# $.encoding[utF-8]
+# $.omit-xml-declaration[yes]
+# $.standalone[no]
+# -$.doctype-public[-//W3C//DTD XHTML]
+# -$.doctype-system[/a/b/c/]
+# $.indent[yes]
+# $.media-type[text/paf]
+]]
-