Blob Blame History Raw
--- gcl-tk/tkMain.c.orig	2014-02-05 09:12:48.539168683 -0700
+++ gcl-tk/tkMain.c	2014-02-05 09:24:13.138923809 -0700
@@ -42,6 +42,11 @@
 #if (TK_MINOR_VERSION==0 && TK_MAJOR_VERSION==4)
 #define TkCreateMainWindow Tk_CreateMainWindow
 #endif
+#if TCL_MAJOR_VERSION >= 8
+#define INTERP_RESULT(interp) Tcl_GetStringResult(interp)
+#else
+#define INTERP_RESULT(interp) (interp)->result
+#endif
 
 
 /*-------------------------------------------------------------------*/
@@ -206,7 +211,7 @@
 
     if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, (const char **)argv, argTable, 0)
 	    != TCL_OK) {
-	fprintf(stderr, "%s\n", interp->result);
+	fprintf(stderr, "%s\n", INTERP_RESULT(interp));
 	exit(1);
     }
     if (name == NULL) {
@@ -239,7 +244,7 @@
 
 /*     mainWindow = TkCreateMainWindow(interp, display, name/\*  , "Tk" *\/);  */
 /*     if (mainWindow == NULL) { */
-/* 	fprintf(stderr, "%s\n", interp->result); */
+/* 	fprintf(stderr, "%s\n", INTERP_RESULT(interp)); */
 /* 	exit(1); */
 /*     } */
 /* #ifndef __MINGW32__     */
@@ -290,7 +295,7 @@
      */
 
     if (Tcl_AppInit(interp) != TCL_OK) {
-	fprintf(stderr, "Tcl_AppInit failed: %s\n", interp->result);
+	fprintf(stderr, "Tcl_AppInit failed: %s\n", INTERP_RESULT(interp));
     }
 
     /*
@@ -300,7 +305,7 @@
     if (geometry != NULL) {
 	code = Tcl_VarEval(interp, "wm geometry . ", geometry, (char *) NULL);
 	if (code != TCL_OK) {
-	    fprintf(stderr, "%s\n", interp->result);
+	    fprintf(stderr, "%s\n", INTERP_RESULT(interp));
 	}
     }
 
@@ -330,13 +335,13 @@
     
 	    fullName = Tcl_TildeSubst(interp, tcl_RcFileName, &buffer);
 	    if (fullName == NULL) {
-		fprintf(stderr, "%s\n", interp->result);
+		fprintf(stderr, "%s\n", INTERP_RESULT(interp));
 	    } else {
 		f = fopen(fullName, "r");
 		if (f != NULL) {
 		    code = Tcl_EvalFile(interp, fullName);
 		    if (code != TCL_OK) {
-			fprintf(stderr, "%s\n", interp->result);
+			fprintf(stderr, "%s\n", INTERP_RESULT(interp));
 		    }
 		    fclose(f);
 		}
@@ -371,7 +376,7 @@
 error:
     msg = Tcl_GetVar(interp, "errorInfo", TCL_GLOBAL_ONLY);
     if (msg == NULL) {
-	msg = interp->result;
+	msg = INTERP_RESULT(interp);
     }
     dfprintf(stderr, "%s\n", msg);
     Tcl_Eval(interp, errorExitCmd);
@@ -496,13 +501,13 @@
 	      || code)
 	    {
 	      char buf[4];
-	      char *p = buf;
+	      char *p = buf, *string;
 	      /*header */
 	      *p++ = (code ? '1' : '0');
 	      bcopy(msg->msg_id,p,3);
 	      /* end header */
-	      if(sock_write_str2(dsfd, m_reply, buf, 4 ,
-				 interp->result, strlen(interp->result))
+	      string = INTERP_RESULT(interp);
+	      if(sock_write_str2(dsfd, m_reply, buf, 4, string, strlen(string))
 		 < 0)
 		{		/* what do we want to do if the write failed */}
 	      
@@ -686,7 +691,7 @@
   code = Tcl_Eval(interp, szCmd);
   if (code != TCL_OK)
     {
-      dfprintf(stderr, "TCL Error int bind : %s\n", interp->result);
+      dfprintf(stderr, "TCL Error int bind : %s\n", INTERP_RESULT(interp));
 
     }
   return code;