|
|
| version 1.463, 2001/11/05 10:43:00 | version 1.543, 2002/01/29 08:45:37 |
|---|---|
| Line 1 | Line 1 |
| @auto[] | |
| $request:charset[windows-1251] | |
| $response:charset[windows-1251] | |
| $response:content-type[$.value[text/html]$.charset[$response:charset]] | |
| @main[] | @main[] |
| ^status[] | ^xoutputrusattr[] |
| <hr> | #^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[] | #^xchildren[] |
| #^thashforeach3[] | #^thashforeach3[] |
| #^thashforeach2[] | #^thashforeach2[] |
| Line 54 | Line 87 |
| #^mail[] | #^mail[] |
| #^exec[] | #^exec[] |
| #^fori[] | #^fori[] |
| ^tconnect[] | #^tconnect[] |
| ^xslt[] | #^xslt[] |
| #^xml[] | #^xml[] |
| #^header[] | #^header[] |
| <hr> | <hr> |
| ^status[] | |
| OK | OK |
| @status[] | @xoutputrusattr[] |
| $c[$status:sql.cache] | $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}] |
| <table border=1> | ^show_xdoc2[$d] |
| <tr> | |
| <td colspan=3> | @xdocset1[] |
| sql.cache | $d[^xdoc::set{<?xml version="1.0"?><d>=^taint[&]=</d>}] |
| </td> | ^show_xdoc2[$d] |
| </tr> | |
| <td>url</td> | @regexp3[] |
| <td>time</td> | $s[abcАБВ] |
| ^c.menu{ | ^if(^s.match[][i]){y}{n} |
| <tr> | |
| <td>$c.url</td> | |
| <td>$c.time</td> | @exec2[] |
| </tr> | $a[^file::exec[bin/t.cmd]] |
| } | <pre>^taint[$a.text]</pre>|$a.status|$a.stderr<hr> |
| </table> | |
| $c[$status:stylesheet.cache] | @tlock[] |
| <table border=1> | ^file:lock[lockfile]{ |
| <tr> | code |
| <td colspan=3> | } |
| stylesheet.cache | |
| </td> | @xmloutattrwithoutvalue[] |
| </tr> | #$ORIGINS(1) |
| <td>file</td> | $doc[^xdoc::set{<?xml version="1.0"?><doc background="">zz</doc>}] |
| <td>time</td> | $doc[^doc.transform[global.xsl]] |
| ^c.menu{ | =^taint[html][^doc.string[$.method[html]]]= |
| <tr> | |
| <td>$c.file</td> | |
| <td>$c.time</td> | |
| </tr> | @precisionProblem[] |
| $a[123456789012345678901234567890] | |
| $b(^a.double[]) | |
| ^b.format{%.20E} | |
| <hr> | |
| ^eval(2*2) | |
| @xpath[] | |
| $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?> | |
| <document><block><p>привет</p></block></document> | |
| }] | |
| #^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= | |
| <hr> | |
| $t[^table::set[nameless]{^taint[$a-tab-b]}] | |
| =$t.0= | |
| <hr> | |
| $t[^table::set{^untaint{^taint[$a-tab-b]}}] | |
| =$t.a= | |
| #^t.append{1 2} | |
| @mail3[] | |
| ^mail:send[ | |
| $.from[Александр Петросян <paf@design.ru>] | |
| $.to[Александр Петросян <paf@design.ru>] | |
| $.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<br> | |
| ^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<br> | |
| $cache[^file:list[.;\.cache^$]] | |
| ^file:delete[$cache_key]deleted($cache.name)<br> | |
| @xslt2[] | |
| $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?> | |
| <document><block><p>привет</p></block></document> | |
| }] | |
| ^show_xdoc2[$xdoc] | |
| ^show_xdoc2[^xdoc.transform[templates/_document.xslt]] | |
| <hr> | |
| @tcache2[] | |
| ^cache[$DB_HOME/keyключ](2){ | |
| ^math:random(100) | |
| } | } |
| </table> | |
| @ttaintuntaint[] | |
| <!-- некий панковский заголовок с буковкой C в круглых скобках -->^taint[html][ | |
| ]zz | |
| <hr> | |
| ^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}<hr> | |
| } | |
| <hr> | |
| ^rem{ | |
| $news[^table::sql{select description from news}[$.limit(3)]] | |
| ^news.menu{ | |
| ^untaint{$news.description}<hr> | |
| } | |
| <hr> | |
| } | |
| $tables[^table::sql{select table_name from user_tables}] | |
| ^tables.menu{ | |
| $tables.table_name<br> | |
| } | |
| } | |
| <hr> | |
| $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{<?xml version="1.0" encoding="windows-1251z" ?> | |
| <block-list>^untaint[as-is]{$constructor}</block-list>}] | |
| @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]]=<br> | |
| =$cookie:clientType=<br> | |
| @tableset[] | |
| $a[^table::set{a | |
| 1 | |
| 2}] | |
| ^eval(100\$a) | |
| @zzz[] | |
| @xchildren[] | |
| $constructor[ | $constructor[ |
| <block1 name="main_srvr" type="0" label="Основное тело" /> | <block1 name="main_srvr" type="0" label="Основное тело" /> |
| <block2 name="main_srvr2" type="0" label="Основное тело" /> | <block2 name="main_srvr2" type="0" label="Основное тело" /> |
| Line 196 $html[^file:list[.;\.html^$]] | Line 417 $html[^file:list[.;\.html^$]] |
| $dom_from_disk[^xdoc::load[input.xml]] | $dom_from_disk[^xdoc::load[input.xml]] |
| $dom_created_in_air[^xdoc::create[doc]] | $dom_created_in_air[^xdoc::create[doc]] |
| ^dom_created_in_air.documentElement.appendChild[^dom_from_disk.documentElement.cloneNode(1)] | ^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[] | @tcache[] |
| Line 207 $code[^hashfile::open[$DB_HOME;cache]] | Line 428 $code[^hashfile::open[$DB_HOME;cache]] |
| # ^code.delete[] | # ^code.delete[] |
| } | } |
| @thashfileexp[] | @thashfileexp[] |
| $hf[^hashfile::open[$DB_HOME;hashfile]] | $hf[^hashfile::open[$DB_HOME;hashfile]] |
| $hf.paf[$.value[крут] $.expires(3)] | $hf.paf[$.value[крут] $.expires(3)] |
| Line 223 $hash[^hf.hash[]] | Line 443 $hash[^hf.hash[]] |
| @tcounter[] | @tcounter[] |
| ^tcounterone[$DB_HOME] | ^tcounterone[$DB_HOME] |
| #other root: | other root: |
| #^tcounterone[${DB_HOME}2] | ^tcounterone[${DB_HOME}2] |
| #again, first: | again, first: |
| #^tcounterone[$DB_HOME] | ^tcounterone[$DB_HOME] |
| @tcounterone[DB_HOME] | @tcounterone[DB_HOME] |
| $counter[^hashfile::open[$DB_HOME;counter]] | $counter[^hashfile::open[$DB_HOME;counter]] |
| Line 279 paf=$hf.paf | Line 499 paf=$hf.paf |
| $a | $a |
| $xdoc[^xdoc::create[doc]] | $xdoc[^xdoc::create[doc]] |
| $doc[$xdoc.documentElement] | $doc[$xdoc.documentElement] |
| $name[^doc.appendChild[^xdoc.createElement{name}]] | $name[^doc.appendChild[^xdoc.createElement[name]]] |
| $text[^name.appendChild[^xdoc.createTextNode{петросян ^;co}]] | $text[^name.appendChild[^xdoc.createTextNode[петросян&coz]]] |
| ^untaint[as-is]{=$text.nodeValue=} | ^untaint[as-is]{=$text.nodeValue=} |
| @domedit[] | @domedit[] |
| Line 288 $text[^name.appendChild[^xdoc.createText | Line 508 $text[^name.appendChild[^xdoc.createText |
| #$paf.nodeName<br> | #$paf.nodeName<br> |
| #$doc.documentElement.nodeName<br> | #$doc.documentElement.nodeName<br> |
| ^show-xnode1[$xdoc.documentElement;0;1] | ^show_xnode1[$xdoc.documentElement;0;1] |
| <hr> | <hr> |
| ^show-xdoc2[$xdoc] | ^show_xdoc2[$xdoc] |
| <hr> | <hr> |
| @domxslt[] | @domxslt[] |
| ^domdata[] | ^domdata[] |
| ^show-xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]] | ^show_xdoc2[^xdoc.transform[global.xsl;$.param1[123/]]] |
| <hr> | <hr> |
| @lsplit2[] | @lsplit2[] |
| Line 482 $env:HTTP_COOKIE<br> | Line 702 $env:HTTP_COOKIE<br> |
| @xslt[] | @xslt[] |
| ^xdata[] | ^xdata[] |
| $transformed[^xdoc.transform[global.xsl;$.param1[123/]]] | $transformed[^xdoc.transform[global.xsl;$.param1[123/]]] |
| ^show-xdoc2[$transformed] | ^show_xdoc2[$transformed] |
| @regexp2[] | @regexp2[] |
| $s[ select] | $s[ select] |
| Line 539 $a.status|$a.stderr<hr> | Line 759 $a.status|$a.stderr<hr> |
| @fori[][i] | @fori[][i] |
| ^for[i](1;3){... =$i= ...} | ^for[i](1;3){... =$i= ...} |
| @xdata0[] | |
| #$response:content-type[$.value[text/html] $.charset[windows-1251]] | |
| $xdoc[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?> | |
| <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"--> | |
| <people> | |
| <man id="1" имя="word слово"> | |
| <name>P«^;AF B</name> | |
| </man> | |
| <man id="2"> | |
| <name>ПИФ^taint[&]</name> | |
| </man> | |
| </people> | |
| }] | |
| @xdata[] | @xdata[] |
| #$response:content-type[$.value[text/html] $.charset[windows-1251]] | #$response:content-type[$.value[text/html] $.charset[windows-1251]] |
| $xdoc[^xdoc::load[input.xml]] | $xdoc[^xdoc::set{^process{<?xml version="1.0" encoding="windows-1251"?> |
| <!--DOCTYPE people SYSTEM "D:\Y\parser3project\parser3\src\www\htdocs\people.dtd"--> | |
| <people> | |
| <man id="1" имя="word слово"> | |
| <name>P«^;AF B</name> | |
| </man> | |
| <man id="2"> | |
| <name>ПИФ^taint[&]</name> | |
| </man> | |
| </people> | |
| }}] | |
| @xml[] | @xml[] |
| ^xdata[] | ^xdata[] |
| ^show-xdoc2[$xdoc]<hr> | ^show_xdoc2[$xdoc]<hr> |
| #^show-xnode1[$xdoc]<hr> | #^show_xnode1[$xdoc]<hr> |
| $people[^xdoc.select[*/man]] | $people[^xdoc.select[*/man]] |
| #^show1[] | #^show1[] |
| ^show-xnodes1[$people]<hr> | ^show_xnodes1[$people]<hr> |
| #^people.0.owner.hren[] | #^people.0.owner.hren[] |
| ^show-xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]<hr> | ^show_xnode1[^xdoc.selectSingle[*/man[2]/name];0;1]<hr> |
| by id: | by id: |
| ^show-xnode1[^xdoc.getElementById[1];0;1] | ^show_xnode1[^xdoc.getElementById[1];0;1] |
| <hr> | <hr> |
| @show1[array] | @show1[array] |
| Line 570 by id: | Line 814 by id: |
| <br> | <br> |
| } | } |
| @show-xnodes1[array][i] | @show_xnodes1[array][i] |
| ^for[i](0;^array._count[]-1){ | ^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){ | ^if(def $x){ |
| ^for[l](0;$level-1){ ^; ^; ^; ^;} | ^for[l](0;$level-1){ ^; ^; ^; ^;} |
| ^if($x.nodeType == $xnode:ELEMENT_NODE){ | ^if($x.nodeType == $xnode:ELEMENT_NODE){ |
| Line 591 by id: | Line 835 by id: |
| } | } |
| ^if(def $x.nodeValue){$x.nodeValue}<br> | ^if(def $x.nodeValue){$x.nodeValue}<br> |
| ^show-xnode1[$x.firstChild]($level+1) | ^show_xnode1[$x.firstChild]($level+1) |
| ^if(!$single){ | ^if(!$single){ |
| ^show-xnode1[$x.nextSibling]($level) | ^show_xnode1[$x.nextSibling]($level) |
| } | } |
| ^if($x.nodeType == $xnode:ELEMENT_NODE){ | ^if($x.nodeType == $xnode:ELEMENT_NODE){ |
| Line 601 by id: | Line 845 by id: |
| } | } |
| } | } |
| @show-xdoc2[xdoc] | @show_xdoc2[xdoc] |
| ^xdoc.save[save.xml; | ^xdoc.save[out/save.xml; |
| # $.encoding[windows-1251] | # $.encoding[utf-8] |
| $.method[xml] | $.method[xml] |
| ] | ] |
| $file[^xdoc.file[ | $file[^xdoc.file[ |
| # $.encoding[windows-1251] | $.encoding[utf-8] |
| $.method[html] | $.method[html] |
| ]] | ]] |
| ^file.save[text;save_file.html] | ^file.save[text;out/save_file.html] |
| <pre>^taint[^xdoc.string[]] | #$response:body[^xdoc.file[ $.media-type[text/paf] ]] |
| # $.encoding[windows-1251] | <pre>^taint[html][^xdoc.string[ |
| # $.method[html] | $.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] | |
| ]] | |
| </pre> | </pre> |