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

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: 
                     58: 
1.3     ! misha      59: 
        !            60: 
        !            61: @print[sType;f]
        !            62: ^if($f is "file"){
        !            63:        ^$f.status: ^if($f.status){!=0}{==0}
        !            64:        ^$f.text: '$f.text'
        !            65:        ^$f.size: ^if(def $f.size){$f.size}{-}
        !            66:        ^$f.text.length: ^if(def $f.text){^f.text.length[]}{-}
        !            67:        ^if($sType eq "cgi"){^$f.CONTENT-TYPE: ^if(def ${f.CONTENT-TYPE}){${f.CONTENT-TYPE}}{-}}
        !            68: }{
        !            69:        Variable is not a file, can't analyze it.
        !            70: }
        !            71: ^taint[as-is][^#0A]

E-mail: