--- parser3/src/classes/table.C 2006/04/09 13:38:47 1.221 +++ parser3/src/classes/table.C 2006/06/09 19:09:19 1.223 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char * const IDENT_TABLE_C="$Date: 2006/04/09 13:38:47 $"; +static const char * const IDENT_TABLE_C="$Date: 2006/06/09 19:09:19 $"; #include "classes.h" #include "pa_vmethod_frame.h" @@ -399,17 +399,20 @@ static void _save(Request& r, MethodPara TableSeparators separators; if(param_indexcount()) + Value& voptions=params.as_no_junction(param_index++, "additional params must be hash"); + if( voptions.is_defined() && !voptions.is_string() ) { + if(HashStringValue* options=voptions.get_hash()) { + int valid_options=separators.load(*options); + if(valid_options!=options->count()) + throw Exception("parser.runtime", + 0, + "invalid option passed"); + } else { throw Exception("parser.runtime", 0, - "invalid option passed"); - } else - throw Exception("parser.runtime", - 0, - "additional params must be hash (did you spell mode parameter correctly?)"); - + "additional params must be hash (did you spell mode parameter correctly?)"); + } + } } if(param_index