--- parser3/src/classes/string.C 2001/12/15 21:28:18 1.92 +++ parser3/src/classes/string.C 2002/02/07 11:31:53 1.95 @@ -4,7 +4,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://paf.design.ru) - $Id: string.C,v 1.92 2001/12/15 21:28:18 paf Exp $ + $Id: string.C,v 1.95 2002/02/07 11:31:53 paf Exp $ */ #include "classes.h" @@ -80,11 +80,12 @@ static void _double(Request& r, const St /*not static*/void _string_format(Request& r, const String& method_name, MethodParams *params) { Pool& pool=r.pool(); - Value& fmt=params->as_junction(0, "fmt must be code"); + Value& fmt_maybe_code=params->get(0); + // for some time due to stupid {} in original design + const String& fmt= + (fmt_maybe_code.get_junction()?r.process(fmt_maybe_code):fmt_maybe_code).as_string(); - Temp_lang temp_lang(r, String::UL_PASS_APPENDED); - char *buf=format(pool, r.self->as_double(), - r.process(fmt).as_string().cstr(String::UL_UNSPECIFIED, r.connection)); + char *buf=format(pool, r.self->as_double(), fmt.cstr()); String result(pool); result.APPEND_CLEAN(buf, 0, @@ -337,11 +338,6 @@ const String* sql_result_string(Request& Hash *& options, Value *& default_code) { Pool& pool=r.pool(); - if(!r.connection) - throw Exception(0, 0, - &method_name, - "without connect"); - Value& statement=params->as_junction(0, "statement must be code"); ulong limit=0; @@ -371,10 +367,10 @@ const String* sql_result_string(Request& Temp_lang temp_lang(r, String::UL_SQL); const String& statement_string=r.process(statement).as_string(); const char *statement_cstr= - statement_string.cstr(String::UL_UNSPECIFIED, r.connection); + statement_string.cstr(String::UL_UNSPECIFIED, r.connection(&method_name)); String_sql_event_handlers handlers(pool, statement_string, statement_cstr); try { - r.connection->query( + r.connection(&method_name)->query( statement_cstr, offset, limit, handlers); } catch(const Exception& e) { // query problem @@ -426,7 +422,6 @@ static void _replace(Request& r, const S } static void _save(Request& r, const String& method_name, MethodParams *params) { - Pool& pool=r.pool(); const String& file_name=params->as_string(params->size()-1, "file name must be string"); @@ -445,7 +440,7 @@ static void _save(Request& r, const Stri // write const char *buf=src.cstr(String::UL_UNSPECIFIED); - file_write(pool, r.absolute(file_name), + file_write(r.absolute(file_name), buf, strlen(buf), true, do_append); }