|
|
| version 1.93, 2002/01/16 10:28:33 | 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(0))); | |
| String result(pool); | String result(pool); |
| result.APPEND_CLEAN(buf, 0, | result.APPEND_CLEAN(buf, 0, |
| Line 421 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 440 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); |
| } | } |