File:  [parser3project] / parser3 / tests / 171.html
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Tue Nov 27 11:57:11 2007 UTC (18 years, 9 months ago) by misha
Branches: MAIN
CVS tags: release_3_2_2, HEAD
no message

@main[]
$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.menu{
	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^;...]}):
	^if(def $tData.sFormat){
		^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]]
			}
			^case[cgi]{
				$f[^file::cgi[$tData.sFormat;$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$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]]
			}
			^case[cgi]{
				$f[^file::cgi[$sScript;^if(def $tData.sCharset){$.charset[$tData.sCharset]};cgi;$tData.sContentType;$tData.sFileName;$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[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]

E-mail: