+ int tmp;
+ int j,n;
+ Tcl_Obj *elem;
+ Tcl_HashEntry *entry;
+ Tcl_ResetResult(interp);
+ tmp=0;
+ if (Tcl_ListObjLength(interp,objv[i+1],&n)==TCL_ERROR) {
+ return TCL_ERROR;
+ }
+ for (j=0;j<n;j++) {
+ Tcl_ListObjIndex(interp,objv[i+1],j,&elem);
+ entry=Tcl_FindHashEntry(info->option_names,Tcl_GetString(elem));
+ if (!entry) {
+ if (n!=1 || Tcl_GetIntFromObj(interp,elem,&tmp)!=TCL_OK) {
+ Tcl_AppendResult(interp,"Invalid option '",
+ Tcl_GetString(elem),"' valid ones are:",NULL);
+ Syslog_ListHash(interp,info->option_names);
+ return TCL_ERROR;
+ }
+ } else {
+ tmp |= (int) Tcl_GetHashValue(entry);
+ }
+ }
+