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