--- parser3/src/classes/hashfile.C 2012/03/16 09:24:07 1.53 +++ parser3/src/classes/hashfile.C 2016/11/01 23:10:40 1.60 @@ -1,7 +1,7 @@ /** @file Parser: @b hashfile parser class. - Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ @@ -12,7 +12,7 @@ #include "pa_vhashfile.h" #include "pa_vhash.h" -volatile const char * IDENT_HASHFILE_C="$Id: hashfile.C,v 1.53 2012/03/16 09:24:07 moko Exp $"; +volatile const char * IDENT_HASHFILE_C="$Id: hashfile.C,v 1.60 2016/11/01 23:10:40 moko Exp $"; // class @@ -25,7 +25,7 @@ public: // global variable -DECLARE_CLASS_VAR(hashfile, new MHashfile, 0); +DECLARE_CLASS_VAR(hashfile, new MHashfile); // defines for statics @@ -58,7 +58,7 @@ static void _hash(Request& r, MethodPara // write out result VHash& result=*new VHash(*self.get_hash()); - r.write_no_lang(result); + r.write(result); } static void _delete(Request& r, MethodParams& params) { @@ -99,25 +99,25 @@ static bool one_foreach_cycle( Foreach_info& info=*static_cast(ainfo); if(info.key_var_name){ VString* vkey=new VString(*new String(key, String::L_TAINTED)); - info.var_context->put_element(*info.key_var_name, vkey, false); + info.r->put_element(*info.var_context, *info.key_var_name, vkey); } if(info.value_var_name){ VString* vvalue=new VString(value); - info.var_context->put_element(*info.value_var_name, vvalue, false); + info.r->put_element(*info.var_context, *info.value_var_name, vvalue); } - StringOrValue sv_processed=info.r->process(*info.body_code); + Value& sv_processed=info.r->process(*info.body_code); Request::Skip lskip=info.r->get_skip(); info.r->set_skip(Request::SKIP_NOTHING); const String* s_processed=sv_processed.get_string(); if(info.delim_maybe_code && s_processed && !s_processed->is_empty()) { // delimiter set and we have body if(info.need_delim) // need delim & iteration produced string? - info.r->write_pass_lang(info.r->process(*info.delim_maybe_code)); + info.r->write(info.r->process(*info.delim_maybe_code)); else info.need_delim=true; } - info.r->write_pass_lang(sv_processed); + info.r->write(sv_processed); return lskip==Request::SKIP_BREAK; } @@ -132,7 +132,7 @@ static void _foreach(Request& r, MethodP key_var_name.is_empty()? 0 : &key_var_name, value_var_name.is_empty()? 0 : &value_var_name, ¶ms.as_junction(2, "body must be code"), - /*delimiter*/params.count()>3 ? params.get(3) : 0, + /*delimiter*/params.count()>3 ? ¶ms[3] : 0, /*var_context*/r.get_method_frame()->caller(), false };