--- parser3/src/classes/table.C 2001/03/27 16:35:52 1.34 +++ parser3/src/classes/table.C 2001/03/28 08:01:40 1.36 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: table.C,v 1.34 2001/03/27 16:35:52 paf Exp $ + $Id: table.C,v 1.36 2001/03/28 08:01:40 paf Exp $ */ #include "pa_config_includes.h" @@ -271,10 +271,10 @@ static void _sort(Request& r, const Stri bool reverse; if(params->size()==2) { // ..[asc|desc] - Value& sequence=*(Value *)params->get(1); + Value& order=*(Value *)params->get(1); // forcing ..[this param-type] - r.fail_if_junction_(true, sequence, method_name, "sequence must not be junction"); - reverse=sequence.as_string()=="desc"; + r.fail_if_junction_(true, order, method_name, "order must not be junction"); + reverse=order.as_string()=="desc"; } else reverse=false; @@ -314,6 +314,14 @@ static void _sort(Request& r, const Stri table.set_current(0); } +static void _locate(Request& r, const String&, Array *params) { + VTable& vtable=*static_cast(r.self); + Table& table=vtable.table(); + vtable.last_locate_was_successful=table.locate( + static_cast(params->get(0))->as_string(), + static_cast(params->get(1))->as_string()); +} + // initialize void initialize_table_class(Pool& pool, VStateless_class& vclass) { @@ -354,4 +362,6 @@ void initialize_table_class(Pool& pool, // ^table.sort(numeric-key-maker) ^table.sort(numeric-key-maker)[asc|desc] vclass.add_native_method("sort", _sort, 1, 2); + // ^table.locate[field;value] + vclass.add_native_method("locate", _locate, 2, 2); }