summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c')
-rw-r--r--Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c b/Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c
index 13bcdde2eb6..6cf3d42b3ee 100644
--- a/Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c
+++ b/Master/tlpkg/tltcl/lib/tk8.6/tkAppInit.c
@@ -15,9 +15,16 @@
#undef BUILD_tk
#undef STATIC_BUILD
#include "tk.h"
+#include "tkPort.h"
#ifdef TK_TEST
+#ifdef __cplusplus
+extern "C" {
+#endif
extern Tcl_PackageInitProc Tktest_Init;
+#ifdef __cplusplus
+}
+#endif
#endif /* TK_TEST */
/*
@@ -30,7 +37,11 @@ extern Tcl_PackageInitProc Tktest_Init;
#define TK_LOCAL_APPINIT Tcl_AppInit
#endif
#ifndef MODULE_SCOPE
-# define MODULE_SCOPE extern
+# ifdef __cplusplus
+# define MODULE_SCOPE extern "C"
+# else
+# define MODULE_SCOPE extern
+# endif
#endif
MODULE_SCOPE int TK_LOCAL_APPINIT(Tcl_Interp *);
MODULE_SCOPE int main(int, char **);
@@ -111,6 +122,13 @@ Tcl_AppInit(
}
Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit);
+#if defined(USE_CUSTOM_EXIT_PROC)
+ if (TkpWantsExitProc()) {
+ /* The cast below avoids warnings from old gcc compilers. */
+ Tcl_SetExitProc((void *)TkpExitProc);
+ }
+#endif
+
#ifdef TK_TEST
if (Tktest_Init(interp) == TCL_ERROR) {
return TCL_ERROR;