diff --git a/gcl/gcl-tk/tkMain.c b/gcl/gcl-tk/tkMain.c index 74475cc..21c6c59 100755 --- a/gcl/gcl-tk/tkMain.c +++ b/gcl/gcl-tk/tkMain.c @@ -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 /*-------------------------------------------------------------------*/ @@ -276,7 +281,7 @@ TkX_Wish (argc, argv) if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, (void *)argv, argTable, 0) != TCL_OK) { - fprintf(stderr, "%s\n", interp->result); + fprintf(stderr, "%s\n", INTERP_RESULT(interp)); exit(1); } if (name == NULL) { @@ -309,7 +314,7 @@ TkX_Wish (argc, argv) /* 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__ */ @@ -362,7 +367,7 @@ TkX_Wish (argc, argv) Tcl_FindExecutable ( argv[0] ); #else 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)); } #endif /* @@ -372,7 +377,7 @@ TkX_Wish (argc, argv) 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)); } } @@ -402,13 +407,13 @@ TkX_Wish (argc, argv) 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); } @@ -443,7 +448,7 @@ TkX_Wish (argc, argv) 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); @@ -566,13 +571,13 @@ StdinProc(clientData, mask) || 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 */} @@ -752,7 +757,7 @@ guiBindCallback(char *szNameCmdProc, char *szTclObject, char *szModifier,char* a 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;