Annotation of parser3/tests/171.html, revision 1.4

1.1       misha       1: @main[]
                      2: $request:charset[windows-1251]
                      3: $response:charset[$request:charset]
                      4: $sScript[./cat.sh]
                      5: 
1.3       misha       6: $tData[^table::create{sType    sFormat sContentType    sFileName       iStatus sText   sCharset
                      7: exec           text/plain      notfound.txt    1
                      8: exec   text    text/plain      notfound.txt    2
                      9: cgi    text    text/plain      notfound.txt    3       тест
                     10: exec   binary  image/gif       notfound.gif    4
                     11: cgi    text    text/plain      161_windows1251.txt     0       тест    $request:charset
                     12: exec   text    text/plain      161_utf8.txt    0       тест    UTF-8
                     13: cgi    binary  image/gif       019paf2001.gif  0
                     14: #old style
                     15: exec           text/plain      161_windows1251.txt     0       тест
                     16: cgi            text/plain      161_windows1251.txt     0
1.1       misha      17: }]
                     18: 
                     19: ^tData.menu{
                     20:        Get ^if(-f $tData.sFileName){file '$tData.sFileName' as ^if($tData.sFormat eq "binary"){binary}{text}^if(def $tData.sText){ with additional text '$tData.sText'}}{not existing file '$tData.sFileName'} ^if(def $tData.sCharset){in $tData.sCharset}{without ^$.charset option} (^if(def $tData.sFormat){^^file::${tData.sType}[$tData.sFormat^;script^;...]}{^^file::${tData.sType}[script^;...]}):
                     21:        ^if(def $tData.sFormat){
                     22:                ^rem{ *** new style where in 1st param we can specify 'text' or 'binary' format *** }
                     23:                ^switch[$tData.sType]{
                     24:                        ^case[exec]{
1.3       misha      25:                                $f[^file::exec[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};exec;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
1.1       misha      26:                        }
                     27:                        ^case[cgi]{
1.3       misha      28:                                $f[^file::cgi[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
1.1       misha      29:                        }
                     30:                }
                     31:        }{
                     32:                ^rem{ *** old style: 1st param can be path to script only *** }
                     33:                ^switch[$tData.sType]{
                     34:                        ^case[exec]{
1.3       misha      35:                                $f[^file::exec[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};exec;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
1.1       misha      36:                        }
                     37:                        ^case[cgi]{
1.3       misha      38:                                $f[^file::cgi[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
1.1       misha      39:                        }
                     40:                }
                     41:        }
1.3       misha      42:        ^print[$tData.sType;$f]
                     43:        ^if($f is "file" && !$f.status){
                     44:                ^f.save[^if($tData.sFormat eq "binary"){binary}{text};171_dir/^tData.line[].^file:justext[$tData.sFileName]]
                     45:        }
                     46: }
                     47: 
                     48: 
                     49: $f[]
                     50: Calling cgi which don't get back CGI headers:
                     51: ^try{
                     52:        $f[^file::cgi[$sScript;;exec;text/plain;161_windows1251.txt;0]]
                     53: }{
                     54:        $exception.handled(1)
1.1       misha      55: }
1.3       misha      56: ^print[cgi;$f]
1.1       misha      57: 
1.3       misha      58: @print[sType;f]
                     59: ^if($f is "file"){
                     60:        ^$f.status: ^if($f.status){!=0}{==0}
                     61:        ^$f.text: '$f.text'
                     62:        ^$f.size: ^if(def $f.size){$f.size}{-}
                     63:        ^$f.text.length: ^if(def $f.text){^f.text.length[]}{-}
                     64:        ^if($sType eq "cgi"){^$f.CONTENT-TYPE: ^if(def ${f.CONTENT-TYPE}){${f.CONTENT-TYPE}}{-}}
                     65: }{
                     66:        Variable is not a file, can't analyze it.
                     67: }
                     68: ^taint[as-is][^#0A]

E-mail: