--- parser3/src/include/pa_request.h 2001/10/15 11:48:04 1.103 +++ parser3/src/include/pa_request.h 2001/11/05 10:21:26 1.108 @@ -4,7 +4,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_request.h,v 1.103 2001/10/15 11:48:04 parser Exp $ + $Id: pa_request.h,v 1.108 2001/11/05 10:21:26 paf Exp $ */ #ifndef PA_REQUEST_H @@ -19,6 +19,7 @@ #include "pa_vclass.h" #include "pa_vobject.h" #include "pa_venv.h" +#include "pa_vstatus.h" #include "pa_vform.h" #include "pa_vmath.h" #include "pa_vrequest.h" @@ -48,7 +49,7 @@ class Methoded; /// Main workhorse. class Request : public Pooled { - friend Temp_lang; + friend class Temp_lang; public: /// some information from web server @@ -118,6 +119,10 @@ public: void write_assign_lang(Value& avalue) { wcontext->write(avalue, flang); } + /// appending string, assigning untaint language + void write_assign_lang(const String& astring) { + wcontext->write(astring, flang); + } /// appending possible string, passing language built into string being written void write_pass_lang(Value& avalue) { wcontext->write(avalue, String::UL_PASS_APPENDED); @@ -154,6 +159,8 @@ public: Methoded& OP; /// $env:fields VEnv env; + /// $status:fields + VStatus status; /// $form:elements VForm form; /// $math:constants @@ -198,6 +205,9 @@ private: // core data /// charset->pcre_tables Hash CTYPE; + /// stack trace + Stack trace; + private: // compile.C VStateless_class& real_compile(COMPILE_PARAMS); @@ -303,9 +313,10 @@ private: Value& get_as(int index, bool as_junction, const char *msg) { Value& result=get(index); if((result.get_junction()!=0) ^ as_junction) - THROW(0, 0, + throw Exception(0, 0, &fmethod_name, "%s (parameter #%d)", msg, 1+index); + return result; }