[Python-checkins] CVS: python/dist/src/Modules _tkinter.c,1.113,1.114

Guido van Rossum python-dev@python.org
Thu, 12 Oct 2000 10:14:49 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory slayer.i.sourceforge.net:/tmp/cvs-serv2266

Modified Files:
	_tkinter.c 
Log Message:
Fix for Bug #116453.

Direct use of interp->result is deprecated; changing this to
Tcl_GetStringResult(interp) everywhere fixed the problem of losing the
error message with TclError exceptions, on Windows.



Index: _tkinter.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_tkinter.c,v
retrieving revision 1.113
retrieving revision 1.114
diff -C2 -r1.113 -r1.114
*** _tkinter.c	2000/10/06 16:58:26	1.113
--- _tkinter.c	2000/10/12 17:14:46	1.114
***************
*** 210,214 ****
  #define Tkapp_Check(v) ((v)->ob_type == &Tkapp_Type)
  #define Tkapp_Interp(v) (((TkappObject *) (v))->interp)
! #define Tkapp_Result(v) (((TkappObject *) (v))->interp->result)
  
  #define DEBUG_REFCNT(v) (printf("DEBUG: id=%p, refcnt=%i\n", \
--- 210,214 ----
  #define Tkapp_Check(v) ((v)->ob_type == &Tkapp_Type)
  #define Tkapp_Interp(v) (((TkappObject *) (v))->interp)
! #define Tkapp_Result(v) Tcl_GetStringResult(Tkapp_Interp(v))
  
  #define DEBUG_REFCNT(v) (printf("DEBUG: id=%p, refcnt=%i\n", \
***************
*** 421,429 ****
  	main = Tk_MainWindow(interp);
  	if (Tcl_Init(interp) == TCL_ERROR) {
! 		PySys_WriteStderr("Tcl_Init error: %s\n", interp->result);
  		return TCL_ERROR;
  	}
  	if (Tk_Init(interp) == TCL_ERROR) {
! 		PySys_WriteStderr("Tk_Init error: %s\n", interp->result);
  		return TCL_ERROR;
  	}
--- 421,429 ----
  	main = Tk_MainWindow(interp);
  	if (Tcl_Init(interp) == TCL_ERROR) {
! 		PySys_WriteStderr("Tcl_Init error: %s\n", Tcl_GetStringResult(interp));
  		return TCL_ERROR;
  	}
  	if (Tk_Init(interp) == TCL_ERROR) {
! 		PySys_WriteStderr("Tk_Init error: %s\n", Tcl_GetStringResult(interp));
  		return TCL_ERROR;
  	}
***************
*** 740,750 ****
  		if (Py_VerboseFlag >= 2)
  			PySys_WriteStderr("... error: '%s'\n",
! 				interp->result);
  		Tkinter_Error(self);
  	}
  	else {
  		if (Py_VerboseFlag >= 2)
! 			PySys_WriteStderr("-> '%s'\n", interp->result);
! 		res = PyString_FromString(interp->result);
  	}
  	LEAVE_OVERLAP_TCL
--- 740,750 ----
  		if (Py_VerboseFlag >= 2)
  			PySys_WriteStderr("... error: '%s'\n",
! 				Tcl_GetStringResult(interp));
  		Tkinter_Error(self);
  	}
  	else {
  		if (Py_VerboseFlag >= 2)
! 			PySys_WriteStderr("-> '%s'\n", Tcl_GetStringResult(interp));
! 		res = PyString_FromString(Tcl_GetStringResult(interp));
  	}
  	LEAVE_OVERLAP_TCL