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=dbe2c107cd10f3e944187613b9b50f10304d0994;hpb=ed0fcd1b27831486f2894edb2d0838e38657b4fb 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; }