Diff for /parser3/src/www/htdocs/Attic/index.html between versions 1.463 and 1.543

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{петросян&nbsp^;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&#171^;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&#171^;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){&nbsp^;&nbsp^;&nbsp^;&nbsp^;}      ^for[l](0;$level-1){&nbsp^;&nbsp^;&nbsp^;&nbsp^;}
     ^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>
   

Removed from v.1.463  
changed lines
  Added in v.1.543


E-mail: