--- parser3/src/classes/string.C 2001/05/04 10:42:37 1.44 +++ parser3/src/classes/string.C 2001/05/11 17:45:10 1.48 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: string.C,v 1.44 2001/05/04 10:42:37 paf Exp $ + $Id: string.C,v 1.48 2001/05/11 17:45:10 parser Exp $ */ #include "classes.h" @@ -31,22 +31,25 @@ public: // Methoded // methods -static void _length(Request& r, const String&, MethodParams *) { +static void _length(Request& r, const String& method_name, MethodParams *) { Pool& pool=r.pool(); - Value& value=*new(pool) VDouble(pool, r.self->get_string()->size()); - r.write_no_lang(value); + Value& result=*new(pool) VDouble(pool, r.self->get_string()->size()); + result.set_name(method_name); + r.write_no_lang(result); } -static void _int(Request& r, const String&, MethodParams *) { +static void _int(Request& r, const String& method_name, MethodParams *) { Pool& pool=r.pool(); - Value& value=*new(pool) VInt(pool, (int)r.self->as_double()); - r.write_no_lang(value); + Value& result=*new(pool) VInt(pool, r.self->as_int()); + result.set_name(method_name); + r.write_no_lang(result); } -static void _double(Request& r, const String&, MethodParams *) { +static void _double(Request& r, const String& method_name, MethodParams *) { Pool& pool=r.pool(); - Value& value=*new(pool) VDouble(pool, r.self->as_double()); - r.write_no_lang(value); + Value& result=*new(pool) VDouble(pool, r.self->as_double()); + result.set_name(method_name); + r.write_no_lang(result); } /*not static*/void _string_format(Request& r, const String& method_name, MethodParams *params) { @@ -100,11 +103,9 @@ static void _pos(Request& r, const Strin static void split_list(Request& r, const String& method_name, MethodParams *params, const String& string, Array& result) { - Pool& pool=r.pool(); - Value& delim_value=params->get_no_junction(0, "delimiter must not be code"); - string.split(result, 0, delim_value.as_string(), String::UL_CLEAN, -1); + string.split(result, 0, delim_value.as_string()); } static void _lsplit(Request& r, const String& method_name, MethodParams *params) { @@ -183,10 +184,6 @@ static void replace_action(Table& table, *ai.dest << *ai.post_match; } -/** search/replace - ^string.match[regexp][options] - ^string.match[regexp][options]{replacement-code} -*/ static void _match(Request& r, const String& method_name, MethodParams *params) { Pool& pool=r.pool(); const String& src=*static_cast(r.self)->get_string();