aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2009-09-12 20:35:08 +0000
committermescalinum <mescalinum@users.sourceforge.net>2009-09-12 20:35:08 +0000
commit0a295dc6a12b98b8e2e9c99eb84d02bdf9ea2730 (patch)
treee543cf7a0eb1be9092d16f4895c58a6f361793dd
parent7b4b78fc1a3ff3847109750a66c981254ac865dc (diff)
make code Tcl 8.4 compatible
svn path=/trunk/externals/tclpd/; revision=12320
-rw-r--r--tcl_setup.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/tcl_setup.cxx b/tcl_setup.cxx
index c66b929..a1c66bb 100644
--- a/tcl_setup.cxx
+++ b/tcl_setup.cxx
@@ -59,6 +59,10 @@ void tclpd_interp_error(int result) {
post(" (see stderr for details)");
fprintf(stderr, "------------------- Tcl error: -------------------\n");
+
+ // Tcl_GetReturnOptions and Tcl_DictObjGet only available in Tcl >= 8.5
+
+#if ((TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || (TCL_MAJOR_VERSION > 8))
Tcl_Obj* dict = Tcl_GetReturnOptions(tcl_for_pd, result);
Tcl_Obj* errorInfo = NULL;
Tcl_Obj* errorInfoK = Tcl_NewStringObj("-errorinfo", -1);
@@ -66,5 +70,9 @@ void tclpd_interp_error(int result) {
Tcl_DictObjGet(tcl_for_pd, dict, errorInfoK, &errorInfo);
Tcl_DecrRefCount(errorInfoK);
fprintf(stderr, "%s\n", Tcl_GetStringFromObj(errorInfo, 0));
+#else
+ fprintf(stderr, "Backtrace not available in Tcl < 8.5. Please upgrade Tcl.\n");
+#endif
+
fprintf(stderr, "--------------------------------------------------\n");
}