Diff for /parser3/src/classes/string.C between versions 1.92 and 1.97

version 1.92, 2001/12/15 21:28:18 version 1.97, 2002/02/08 08:30:10
Line 1 Line 1
 /** @file  /** @file
         Parser: @b string parser class.          Parser: @b string parser class.
   
         Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexander Petrosyan <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
   
         $Id$          $Id$
 */  */
Line 80  static void _double(Request& r, const St Line 80  static void _double(Request& r, const St
 /*not static*/void _string_format(Request& r, const String& method_name, MethodParams *params) {  /*not static*/void _string_format(Request& r, const String& method_name, MethodParams *params) {
         Pool& pool=r.pool();          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(), fmt.cstr());
         char *buf=format(pool, r.self->as_double(),   
                 r.process(fmt).as_string().cstr(String::UL_UNSPECIFIED, r.connection));  
   
         String result(pool);          String result(pool);
         result.APPEND_CLEAN(buf, 0,           result.APPEND_CLEAN(buf, 0, 
Line 337  const String* sql_result_string(Request& Line 338  const String* sql_result_string(Request&
                                                                 Hash *& options, Value *& default_code) {                                                                  Hash *& options, Value *& default_code) {
         Pool& pool=r.pool();          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");          Value& statement=params->as_junction(0, "statement must be code");
   
         ulong limit=0;          ulong limit=0;
Line 371  const String* sql_result_string(Request& Line 367  const String* sql_result_string(Request&
         Temp_lang temp_lang(r, String::UL_SQL);          Temp_lang temp_lang(r, String::UL_SQL);
         const String& statement_string=r.process(statement).as_string();          const String& statement_string=r.process(statement).as_string();
         const char *statement_cstr=          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);          String_sql_event_handlers handlers(pool, statement_string, statement_cstr);
         try {          try {
                 r.connection->query(                  r.connection(&method_name)->query(
                         statement_cstr, offset, limit,                           statement_cstr, offset, limit, 
                         handlers);                          handlers);
         } catch(const Exception& e) { // query problem          } catch(const Exception& e) { // query problem
Line 426  static void _replace(Request& r, const S Line 422  static void _replace(Request& r, const S
 }  }
   
 static void _save(Request& r, const String& method_name, MethodParams *params) {  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,           const String& file_name=params->as_string(params->size()-1, 
                 "file name must be string");                  "file name must be string");
   
Line 445  static void _save(Request& r, const Stri Line 440  static void _save(Request& r, const Stri
   
         // write          // write
         const char *buf=src.cstr(String::UL_UNSPECIFIED);          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);                  buf, strlen(buf), true, do_append);
 }  }
   

Removed from v.1.92  
changed lines
  Added in v.1.97


E-mail: