Posted to tcl by suchenwi at Wed Oct 03 18:53:17 GMT 2007view pretty
critcl::cproc myincr {Tcl_Interp* interp char* varname} int { Tcl_Obj* var = Tcl_GetVar2Ex(interp,varname, NULL, 0); int i, rc; if(var == NULL) return -1; if(Tcl_IsShared(var)) { var = Tcl_DuplicateObj(var); Tcl_IncrRefCount(var); } rc = Tcl_GetIntFromObj(interp, var, &i); Tcl_SetIntObj(var, i+1); Tcl_SetVar(interp, varname, Tcl_GetStringFromObj(var,NULL), 0); return i+1; } set foo 42 set bar x;#$foo myincr foo puts foo:$foo,bar:$bar