--- parser3/src/main/pa_request.C 2002/04/16 09:32:00 1.199 +++ parser3/src/main/pa_request.C 2002/04/29 05:59:33 1.205 @@ -4,7 +4,7 @@ Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) - $Id: pa_request.C,v 1.199 2002/04/16 09:32:00 paf Exp $ + $Id: pa_request.C,v 1.205 2002/04/29 05:59:33 paf Exp $ */ #include "pa_sapi.h" @@ -163,8 +163,8 @@ gettimeofday(&mt[0],NULL); charsets->for_each(load_charset); else throw Exception("parser.runtime", - &vcharsets->name(), - "must be hash"); + 0, + "$" CHARSETS_NAME " must be hash"); } } // configure root options @@ -257,26 +257,25 @@ gettimeofday(&mt[2],NULL); if(const Method *method=junction->method) { // preparing to pass parameters to // @postprocess[data] - VMethodFrame frame(pool(), value->name(), *junction); + VMethodFrame frame(pool(), method->name, *junction); frame.set_self(*main_class); - frame.store_param(method->name, - &body_vstring_before_post_process); + frame.store_param(&body_vstring_before_post_process); body_vstring_after_post_process= NEW VString(execute_method(frame, *method)); } - bool origins_mode=main_class->get_element(*origins_mode_name)!=0; + bool lorigins_mode=origins_mode(); const VFile *body_file=body_vstring_after_post_process->as_vfile( - String::UL_UNSPECIFIED, origins_mode); + String::UL_UNSPECIFIED, lorigins_mode); // extract response body Value *body_value=static_cast( response.fields().get(*body_name)); if(body_value) // there is some $response.body body_file=body_value->as_vfile(); - else if(origins_mode) + else if(lorigins_mode) response.fields().put(*content_type_name, NEW VString(*NEW String(pool(), ORIGINS_CONTENT_TYPE))); @@ -310,8 +309,7 @@ t[9]-t[3] // we're returning not result, but error explanation try { // log the beast - const String *problem_source=e.problem_source(); - if(problem_source && problem_source->size()) + if(const String *problem_source=e.problem_source()) SAPI::log(pool(), "%s: " #ifndef NO_STRING_ORIGIN @@ -353,11 +351,11 @@ t[9]-t[3] if(const Method *method=junction->method) { // preparing to pass parameters to // @unhandled_exception[exception;stack] - VMethodFrame frame(pool(), value->name(), *junction); + VMethodFrame frame(pool(), method->name, *junction); frame.set_self(*main_class); // $exception - frame.store_param(method->name, &exception2vhash(pool(), e)); + frame.store_param(&exception2vhash(pool(), e)); // $stack[^table::set{name origin}] Array& stack_trace_columns=*NEW Array(pool()); stack_trace_columns+=NEW String(pool(), "name"); @@ -381,8 +379,7 @@ t[9]-t[3] #endif stack_trace+=&row; } - frame.store_param(method->name, - NEW VTable(pool(), &stack_trace)); + frame.store_param(NEW VTable(pool(), &stack_trace)); // future $response:body= // execute ^exception[origin;source;comment;type;code;stack] @@ -396,8 +393,7 @@ t[9]-t[3] // make up result: $origin $source $comment $type $code char *buf=(char *)malloc(MAX_STRING); size_t printed=0; - const String *problem_source=e.problem_source(); - if(problem_source) { + if(const String *problem_source=e.problem_source()) { #ifndef NO_STRING_ORIGIN const Origin& origin=problem_source->origin(); if(origin.file) @@ -461,8 +457,8 @@ VStateless_class *Request::use_file(cons } } else throw Exception("parser.runtime", - &element->name(), - "must be string or table"); + 0, + "$" CLASS_PATH_NAME " must be string or table"); if(!file_spec) throw Exception("parser.runtime", &file_name, @@ -471,7 +467,7 @@ VStateless_class *Request::use_file(cons if(!file_spec) throw Exception("parser.runtime", &file_name, - "usage failed - no " MAIN_CLASS_NAME ":" CLASS_PATH_NAME " were specified"); + "usage failed - no $" MAIN_CLASS_NAME ":" CLASS_PATH_NAME " were specified"); } char *source=file_read_text(pool(), *file_spec, fail_on_read_problem); @@ -563,11 +559,9 @@ void Request::output_result(const VFile& ); // prepare header: content-length - if(client_content_length) { // useful for redirecting [header "location: http://..."] - char content_length_cstr[MAX_NUMBER]; - snprintf(content_length_cstr, MAX_NUMBER, "%u", client_content_length); - SAPI::add_header_attribute(pool(), "content-length", content_length_cstr); - } + char content_length_cstr[MAX_NUMBER]; + snprintf(content_length_cstr, MAX_NUMBER, "%u", client_content_length); + SAPI::add_header_attribute(pool(), "content-length", content_length_cstr); // send header SAPI::send_header(pool());