--- parser3/src/classes/Attic/root.C 2001/03/08 13:19:09 1.1 +++ parser3/src/classes/Attic/root.C 2001/03/09 08:19:46 1.6 @@ -1,13 +1,21 @@ /* -$Id: root.C,v 1.1 2001/03/08 13:19:09 paf Exp $ +$Id: root.C,v 1.6 2001/03/09 08:19:46 paf Exp $ */ #include "pa_request.h" -static void _if(Request& r, Array& params) { - bool condition=r.autocalc(*static_cast(params.get(0))).get_bool(); - Value& value=r.autocalc(*static_cast(params.get(condition?1:2))); - r.write(value); +static void _if(Request& r, Array *params) { + bool condition= + r.autocalc( + *static_cast(params->get(0)), + false/*don't make it string*/).get_bool(); + if(condition) { + Value& value=r.autocalc(*static_cast(params->get(1))); + r.wcontext->write(value); + } else if(params->size()==3) { + Value& value=r.autocalc(*static_cast(params->get(2))); + r.wcontext->write(value); + } } void construct_root_class(Request& request) { @@ -17,7 +25,7 @@ void construct_root_class(Request& reque Method& IF_METHOD=*new(pool) Method(pool, IF_NAME, - 3/*numbered_params_count*/, + 2, 3, // min,max numbered_params_count 0/*params_names*/, 0/*locals_names*/, 0/*parser_code*/, _if );