X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=hbytes%2Fparse.c;h=44f00e2a25727c2333b07ccb4f67a2700931e08c;hp=c203be15ea7621f806e02601b85273ea7c99e4ec;hb=7419270cc04e1d026b31838c527cf051550a2add;hpb=5d466de467f28ae6f7125bef086d141a7734a4ce diff --git a/hbytes/parse.c b/hbytes/parse.c index c203be1..44f00e2 100644 --- a/hbytes/parse.c +++ b/hbytes/parse.c @@ -26,6 +26,10 @@ int pat_int(Tcl_Interp *ip, Tcl_Obj *obj, int *val) { return Tcl_GetIntFromObj(ip, obj, val); } +int pat_long(Tcl_Interp *ip, Tcl_Obj *obj, long *val) { + return Tcl_GetLongFromObj(ip, obj, val); +} + int pat_hbv(Tcl_Interp *ip, Tcl_Obj *var, HBytes_Var *agg) { int rc; Tcl_Obj *val; @@ -38,11 +42,11 @@ int pat_hbv(Tcl_Interp *ip, Tcl_Obj *var, HBytes_Var *agg) { rc= Tcl_ConvertToType(ip,val,&hbytes_type); if (rc) return rc; - Tcl_InvalidateStringRep(val); if (Tcl_IsShared(val)) { val= Tcl_DuplicateObj(val); agg->copied= 1; } + Tcl_InvalidateStringRep(val); agg->obj= val; agg->hb= OBJ_HBYTES(val); @@ -81,6 +85,10 @@ Tcl_Obj *ret_int(Tcl_Interp *ip, int val) { return Tcl_NewIntObj(val); } +Tcl_Obj *ret_long(Tcl_Interp *ip, long val) { + return Tcl_NewLongObj(val); +} + Tcl_Obj *ret_obj(Tcl_Interp *ip, Tcl_Obj *val) { return val; }