--- parser3/www/htdocs/Attic/index.html 2002/04/25 09:54:08 1.52 +++ parser3/www/htdocs/Attic/index.html 2002/11/27 09:43:53 1.183 @@ -1,18 +1,44 @@ @USE -t.p +/derived.p +/operators.p -@autoz[] +@auto[filespec] +$selffilespec[$filespec] +#$form:here +#$request:charset[UTF-8] $request:charset[windows-1251] $response:charset[windows-1251] -$response:content-type[$.value[text/html]$.charset[$response:charset]] +#$response:charset[UTF-8] +#$response:charset[empty] +#$response:content-type[$.value[text/html]$.charset[$response:charset]] @postprocess[body] +#$body +#$result[123] $body
OK @main[] -#^sqldefaults[] +#$a(123) +#^a.format[%.10u] +#$result[111] +#^f[a] +#^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{ +# ^int:sql{select news_id from news where news_id=-1}[ +# $.default{2} +# ]
+# ^hash::sql{bad} +# ^string:sql{select news_id from news where news_id=-1}[$.default{2}] +# ^file::load[text;^string:sql{select 'from sql server' }] +# ^string:sql{select '^^hello[]' }] $ORIGINS(1) +# ^process{ ^^h[]} +# ^process{^string:sql{select '1 +# ^^hello[]' }] } +# ^double:sql{select '2*' ^; } +#$card_sequence_expect_no(^double:sql{select 20020909131047 #card_sequence_expect_no from card_sequence}) +#^card_sequence_expect_no.format[%15.f] +#} #^eval(2) #^tcrashlocaljunctionsv2[] #^tcrashlocaljunctions[] @@ -33,7 +59,6 @@ OK #^subjvaltest[] #^tableselect0[] #^memnotest1[] -#^transparams[] #^voidparams[] #^rolls2[] #^cacheexpireschanging[] @@ -63,7 +88,6 @@ OK #^precisionProblem[] #^xpath[] #^ttablesetlang[] -#^mail3[] #^ttime[] #^tupper[] #^treplace[] @@ -81,7 +105,6 @@ OK #^if($form:test){y}{n} #^tablecolumnerror[] #^roll[] -#^cookie2[] #^tableset[] #^math:PI.format{%.30f} #^xchildren[] @@ -121,29 +144,1252 @@ OK #$t[^methresult[]] ->$t #^terror[] #^ssave[] -#^calendar[] #^thash[] #^tdef[] #^ford[] #^tif[] #^image[] -#^mail2[] -#^cookie[] #^response[] #^regexp2[] #^ttablerem[] #^pcre[] #^regexp[]
#^mail[] -#^exec[] #^fori[] #^tconnect[] #^xslt[] -#^xml[] #^header[] -^tablehasht[] +#^tablehasht[] +#^datecreatestring[] +#^mssqltypes1[] +#^badthrows[] +#^xmlspace[] +#^counter[main.counter] +#^xpath2[] +#^callindirect[] +#^junctionprob[] +#^datecreatestring2[] +#^tstoredproc[] +#^tstoredproc2[] +#^forkeys[] +#^pngsize[] +#^checkList[] +#^datetest[] +#^tserge[] +#^envt[] +#^selectt[] +#^select2[] +#^selectSingle2[] +#^selectString2[] +#^selectNumber2[] +#^selectBool2[] +#^xdoccreate[] +#^xdoccreatetag[] +#^xdocload[] +#^xdocstring[] +#^xdocsave[] +#^div[] +#^datecreatestring3[] +#^tfilespec[] +#^tcrypt[] +#^cryptdocsample[] +#^tnormalize[] +#^xmltransformbyxdoc[] +#^sergestrandef[] +#^tstdin[] +#^tfind[] +#^mimet[] +#^joinlimit[] +#^tableclonelimit[] +#^transparams[] +#^sendtests[] +#^wwrapperpass[] +#^badpos[] +#^processtest[] +#^mail3[] +#^datesaving[] +#^badconstructor[] +#^calendar[] +#^monthdays(8) +#^xdoctypetest[] +#^xtabletest[] +#^staticstest[] +#^staticstest2[] +#^rbodytest[] +#^cookie[] +#^cookieexpirestest[] +#^postest[] +#^voidpostest[] +#^badcolumntest[] +#^delimiters[] +#^новый-split[] +#^грязные-cookie[] +#^html-почта[] +#^badswitchtest[] +#^okswitchtest[] +#^cgit[] +#^ttransformsep[] +#^calltest[] +#^xpath3[] +#^doubleliterals[] +#^newxor[] +#^mail2[] +#^exec[] +#^passpost[] +#^fordelim[] +#^duplicatetable2hashkey[] +#^duplicatehashsqlkey[] +#^longlreplace[] +#^table2hash_onecolumn[] +#^crossopvars[] +#^three[] +#^badLangAfterCatch[] +#^zeroinstdin[] +#^shifts[] +#^jspace[] +#^hashselfmodification[] +#^emptyTransformResult[] +#^badxdoccreate[] +#^if(-d "CVS"){y}{n} +#^badjunctioncall[] +#^russianindex[] +#^virtualtest[] +#^xml[] +#^mail4[] +#^voidconstructorpass[] +#^$form:CLASS.a=$form:CLASS.a
+#^cookie2[] +#^menudelim[] +#^touchittest[] +#^touchittest2[] +#^opauto[] +#^trycontextt[] +#^tfor[] +#^user-foreach-test[] +#^includet[] +#^derived:includet[] +#^fortestsep[] +#^derived:inclass_process_test[] +#$derived[^derived::create[]]^derived.inclass_process_test[] +#^domorigint[] +#^junctiontest2[] +#^junctionselftest[] +#^bad-compiletosystem[] +#^steppedfor[i](1;10;2){$i } +#^file:fullpath[a.gif]
+#^file:fullpath[/abs/a.gif]
+#$form:a/$form:image-map= +#^foreachform[] +#^selectSingleoct[] +#^compilebug[] +#^badhashcreate[] +#^badsendmail[] +#^keygenedhash[]
+#
[$env:HTTP_REFERER] +#$response:Content-TypE[bad] +#^emailhead2[] +#^includet2overridedynamic[] +#^includet2overridestatic[] +#^virtualtest2[] +#^message-id-test[] +#^test_exif[jpg] +#^http_prefix[] +#^http_prefix_table[] +#^http_prefix_xml[] +^imagefont[] + +@imagefont[] +$image[^image::create(200;30)] +height(font)=1950
+$alph[ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя0123456789-+=!\"%:,.^;<>?@()^[^]'&*/] +^^alph.length[]=^alph.length[]
+^eval(1950/^alph.length[])[%.10f] + +^image.font[$alph;0/font.gif](20) +^image.text(0;0)[Привет*] +$response:body[^image.gif[]] + +@http_prefix_xml[] + $xdoc[^xdoc::load[http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002; +# $.method[HEAD] + $.headers[ + $.user-agent[1] + ] +]] + +
^taint[^xdoc.string[]]
+ +@http_prefix_table[] +$table[^table::load[nameless;http://www.artlebedev.ru;$.USER-AGENT[paf]]] +^table.count[] +
+
$table.0
+ +@http_prefix[] +#$file[^file::load[text;http://www.artlebedev.ru]] +#$file[^file::load[text;http://www.artlebedev.ru;alt]] +#$file[^file::load[text;http://parser3/exif.html; +$file[^file::load[text;http://parser3/none; + $.headers[ + $.USER-AGENT[paf] + ] +]] +server: $file.SERVER
+$file.status +
+
$file.text
+ +@test_exif[dir] +$file[^file:list[$dir;\.(jpe?g|JPE?G)^$]] + +^file.menu{ + + $image[^image::measure[$dir/$file.name]] + + + +} +
^image.html[$.width(100)$.height(100)] + $file.name
+ $exif[$image.exif] + ^if($exif){ + $keys[^exif._keys[]] ^keys.sort{$keys.key} + ^keys.menu{ + $key[$keys.key] + $value[$exif.$key] + + ${key}: ^show_exif_value[$value]
+ } + }{ + no EXIF info
+ } +
+ +@show_exif_value[value][i] +^if($value is hash){ + ^for[i](0;$value-1){$value.$i}[,] +}{ + $value +} + + +@message-id-test[] +^mail:send[ + $.from[paf@mail] + $.to[paf@mail] + $.subject[test] +# $.message-id[<1@parser.ru>] + $.Message-id[<2@parser.ru>] + $.subject[проверка] + $.text[мычит!] +] + +@virtualtest2[] +$derived[^derived::create[]] +^derived.first[] + + +@includet2overridedynamic[] +includet2overridedynamic:
+shold say 'hello in some.p'
+
+$derived[^derived::create[]] +^derived.includet2override[] + +@includet2overridestatic[] +includet2overridestatic:
+shold say 'hello in derived.p'
+because in static classes there's no way to determine derived class (no virtual mech becase of no virtual table)
+
+^derived:includet2override[] + +@emailhead2[] +^mail:send[ + $.charset[koi8-r] + $.from[paf@design.ru] + $.to[paf@mail] +# $.reply-to[^taint[agat] <^taint[ag_7k@mail.ru]>] +$user[^taint[agat]] +$email[^taint[ag_7k@mail.ru]] + $.reply-to[$user $email] + $.subject[test2] +] + +@keygenedhash[] +$table[^table::create{key value +1 a +2 b +}] +$hash[^table.hash($table.key*2)] +'$hash.4.value' must be 'b' + +@badsendmail[] +^mail:send[ + $.from[hren < paf@design.ru + >] + $.to[paf@design.ru] + $.subject[test] +] + +@badhashcreate[] +$hash[ + $.ok[1] +] +$.bad[1] + +@compilebug[] +^a[]^#31= + +@selectSingleoct[] +$d[^xdoc::create[doc]] +$element[^d.selectSingle[$nothing]] + + +@foreachform[] +one
+two
+ +^form:fields.foreach[key;value]{ + $key -- $value +}[
] +
+$nameless[$form:tables.nameless] +^if(def $nameless){ + nameless table -- ^nameless.menu{$nameless.field}[,] +} +^if(def $form:imap){ +
+ IMAP $form:imap.x : $form:imap.y +} + +@steppedfor[name;from;to;step;code] +$caller.$name($from) +^while($caller.$name<=$to){ + $code + ^caller.$name.inc($step) +} + +@bad-compiletosystem[] +^process[$string:CLASS]{@a[] +} + +@junctionselftest[] +$derived[^derived::create[]]^derived.explodejunction{$tomain[tomainOK]} +^$tomain=$tomain + +@junctiontest2[] +^if($if is junction){is junction;not junction}
+^if(def $if){defined;not defined}
+ +@domorigint[] +$xdoc[^xdoc::create[вася]] +^xdoc.firstChild.setAttribute[name;значение] +$var[$xdoc.firstChild.nodeName] +^throw[paf;$var] + + +@fortestsep[][i] +^for[i](1;3){$i}[,] + +@includet[] +^include[some.p] +^included_method[2] + +@user-foreach-test[][key;value] +^user-foreach[key;value]{$key=$value
} + +@user-foreach[key;value;code] +^for[i](1;10){ + $caller.$key($i) + $caller.$value($i*2) + $code +} + + +@tfor[][i] +^for[i](1;10){ +$i +} + +@trycontextt[] +^try{ + ^trycontexttsub[] +}{ + $exception.handled(0) +} + + +@trycontexttsub[] +^bad[] + + +@opauto[] +^reada[] + + +@rusage2[] +
+OK + +@rusage2[] +$s[$status:rusage] + +^s.tv_sec.format[%.0f].^s.tv_usec.format[%06.0f] + + +@voidconstructorpass[] +$a[$form:a] +=^form:a.int(1)= +=^a.int(1)= + + +@russianindex[] +#dir with files with russian-lang names +$where[dir] + +$dir[^file:list[$where;\.txt^$]] +^dir.menu{ + $dir.name
+} + +@badjunctioncall[] +^badjunctioncallinside{code} + +@badjunctioncallinside[code] +xx^code[] + +@badxdoccreate[] +$xdoc[^xdoc::create[вася]] +#$xdoc[^xdoc::create{вася}] + +^xdoc.firstChild.setAttribute[name;значение] +^xdoc.string[] + + +@emptyTransformResult[] +$input[^xdoc::create[docBad]] +$sheet[^xdoc::create{ + + + output + + +}] +$output[^input.transform[$sheet]] +$response:body[^output.file[]] + +@hashselfmodification[] +$hash[ + $.a[1] + $.b[2] +] +^hash.foreach[key;value]{ +# $hash.c[1] + $hash.a[1] +} + +@touchittest[][i] +$i[before] +^touchit[] +$i + +@touchittest2[] +$i[before] +^touchit[] +$i + + +@jspace[] +$a(1) +^jspace_call{^eval($a*2)} +#$a(2) +#$junction + +@jspace_call[param][a] +$a[unrelcfgdfgated] +$junction
+$junction.a(2) +$junction
+ +@shifts[] +^eval(1<<3)
+^eval(8>>2)
+#^if(1=1){y;n}
+ + +@zeroinstdin[] +#$f[^file::exec[a.pl;$.stdin[$.shit[]]]] +$f[^file::exec[a.pl;$.stdin[^file::load[binary;1z2.txt]]]] +=$f.text= +^f.save[binary;1z2.out] + +@badLangAfterCatch[] +^try{ + $a[ + тут язык сменился на pass_appended + ^throw[user;test] + и улетело с не тем языком + ] +}{ + $exception.handled(1) +} +1 2 + +@crossopvars[] +#^one[]
+^two[]
+ +@table2hash_onecolumn[] +$t[^table::create{a +1 +1 +}] +#^t.hash[a] +#^t.hash[a;b] +$h[^t.hash[a][$.distinct(1)]] +$h.1.a + +@longlreplace[] +$str1[ мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла мыла ] +$str2[ела] +$str[Мама $str1 раму] + +^str.replace[^table::create[nameless]{мыла $str2}] + +@duplicatehashsqlkey[] +^connect[mysql://mdm:4b833ljq@db-mysql/mdm]{ + $t[^table::sql{select * from news}] + $c[^t.columns[]] + ^c.menu{$c.column}[,] + + $h[^hash::sql{select news_type_id, name from news}[$.distinct(1)]] +} + +@duplicatetable2hashkey[] +$t[^table::create{a b +1 2 +1 3 +}] +#^t.hash[a] +#^t.hash[a;b] +^t.hash[a][$.distinct[1]] + +@menudelim[] +$t[^table::create{a +1 +2 +3 +4 +5 +}] + +^t.menu{^if($t.a<3){}{$t.a}}[,] + +@fordelim[] +^for[a](0;6){^if($a<3){}{$a}}[,] + + +@passpost[] +
+
+ +
+ +^if(def $form:text){ + $a[^file::cgi[a.pl]] + $a.text|$a.status|$a.stderr
+} + +@exec[] +#$a[^file::exec[a.cmd]] +$a[^file::cgi[a.cmd]] +$a.text|$a.status|$a.stderr
+@newxor[] +^eval(1!|2 #примечание()zzz +|0x100)
+#^eval(1!||2)
+^if(1!|1){y}{n} + +#@method[$bad] + +@doubleliterals[] +#^eval(1e-10) +^eval("1e-20") + +@xpath3[] +$constr[^xdoc::create{ проверка }] +$objectData[^constr.selectSingle[/constructor-data/object]] +$objectData.nodeType
+$objectData.firstChild.nodeValue + +@calltest[] +^calltest2[string] + +@calltest2[s] +$s + +@ttransformsep[] +$input[^xdoc::load[20020909131046.xml]] +$output[^input.transform[generated.xsl]] +^output.string[] + +@okswitchtest[] +$local[local value] +^switch[1]{ + ^case[1]{1code $local} +} + +@badswitchtest[] +^switch[1]{ + ^badswitchtestcase[] +} +@badswitchtestcase[][local] +$local[local value] + ^case[1]{1code $local} + +@badjunction[] +^badj1[] +^badj2[] + +@html-почта[] +$переменная[значение] +^mail:send[ + $.from[paf@mail] + $.to[paf@mail] + $.subject[htmltest1] + $.html{тест$переменная= !} +] + + +@грязные-cookie[] +$cookie:a[&] +$cookie:a + +@новый-split[] +$abc[a.b.c] +#$table[^abc.split[.]] +#$table[^abc.split[.;l]] +#$table[^abc.split[.;v]] +$table[^abc.split[.;lv]] +^table.menu{$table.piece}[,] +
+#$table[^abc.split[.;h]] +$table[^abc.split[.;hr]] +$table.0,$table.1,$table.2
+ +@delimiters[] +$a#1[1]
+$a#1=
+ + +@badcolumntest[] +$table[^table::load[ext.cfg]] +$table.b + + +@virtualtest[] +$derived[^derived::create[derived create actual param]] +^derived.test[] + + +@voidpostest[] +$s[] +^s.pos[$nothing] + +@postest[] +$s[$nothing] +^s.pos[$nothing] + +@cookieexpirestest[] +#$cookie:exptest[1] +#$cookie:exptest[$.value[2] $.expires(+1)] +$response:xxxx[^date::now(+10)] +$response:yyy[$.value[^date::now(+20)]] +$response:yyy[$.value[vvv] $.aaaa[^date::now(+20)]] + +@rbodytest[] +$request:body= +
+ +
+ +@staticstest2[] +^$derived:derived_var=$derived:derived_var
+^$derived:a=$derived:a
+$derived:a[changed] ^$derived:a=$derived:a
+$derived:derived_var[changed] +^$derived:derived_var=$derived:derived_var
+ +@staticstest[] +$derived[^derived::create[]] +^derived.test[] +
+^$derived.a=$derived.a
+^$derived.x=$derived.x
+
+^if($derived is derived){derived is derived}{error: derived is not derived}
+^if($derived is table){derived is table}{error:derived is not table}
+
+^^eval(^$derived)=^eval($derived)
+^^if(^$derived)=^if($derived){y}{n}
+ + +@xdoctypetest[] +$xdoc[^xdoc::create[x]] +^if($xdoc is xdoc){y}{n} + +@xtabletest[] +$xtableo[^xtable::create[]] +^if($xtableo is table){y}{n} +#^xtableo.columns[] + +@monthdays[month] +$from[^date::create(2000;$month;1)] +$to[^date::create($from)] ^to.roll[month](+1) +$result($to-$from) + +@badconstructor[] +^date::now[] + +@datesaving[] +$now[^date::now[]] +$now.daylightsaving
+$now.yearday
+# +$date[^date::create(2002;1;3)] +$date.daylightsaving
+$date.yearday + +@mail4[] +^mail:send[ + $.from[paf@mail.design.ru] + $.to[paf@mail.design.ru] + $.subject[^taint[uri][москва=E0_+ ]=2] + $.text[^taint[uri][москва]=] + $.html{link} +] +@processtest[] + $f[^file::load[text;piece.p]] ^process{$f.text} + $ORIGINS(1) + + +@badpos[] +$s[123] +^s.mid(0;2) + +@wwrapperpass[] +$h[^hash::create[]] +$h.a(1) +^my_method[^if(1){$h}] +работает. так и должно быть? + +@my_method[p] +^p._count[] + + +@tableclonelimit[] +$source[^table::create{a +aa +bb +cc}] +^source.offset(1) +#$dest[^table::create[$source]] +$dest[^table::create[$source;$.offset(2)]] +$dest[^table::create[$source;$.limit(2)]] +$dest[^table::create[$source;$.offset(1)$.limit(1)]] +$dest[^table::create[$source;$.offset(1)$.limit(2)]] +$dest[^table::create[$source;$.offset[cur]$.limit(2)]] + +^dest.menu{$dest.a}[,]
+ +@joinlimit[] +$source[^table::create{a +aa +bb +cc}] +^source.offset(2) +$dest[^table::create{a +xx +}] +#^dest.join[$source] +#^dest.join[$source;$.offset(2)] +#^dest.join[$source;$.limit(2)] +#^dest.join[$source;$.offset(1)$.limit(1)] +#^dest.join[$source;$.offset(1)$.limit(2)] +#^dest.join[$source;$.offset[cur]$.limit(1)] +^dest.join[$source;$.limit(0)] + +^dest.menu{$dest.a}[,]
+ +@cgit[] +$f[^file::cgi[showenv.cmd]] +$f.HELLO=
+$f.CONTENT-TYPE=
+$f.content-type=
+ + +@mimet[] +$f[^file::stat[a.GIF]] +$f.content-type + + +@tfind[] +^file:find[index.html] + +@tstdin[] +$f[^file::exec[test.pl;$.stdin[проверка stdin потока]]] +
$f.text
+ +@sergestrandef[] +$sQuantity[ ] +^sQuantity.int(10) + +@xmltransformbyxdoc[] +$xdoc[^xdoc::set{^process{ + + + + 1 2 + + +}}] +$sheet[^xdoc::create{ + + + + + + +defparam1 +defparam2 + + + + param1=
+ param2=
+ + test return +
+ + + test return3 + + + + + + +z + para1= + +
+ + +
+ + + + +
+}] + + +$xdoc[^xdoc.transform[$sheet]] +$string[^xdoc.string[$.method[html]]] +^string.save[a] +^untaint[html]{$string} + + + +@tnormalize[] +#s состоит из 1000 фрагментов +$s[^for[i](0;999){фрагмент }] +#это займет много ресурсов +^s.match[фраг][g]{перга} +#это займет меньше ресурсов +#$normalized[^s.normalize[]] +#^normalized.match[фраг][g]{перга} + +@sendtests[] +^text[] +#^html[] +#^text-n-html[] +#^file[] +#^text-n-file[] +#^text-n-html-n-file[] +#^backwardcomp[] + +@backwardcomp[] +^mail:send[ + $.from[paf] + $.to[paf] + $.body[this is text value] +] + +@text[] +^mail:send[ + $.from[paf] + $.to[paf] + $.text[ + $.value[this is text value] + ] +] + +@html[] +^mail:send[ + $.from[paf] + $.to[paf] + $.html{this is html value ^taint[<] 10} +] + +@text-n-html[] +^mail:send[ + $.from[paf] + $.to[paf] + $.text[ + $.value[this is text value] + ] + $.html[ + $.value{this is html value ^taint[<] 10} + ] +] + +@file[] +^mail:send[ + $.from[paf] + $.to[paf] + $.file[^file::load[binary;image.jpg]] +] + +@text-n-file[] +^mail:send[ + $.from[paf] + $.to[paf] + $.text[ + $.value[this is text value] + ] + $.file[^file::load[binary;image.jpg]] +] + +@text-n-html-n-file[] +^mail:send[ + $.from[paf] + $.to[paf] + $.text[ + $.value[this is text value] + ] + $.html[ + $.COntent-type[$.value[text/html]$.charset[windows-1251xx]] + $.value{this is html value ^taint[<] 10} + ] + $.file[^file::load[binary;image.jpg]] +] + + + +@md5salt[] +1234 + +@cryptdocsample[] +$users[^table::create{name password +alice *** +bob *** +}] + +$htpasswd[^table::create[nameless]{}] +^users.menu{ + ^htpasswd.append{$users.name:^math:crypt[$users.password;^$apr1^$^md5salt[]]} +} + +^htpasswd.save[nameless;.htpasswd-parser-test] + + +@tcrypt[] +#^math:crypt[123;^$apr1^$1234567890abcdef]
+^math:crypt[123;^$apr1^$]
+ +@tfilespec[] +src=$selffilespec
+dirname=^file:dirname[$selffilespec]
+basename=^file:basename[$selffilespec]
+justname=^file:justname[$selffilespec]
+justext=^file:justext[$selffilespec]
+ +@datecreatestring3[] +$new_after[^date::now(-3)] +$articles[^table::create{id title last_update +1 привет 2002-07-03}] +^articles.menu{ + $last_update[^date::create[$articles.last_update]] + $articles.title + ^if($last_update > $new_after){новая} +
+} + +@div[] +$var(5) +^var.inc(7) +^var.dec(3) +^var.div(4) +^var.mul(2) +$var + + +@xdocsave[] +$document[^xdoc::create{ + +строка1
+строка2
+
}] +^document.save[test.xml] + +@xdocstring[] +$document[^xdoc::create{ + +строка1
+строка2
+
}] +^document.string[ + $.method[html] +] + + +@xdocload[] +$document[^xdoc::load[article.xml]] +$response:body[^document.file[$.media-type[text/xml]]] + + +@xdoccreatetag[] +$document[^xdoc::create[document]] +$paraNode[^document.createElement[para]] +$dummy[^document.documentElement.appendChild[$paraNode]] +$response:body[^document.file[$.media-type[text/xml]]] + + +@xdoccreate[] +$document[^xdoc::create{ + +текст +}] +$response:body[^document.file[$.media-type[text/xml]]] + +@selectBool2[] +$d[^xdoc::set{ +}] +^if(^d.selectBool[/t/@n > 10]){ + /t/@n больше 10 +}{ + не больше +} + + +@selectNumber2[] +$d[^xdoc::set{ +}] +^d.selectNumber[number(/t/@n)+1]
+^d.selectNumber[2*2]
+ + +@selectString2[] +$d[^xdoc::set{ +}] +# результат=привет +^d.selectString[string(t/@attr)] + + +@selectSingle2[] +$d[^xdoc::set{ +}] +# результат=один элемент "t" +$element[^d.selectSingle[t]] +# результат=2 (количество атрибутов ) +Количество атрибутов: ^element.attributes._count[]
+# результат=не существует (нет ) +^if(^d.select[x]){ + x существует +}{ + x не существует +} + +@select2[] +$d[^xdoc::set{}] +# результат: список из одного элемента "t" +$list[^d.select[t]] +# результат: 2 = количество атрибутов +^list.0.attributes._count[]
+^for[i](0;$list-1){ + $attr[$list.$i] + $attr.nodeName = $attr.nodeType
+} + + +@selectt[] +$d[^xdoc::set{}] +$list[^d.select[t]] +^list.0.attributes._count[] + +@envt[] +$f[^file::exec[showenv.cmd; + $.bad[value] + $.CGI_good[value] +]] +$f.status
+$f.stderr
+
$f.text
+ + +@tserge[] +^if(" 09 "){y} + +@datetest[] + $f[^file::stat[some.zip]] +Размер в байтах: $f.size
+Год создания: $f.cdate.year
+$now[^date::now[]] +$DAYS_CONSIDERED_NEW(3) +Статус: ^if($f.mdate >= $now-$DAYS_CONSIDERED_NEW){новый;старый} + + +@checkList[] +...^oneOf[a;a,b,c]...
+#...^oneOf[a;ax,b,c]...
+...^oneWord[word]...
+#...^oneWord[wo rd]...
+ + +@oneOf[s;list][t] выдаёт строку, если строка она есть в списке(разделенном запятыми) +$t[^list.lsplit[,]] +^if(!^t.locate[piece;$s]){^throw[user;$s;unknown]} +$result[$s] + +@oneWord[s] +^if(^s.match[\W]){^throw[user.data;$s;not word]}{$s} + +@pngsize[] +$i[^image::measure[test.png]] +^i.html[] + + +@forkeys[] +$text[^form:fields.foreach[key;val]{$key=$val +}] +^text.save[ttt.txt] +=$text= + + +@tstoredproc2[] +^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{ + ^void:sql{exec pafvoid} +} + +@tstoredproc[] +^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{ + $t[^table::sql{exec pafproc}] +# $t[^table::sql{{call pafproc}}] + $c[^t.columns[]] + ^c.menu{$c.column}[
] +} + +@datecreatestring2[] + +^datecreatestring2show[2000] +^datecreatestring2show[2000-02] +^datecreatestring2show[2000-2-03] +^datecreatestring2show[2000-02-03 15] +^datecreatestring2show[2000-02-03 15:30] +^datecreatestring2show[2000-02-03 15:30:04] +^datecreatestring2show[2000-02-03 15:30:04 hren] +^datecreatestring2show[15:30] +^datecreatestring2show[15:30:05] +^datecreatestring2show[15:30:05 hren] +
+ +@datecreatestring2show[s] +$date[^date::create[$s]] + +$s^date.sql-string[] + + + +@junctionprob[][l] +$l[123] +$a{$l} +^junctionprobnested[$a] +@junctionprobnested[p] +$p + + +@callindirecttarget[] +callindirecttarget called +@callindirect[] +$f[$callindirecttarget] +^f[] + +@xpath2[] +$xdoc[^xdoc::create{ + + + + + + +}] + +#^xdoc.string[] + +$fieldList[^xdoc.selectSingle[/doc/field-list]] +#^fieldList.childNodes._count[] +$fields[^fieldList.select[field]] +#^fields._count[] +^fields.foreach[k;node]{ + $node.nodeName
+} +@counter[filespec][f;s] +^file:lock[$filespec]{ + $f[^file::load[text;$filespec]] + $s[^eval($f.text+1)] + ^s.save[$filespec] +} +$s + +@xmlspace[] +$xdoc[^xdoc::set{^process{ + + + + 1 2 + + +}}] +$xdoc[^xdoc.transform[global.xsl]] +$string[^xdoc.string[$.method[html]]] +^string.save[a] +^untaint[html]{$string} + +@badthrows[] +#^throw[a;b;] +^throw[a;] + +@mssqltypes1[] +^connect[odbc://DSN=nestle^;UID=nestle^;PWD=mbm32]{ +# ^string:sql{select { ts '1998-05-02 01:23:56.123' }} +# ^string:sql{select CAST({ ts '1998-05-02 01:23:56.123' }AS smalldatetime)} +# ^string:sql{select CAST({ts '2002-04-28 00:00:00.000'} AS smalldatetime)} + $t[^table::sql{select a from paf}] + ^t.count[] +} + +@datecreatestring[] +$d[^date::create[2002-04-33 01:03:04]] +^d.sql-string[] + @method[hash] $hash.key @mainZ[] @@ -168,6 +1414,10 @@ $h[^t.hash[p]] ^int:sql{select news_id from news where news_id=-1}[$.default{2}]
^string:sql{select news_id from news where news_id=-1}[$.default{2}] } +======= +
+OK +>>>>>>> 1.50 @tcrashlocaljunctionsv2[] $a[ @@ -629,13 +1879,13 @@ $t[^table::set{^untaint{^taint[$a-tab-b] @mail3[] ^mail:send[ - $.from[Александр Петросян ] - $.to[Александр Петросян ] - $.subject[проверка4] + $.from[Александр Петросян ] + $.to[Александр Петросян ] + $.subject[проверка2] $.body[ $.text[ $.content-type[$.value[text/plain] $.charset[windows-1251]] - $.body[проверка] + $.body[проверка^taint[uri][москва]=] ] $.attachment[ $.value[^file::load[text;index.html]] @@ -762,7 +2012,7 @@ $date.year $date.month $date.day @cookie2[] #=$cookie:clientType[$.value[test]]=
-=$cookie:clientType=
+=$cookie:CLASS.clientType=
@tableset[] @@ -1094,10 +2344,12 @@ $abc[abc] ^abc.save[abc] @calendar[] -2001;11:
-$week_days[^date:calendar[rus](2001;11)] +$year(2002) +$month(12) +${year}-${month}:
+$week_days[^date:calendar[rus]($year;$month)]
-^week_days.menu{^for[wday](0;7){^if($week_days.$wday){$week_days.$wday; ^; ^;} }
} +^week_days.menu{^for[wday](0;6){^if($week_days.$wday){$week_days.$wday; ^; ^;} }=$week_days.week,$week_days.year=
}
@thash[] @@ -1134,15 +2386,16 @@ $response:body[^pict.gif[]] @mail2[] ^mail:send[ + $.message-id[<6615%1@parser.ru>] $.content-type[$.value[text/plain] $.charset[windows-1251]] $.from[Александр Петросян ] $.to[Александр Петросян ] - $.subject[проверка] - $.body[проверка] + $.subject[проверка проверка] + $.text[проверка] ] @cookie[] -$env:HTTP_COOKIE
+#$env:HTTP_COOKIE
#$cookie:переменная[test тест ТЕСТ2] =$cookie:переменная=
@@ -1208,10 +2461,6 @@ $s[abcАБВ] 3] ] -@exec[] -$a[^file::exec[fc.exe;;a;b]] -$a.status|$a.stderr
- @fori[][i] ^for[i](1;3){... =$i= ...} @@ -1231,7 +2480,7 @@ $xdoc[^xdoc::set{ +$xdoc[^xdoc::create{ @@ -1241,7 +2490,7 @@ $xdoc[^xdoc::set{^process{ПИФ^taint[&] -}}] +}] @xml[] ^xdata[]