--- parser3/tests/171.html 2007/11/27 11:57:11 1.2
+++ parser3/tests/171.html 2010/07/03 07:30:28 1.4
@@ -3,14 +3,17 @@ $request:charset[windows-1251]
$response:charset[$request:charset]
$sScript[./cat.sh]
-$tData[^table::create{sType sFormat sContentType sFileName sText sCharset
-exec text text/plain notfound.txt
-exec binary image/gif notfound.gif
-exec text/plain 161_windows1251.txt тест #old style
-cgi text/plain 161_windows1251.txt #old style
-cgi text text/plain 161_windows1251.txt тест $request:charset
-exec text text/plain 161_utf8.txt тест UTF-8
-cgi binary image/gif 019paf2001.gif
+$tData[^table::create{sType sFormat sContentType sFileName iStatus sText sCharset
+exec text/plain notfound.txt 1
+exec text text/plain notfound.txt 2
+cgi text text/plain notfound.txt 3 тест
+exec binary image/gif notfound.gif 4
+cgi text text/plain 161_windows1251.txt 0 тест $request:charset
+exec text text/plain 161_utf8.txt 0 тест UTF-8
+cgi binary image/gif 019paf2001.gif 0
+#old style
+exec text/plain 161_windows1251.txt 0 тест
+cgi text/plain 161_windows1251.txt 0
}]
^tData.menu{
@@ -19,30 +22,47 @@ cgi binary image/gif 019paf2001.gif
^rem{ *** new style where in 1st param we can specify 'text' or 'binary' format *** }
^switch[$tData.sType]{
^case[exec]{
- $f[^file::exec[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};exec;$tData.sContentType;$tData.sFileName;$tData.sText]]
+ $f[^file::exec[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};exec;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
}
^case[cgi]{
- $f[^file::cgi[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$tData.sText]]
+ $f[^file::cgi[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
}
}
}{
^rem{ *** old style: 1st param can be path to script only *** }
^switch[$tData.sType]{
^case[exec]{
- $f[^file::exec[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};exec;$tData.sContentType;$tData.sFileName;$tData.sText]]
+ $f[^file::exec[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};exec;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
}
^case[cgi]{
- $f[^file::cgi[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$tData.sText]]
+ $f[^file::cgi[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$tData.iStatus;$tData.sText]]
}
}
}
- ^print[$f]
- ^if(!$f.status){^f.save[^if($tData.sFormat eq "binary"){binary}{text};171_dir/^tData.line[].^file:justext[$tData.sFileName]]}
+ ^print[$tData.sType;$f]
+ ^if($f is "file" && !$f.status){
+ ^f.save[^if($tData.sFormat eq "binary"){binary}{text};171_dir/^tData.line[].^file:justext[$tData.sFileName]]
+ }
}
-@print[f]
-status: ^if(!$f.status){==0}{!=0}
-text: '$f.text'
-size: ^if(def $f.size){$f.size}{-}
-text.length: ^if(def $f.text){^f.text.length[]}{-}^taint[as-is][^#0A]
+$f[]
+Calling cgi which don't get back CGI headers:
+^try{
+ $f[^file::cgi[$sScript;;exec;text/plain;161_windows1251.txt;0]]
+}{
+ $exception.handled(1)
+}
+^print[cgi;$f]
+
+@print[sType;f]
+^if($f is "file"){
+ ^$f.status: ^if($f.status){!=0}{==0}
+ ^$f.text: '$f.text'
+ ^$f.size: ^if(def $f.size){$f.size}{-}
+ ^$f.text.length: ^if(def $f.text){^f.text.length[]}{-}
+ ^if($sType eq "cgi"){^$f.CONTENT-TYPE: ^if(def ${f.CONTENT-TYPE}){${f.CONTENT-TYPE}}{-}}
+}{
+ Variable is not a file, can't analyze it.
+}
+^taint[as-is][^#0A]