--- parser3/src/classes/op.C 2020/10/29 16:02:21 1.256 +++ parser3/src/classes/op.C 2020/12/17 16:50:53 1.260 @@ -1,7 +1,7 @@ /** @file Parser: parser @b operators. - Copyright (c) 2001-2017 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2020 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ @@ -18,7 +18,7 @@ #include "pa_vclass.h" #include "pa_charset.h" -volatile const char * IDENT_OP_C="$Id: op.C,v 1.256 2020/10/29 16:02:21 moko Exp $"; +volatile const char * IDENT_OP_C="$Id: op.C,v 1.260 2020/12/17 16:50:53 moko Exp $"; // defines @@ -200,7 +200,7 @@ static void _process(Request& r, MethodP throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); } - uint processe_file_no=file_alias ? r.register_file(r.absolute(*file_alias)) : pseudo_file_no__process; + uint processe_file_no=file_alias ? r.register_file(r.full_disk_path(*file_alias)) : pseudo_file_no__process; // process...{string} Value& vjunction=params.as_junction(index, "body must be code"); // evaluate source to process @@ -319,7 +319,7 @@ static void _use(Request& r, MethodParam Temp_class_replace class_replace(r, allow_class_replace); - r.use_file(r.main_class, vfile.as_string(), use_origin, load_auto_p); + r.use_file(vfile.as_string(), use_origin, load_auto_p); } static void set_skip(Request& r, Request::Skip askip) { @@ -738,7 +738,7 @@ static time_t as_expires(Request& r, Met } static const String& as_file_spec(Request& r, MethodParams& params, int index) { - return r.absolute(params.as_string(index, "filespec must be string")); + return r.full_disk_path(params.as_string(index, "filespec must be string")); } static void _cache(Request& r, MethodParams& params) { @@ -877,18 +877,18 @@ static void _throw_operator(Request&, Me if(Value* value=hash->get(exception_comment_part_name)) comment=value->as_string().cstr(); - throw Exception(type, - source?source:0, - "%s", comment?comment:""); + Exception e(type, source, 0); + e.add_comment(comment); // to avoid MAX_LENGTH limit + throw e; } else - throw Exception(PARSER_RUNTIME, - 0, - "one-param version has hash or string param"); + throw Exception(PARSER_RUNTIME, 0, "one-param version has hash or string param"); } else { const char* type=params.as_string(0, "type must be string").cstr(); const String* source=params.count()>1? ¶ms.as_string(1, "source must be string"):0; const char* comment=params.count()>2? params.as_string(2, "comment must be string").cstr():0; - throw Exception(type, source, "%s", comment?comment:""); + Exception e(type, source, 0); + e.add_comment(comment); // to avoid MAX_LENGTH limit + throw e; } }