--- parser3/src/classes/table.C 2001/03/19 19:17:41 1.17 +++ parser3/src/classes/table.C 2001/03/19 20:46:35 1.19 @@ -3,7 +3,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: table.C,v 1.17 2001/03/19 19:17:41 paf Exp $ + $Id: table.C,v 1.19 2001/03/19 20:46:35 paf Exp $ */ #include "pa_common.h" @@ -26,15 +26,15 @@ static void set_or_load( // data is last parameter Value *vdata=static_cast(params->get(params->size()-1)); // forcing - // ^load[this body type] + // ^load{this body type} // ^set{this body type} - r.fail_if_junction_(is_load, *vdata, - method_name, is_load?"body must not be junction":"body must be junction"); + r.fail_if_junction_(false, *vdata, method_name, "body must be junction"); // data or file_name char *data_or_filename; { - Temp_lang temp_lang(r, String::Untaint_lang::TABLE); + Temp_lang temp_lang(r, + is_load ? String::Untaint_lang::FILE : String::Untaint_lang::TABLE); data_or_filename=r.process(*vdata).as_string().cstr(); } // data @@ -75,7 +75,7 @@ static void set_or_load( }; // replace any previous table value - r.self->as_vtable().set_table(table); + static_cast(r.self)->set_table(table); } @@ -89,19 +89,19 @@ static void _load(Request& r, const Stri static void _count(Request& r, const String&, Array *) { Pool& pool=r.pool(); - Value& value=*new(pool) VInt(pool, r.self->as_vtable().table().size()); + Value& value=*new(pool) VInt(pool, static_cast(r.self)->table().size()); r.write_no_lang(value); } static void _line(Request& r, const String&, Array *) { Pool& pool=r.pool(); - Value& value=*new(pool) VInt(pool, 1+r.self->as_vtable().table().get_current()); + Value& value=*new(pool) VInt(pool, 1+static_cast(r.self)->table().get_current()); r.write_no_lang(value); } static void _offset(Request& r, const String&, Array *params) { Pool& pool=r.pool(); - Table& table=r.self->as_vtable().table(); + Table& table=static_cast(r.self)->table(); if(params->size()) { if(int size=table.size()) { int offset= @@ -122,7 +122,7 @@ static void _menu(Request& r, const Stri Value *delim_code=params->size()==2?static_cast(params->get(1)):0; - Table& table=r.self->as_vtable().table(); + Table& table=static_cast(r.self)->table(); bool need_delim=false; for(int i=0; ias_vtable().table(); + Table& table=static_cast(r.self)->table(); if(table.size()==0) { Value& value=r.process(*static_cast(params->get(0))); r.write_pass_lang(value);