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: