return TCL_OK;
}
+int pat_constv(Tcl_Interp *ip, Tcl_Obj *var,
+ Tcl_Obj **val_r, Tcl_ObjType *type) {
+ int rc;
+ Tcl_Obj *val;
+
+ val= Tcl_ObjGetVar2(ip,var,0,TCL_LEAVE_ERR_MSG);
+ if (!val) return TCL_ERROR;
+
+ if (type) {
+ rc= Tcl_ConvertToType(ip,val,type);
+ if (rc) return rc;
+ }
+
+ *val_r= val;
+ return TCL_OK;
+}
+
void init_somethingv(Something_Var *sth) {
sth->obj=0; sth->var=0; sth->copied=0;
}
Init hbv @.hb=0; init_somethingv(&@.sth);
Fini hbv fini_somethingv(ip, rc, &@.sth);
+Type constv(Tcl_ObjType*): Tcl_Obj *@
+
Type maskmapv: MaskMap_Var @
Init maskmapv @.mm=0; init_somethingv(&@.sth);
Fini maskmapv fini_somethingv(ip, rc, &@.sth);
Table maskmap MaskMap_SubCommand
lookup
- map maskmapv
+ map constv(&maskmap_type)
addr hb
?def obj
=> obj
return TCL_OK;
}
+int pat_constv(Tcl_Interp *ip, Tcl_Obj *var,
+ Tcl_Obj **val_r, Tcl_ObjType *type) {
+ int rc;
+ Tcl_Obj *val;
+
+ val= Tcl_ObjGetVar2(ip,var,0,TCL_LEAVE_ERR_MSG);
+ if (!val) return TCL_ERROR;
+
+ if (type) {
+ rc= Tcl_ConvertToType(ip,val,type);
+ if (rc) return rc;
+ }
+
+ *val_r= val;
+ return TCL_OK;
+}
+
void init_somethingv(Something_Var *sth) {
sth->obj=0; sth->var=0; sth->copied=0;
}
}
int do_maskmap_lookup(ClientData cd, Tcl_Interp *ip,
- MaskMap_Var map, HBytes_Value addr, Tcl_Obj *def,
+ Tcl_Obj *mapo, HBytes_Value addr, Tcl_Obj *def,
Tcl_Obj **result) {
+ /*MaskMap_Var *map= (void*)&mapo->internalRep;*/
*result= Tcl_NewIntObj(42);
return TCL_OK; /*fixme*/
}