X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=base%2Fparse.c;h=0fa5acdd4705d942ca158f5475e1691b5651e5ac;hp=1d9123876097e82940bcb2e014a9772290322254;hb=79afa3a523e92a1d552d46729b1e1d04db97f72c;hpb=20f8f9dd8dcdc4b5c68331c8015c18eaf1813360 diff --git a/base/parse.c b/base/parse.c index 1d91238..0fa5acd 100644 --- a/base/parse.c +++ b/base/parse.c @@ -23,6 +23,23 @@ int pat_string(Tcl_Interp *ip, Tcl_Obj *obj, const char **val) { 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; }