|
|
| version 1.437, 2001/10/27 09:35:12 | version 1.500, 2001/12/14 12:53:48 |
|---|---|
| Line 1 | Line 1 |
| @main[] | @main[] |
| #^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[] | |
| #^thashforeach3[] | |
| #^thashforeach2[] | |
| #^thashforeach[] | |
| #^thashdelete[] | |
| #^connect[mysql://user:pass@cd.rinet.ru/db]{^void:sql{z} } | |
| #^tappend[] | |
| #^sappend[] | |
| #^eval(10\3)<br> | |
| #^tform[] | |
| #^formattest[] | |
| #^filelist[] | |
| #^connect[mysql://user:pass@host]{ } | |
| #^безнадёжна_попытка_поправить_непоправимое[] | #^безнадёжна_попытка_поправить_непоправимое[] |
| #^tcache[] | #^tcache[] |
| #^thashfileexp[] | #^thashfileexp[] |
| ^tcounter[] | #^tcounter[] |
| #^tablehash[] | #^tablehash[] |
| #^hashfile[] | #j^hashfile[] |
| #^formclass[] | #^formclass[] |
| #^hren[] | #^hren[] |
| #^domedit[] | #^domedit[] |
| Line 43 | Line 74 |
| #^xslt[] | #^xslt[] |
| #^xml[] | #^xml[] |
| #^header[] | #^header[] |
| <hr> | |
| OK | OK |
| @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>hi</p></block></document> | |
| }] | |
| #^show-xdoc2[$xdoc] | |
| ^show-xdoc2[^xdoc.transform[templates/_document.xslt]] | |
| <hr> | |
| @tcache2[] | |
| ^cache[$DB_HOME/keyключ](2){ | |
| ^math:random(100) | |
| } | |
| @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]] | |
| @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[] | |
| $constructor[ | |
| <block1 name="main_srvr" type="0" label="Основное тело" /> | |
| <block2 name="main_srvr2" type="0" label="Основное тело" /> | |
| ] | |
| $constr[^xdoc::set{<?xml version="1.0" encoding="windows-1251" ?> | |
| <block-list>^untaint[as-is]{$constructor}</block-list>}] | |
| $children[$constr.documentElement.childNodes] | |
| ^if($children){ | |
| ^for[i](1;^children._count[]){ | |
| $node[$children.$i] | |
| $node.nodeName<br> | |
| } | |
| } | |
| @thashforeach3[] | |
| $h[ | |
| $.a[1] | |
| $.b[2] | |
| ] | |
| $c[^table::set{a | |
| ^h.foreach[key;value]{$value | |
| }}] | |
| $c.a | |
| @thashforeach2[] | |
| $h[ | |
| $.a[1] | |
| $.b[2] | |
| ] | |
| $c[ | |
| ^h.foreach[key;value]{ | |
| $.$key[$value] | |
| } | |
| ] | |
| $c.b | |
| @thashforeach[] | |
| $h[ | |
| $.a[1] | |
| $.b[2] | |
| ] | |
| ^h.foreach[key;value]{ | |
| $key=$value<br> | |
| } | |
| @thashdelete[] | |
| $h[$.a[1] $.b[2]] | |
| was:<br> | |
| count=^h._count[] <br> | |
| b='$h.b' <br> | |
| ^h.delete[b] | |
| now:<br> | |
| count=^h._count[] <br> | |
| b='$h.b' | |
| @sappend[] | |
| $test[123] | |
| ^test.save[test] | |
| ^test.save[append;test] | |
| @tappend[] | |
| $test[^table::set{a b | |
| a1 b1}] | |
| ^test.save[test] | |
| $test[^table::set{a b | |
| a2 b2}] | |
| ^test.save[append;test] | |
| @tform[] | |
| ^if(def $form:new_file){y}{n} | |
| <form method="post" enctype="multipart/form-data"> | |
| <input type="file" name="new_file" /> | |
| <input type=submit> | |
| </input> | |
| @formattest[] | |
| $size(15.124) | |
| ^size.format{%.2f} | |
| @filelist[] | |
| $html[^file:list[.;\.html^$]] | |
| ^html.menu{ | |
| $html.name<br> | |
| } | |
| <hr> | |
| @безнадёжна_попытка_поправить_непоправимое[] | @безнадёжна_попытка_поправить_непоправимое[] |
| $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]] |
| Line 53 $dom_created_in_air[^xdoc::create[doc]] | Line 299 $dom_created_in_air[^xdoc::create[doc]] |
| @tcache[] | @tcache[] |
| ^rem{ | |
| #^hashfile:clear[cache] | #^hashfile:clear[cache] |
| $code[^hashfile::open[cache]] | $code[^hashfile::open[$DB_HOME;cache]] |
| ^code.cache[key](2){ | ^code.cache[key](2){ |
| ^math:random(100) | ^math:random(100) |
| # ^code.delete[] | # ^code.delete[] |
| } | } |
| } | |
| @thashfileexp[] | @thashfileexp[] |
| $hf[^hashfile::open[hashfile]] | $hf[^hashfile::open[$DB_HOME;hashfile]] |
| $hf.paf[$.value[крут] $.expires(3)] | $hf.paf[$.value[крут] $.expires(3)] |
| paf=$hf.paf | paf=$hf.paf |
| <hr> | <hr> |
| ^hf.foreach[key;value]{ | |
| $key=$value<br> | |
| } | |
| <hr> | |
| $hash[^hf.hash[]] | $hash[^hf.hash[]] |
| =$hash.paf= | =$hash.paf= |
| <hr> | <hr> |
| @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] |
| #^hashfile:clear[$DB_HOME;counter] | |
| $counter[^hashfile::open[$DB_HOME;counter]] | $counter[^hashfile::open[$DB_HOME;counter]] |
| #^counter.clear[] | |
| ^counter.transaction{ | ^counter.transaction{ |
| # $counter.value(10) | # $counter.value(10) |
| $counter.value($counter.value+1) | $counter.value($counter.value+1) |
| Line 128 paf=$hf.paf | Line 379 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 173 $pict.line-width(2) | Line 424 $pict.line-width(2) |
| #^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000) | #^pict.arc($pict.width/2;$pict.height/2;$pict.width;$pict.height;0;360;0xff0000) |
| ^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-20;0x0000ff) | ^pict.circle($pict.width/2;$pict.height/2;$pict.height/2-20;0x0000ff) |
| ^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+20;360-20;0xff0000) | ^pict.arc($pict.width/2;$pict.height/2;$pict.height-26;$pict.height-26;0+20;360-20;0xff0000) |
| #$response:body[^pict.gif[]] | $response:body[^pict.gif[]] |
| $small[^image::create($pict.width/$k;$pict.height/$k)] | #$small[^image::create($pict.width/$k;$pict.height/$k)] |
| #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0) | #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0) |
| ^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;0) | #^small.copy[$pict](0;0;$pict.width;$pict.height;0;0;$small.width;$small.height;0) |
| $response:body[^small.gif[]] | #$response:body[^small.gif[]] |
| @tintdefault[] | @tintdefault[] |
| Line 388 $a.status|$a.stderr<hr> | Line 639 $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[] |
| Line 451 by id: | Line 726 by id: |
| } | } |
| @show-xdoc2[xdoc] | @show-xdoc2[xdoc] |
| ^xdoc.save[save.xml; | ^xdoc.save[out/save.xml; |
| # $.encoding[windows-1251] | # $.encoding[windows-1251] |
| $.method[xml] | $.method[xml] |
| ] | ] |
| Line 459 $file[^xdoc.file[ | Line 734 $file[^xdoc.file[ |
| # $.encoding[windows-1251] | # $.encoding[windows-1251] |
| $.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] |
| #]] | # $.version[1.0] |
| # $.encoding[utf-8] | |
| # $.omit-xml-declaration[yes] | |
| # $.standalone[yes] | |
| # $.doctype-public[-//W3C//DTD XHTML] | |
| # $.doctype-system[/a/b/c/] | |
| # $.indent[no] | |
| $.media-type[text/paf] | |
| ]] | |
| </pre> | </pre> |