case CMDIdx: { gchar *val1 = NULL; gchar *val2 = NULL; static const char *opts[] = { "-option1", "-option2", NULL }; enum optsIdx { opt1IDX, opt2IDX }; gint i, idx; for ( i = 2; i < objc; i += 2 ) { getIdx ( opts, Tcl_GetString ( objv[i] ), &idx ); switch ( idx ) { case
val1 = Tcl_GetString ( objv[i + 1] ); } break; case
val2 = Tcl_GetString ( objv[i + 1] ); } break; default: { return TCL_ERROR; } } } some_function (widget, val1, val2); } break; |