diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-01-25 12:22:16 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2017-01-25 12:22:16 (GMT) |
commit | d95abe6b6fe069f55ce27900c99fec5949d63a15 (patch) | |
tree | c261490c8b413208fd28174c52e9044de53d3853 /generic/tclDecls.h | |
parent | f73959c2df224df88d79415e16dfab56b8756008 (diff) | |
download | tcl-d95abe6b6fe069f55ce27900c99fec5949d63a15.zip tcl-d95abe6b6fe069f55ce27900c99fec5949d63a15.tar.gz tcl-d95abe6b6fe069f55ce27900c99fec5949d63a15.tar.bz2 |
If TCL_NO_DEPRECATED is defined, remove the "case" statement, and use much less interp->result. Implementation mostly taken over from "novem". If TCL_NO_DEPRECATED is not defined, nothing changes.
Diffstat (limited to 'generic/tclDecls.h')
-rw-r--r-- | generic/tclDecls.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 504af18..0dbf345 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -3869,6 +3869,22 @@ extern const TclStubs *tclStubsPtr; #undef Tcl_AddObjErrorInfo #define Tcl_AddObjErrorInfo(interp, message, length) \ Tcl_AppendObjToErrorInfo(interp, Tcl_NewStringObj(message, length)) +#ifdef TCL_NO_DEPRECATED +#undef Tcl_SetResult +#define Tcl_SetResult(interp, result, freeProc) \ + do { \ + char *__result = result; \ + Tcl_FreeProc *__freeProc = freeProc; \ + Tcl_SetObjResult(interp, Tcl_NewStringObj(__result, -1)); \ + if (__result != NULL && __freeProc != NULL && __freeProc != TCL_VOLATILE) { \ + if (__freeProc == TCL_DYNAMIC) { \ + ckfree(__result); \ + } else { \ + (*__freeProc)(__result); \ + } \ + } \ + } while(0) +#endif /* TCL_NO_DEPRECATED */ #if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) # if defined(__CYGWIN__) && defined(TCL_WIDE_INT_IS_LONG) |