--- parser3/src/classes/op.C 2012/06/04 13:46:18 1.210 +++ parser3/src/classes/op.C 2012/10/17 10:25:58 1.212 @@ -18,7 +18,7 @@ #include "pa_vclass.h" #include "pa_charset.h" -volatile const char * IDENT_OP_C="$Id: op.C,v 1.210 2012/06/04 13:46:18 moko Exp $"; +volatile const char * IDENT_OP_C="$Id: op.C,v 1.212 2012/10/17 10:25:58 misha Exp $"; // limits @@ -145,7 +145,7 @@ static void _taint(Request& r, MethodPar static void _apply_taint(Request& r, MethodParams& params) { String::Language lang=params.count()==1 ? String::L_AS_IS : get_untaint_lang(params.as_string(0, "lang must be string")); const String &sbody=params.as_string(params.count()-1, "body must be string"); - String::Body result_body=sbody.cstr_to_string_body_untaint(lang, 0, &r.charsets); + String::Body result_body=sbody.cstr_to_string_body_untaint(lang, r.connection(), &r.charsets); r.write_pass_lang(*new String(result_body, String::L_AS_IS)); } @@ -175,36 +175,30 @@ static void _process(Request& r, MethodP // temporary zero @auto so it wouldn't be auto-called in Request::use_buf Temp_method temp_method_auto(*target_class, auto_method_name, 0); - size_t options_index=index+1; - HashStringValue* options=0; - if(options_indexget(PROCESS_MAIN_OPTION_NAME)) { - valid_options++; - main_alias=&vmain_alias->as_string(); - } - if(Value* vfile_alias=options->get(PROCESS_FILE_OPTION_NAME)) { - valid_options++; - file_alias=&vfile_alias->as_string(); - } - if(Value* vline_no_alias_offset=options->get(PROCESS_LINENO_OPTION_NAME)) { - valid_options++; - line_no_alias_offset=vline_no_alias_offset->as_int(); + + size_t options_index=index+1; + if(options_indexget(PROCESS_MAIN_OPTION_NAME)) { + valid_options++; + main_alias=&vmain_alias->as_string(); + } + if(Value* vfile_alias=options->get(PROCESS_FILE_OPTION_NAME)) { + valid_options++; + file_alias=&vfile_alias->as_string(); + } + if(Value* vline_no_alias_offset=options->get(PROCESS_LINENO_OPTION_NAME)) { + valid_options++; + line_no_alias_offset=vline_no_alias_offset->as_int(); + } + + if(valid_options!=options->count()) + throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); } - - if(valid_options!=options->count()) - throw Exception(PARSER_RUNTIME, 0, CALLED_WITH_INVALID_OPTION); - } uint processe_file_no=file_alias? r.register_file(r.absolute(*file_alias))