--- parser3/src/classes/hashfile.C 2013/10/17 22:26:10 1.55 +++ parser3/src/classes/hashfile.C 2020/11/10 22:42:24 1.63 @@ -1,7 +1,7 @@ /** @file Parser: @b hashfile parser class. - Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2017 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.55 2013/10/17 22:26:10 moko Exp $"; +volatile const char * IDENT_HASHFILE_C="$Id: hashfile.C,v 1.63 2020/11/10 22:42:24 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 @@ -42,7 +42,7 @@ static void _open(Request& r, MethodPara r.classes_conf.put(OPEN_DATA_NAME, file_list); } - const String& file_spec=r.absolute(params.as_string(0, FILE_NAME_MUST_BE_STRING)); + const String& file_spec=r.full_disk_path(params.as_string(0, FILE_NAME_MUST_BE_STRING)); if(file_list->get(file_spec)) throw Exception(PARSER_RUNTIME, 0, @@ -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) { @@ -106,20 +106,20 @@ static bool one_foreach_cycle( info.r->put_element(*info.var_context, *info.value_var_name, vvalue); } - StringOrValue sv_processed=info.r->process(*info.body_code); - Request::Skip lskip=info.r->get_skip(); info.r->set_skip(Request::SKIP_NOTHING); + Value& sv_processed=info.r->process(*info.body_code); + TempSkip4Delimiter skip(*info.r); 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; + return skip.check_break(); } static void _foreach(Request& r, MethodParams& params) { InCycle temp(r); @@ -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 };