Index: tcc4tcl.c ================================================================== --- tcc4tcl.c +++ tcc4tcl.c @@ -48,10 +48,11 @@ ckfree((void *) ts); } static int Tcc4tclHandleCmd ( ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST objv[]){ Tcl_WideInt val; + Tcl_Obj *val_o; void *val_p; int index; int res; struct TclTCCState *ts; TCCState *s; @@ -66,10 +67,11 @@ TCC4TCL_ADD_INCLUDE, TCC4TCL_ADD_FILE, TCC4TCL_ADD_LIBRARY, TCC4TCL_ADD_LIBRARY_PATH, TCC4TCL_ADD_SYMBOL, TCC4TCL_COMMAND, TCC4TCL_COMPILE, TCC4TCL_DEFINE, TCC4TCL_GET_SYMBOL, TCC4TCL_OUTPUT_FILE, TCC4TCL_UNDEFINE }; char *str; + int rv; ts = (struct TclTCCState *) cdata; s = ts->s; if (objc < 2) { @@ -121,11 +123,17 @@ if (objc != 4) { Tcl_WrongNumArgs(interp, 2, objv, "symbol value"); return TCL_ERROR; } - if (Tcl_GetWideIntFromObj(interp, objv[3], &val) != TCL_OK) { + rv = Tcl_ExprObj(interp, Tcl_ObjPrintf("wide(%s)", Tcl_GetString(objv[3])), &val_o); + if (rv != TCL_OK) { + return TCL_ERROR; + } + + rv = Tcl_GetWideIntFromObj(interp, val_o, &val); + if (rv != TCL_OK) { return TCL_ERROR; } val_p = (void *) val;