From 845547d54b640e7e43bb893062a61a3e649732bc Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 26 Jun 1996 18:26:04 +0000 Subject: Added CWI copyright. Updated some comments. Fixed bug in Merge() called with NULL args. Get rid of TkDefaultAppName() -- it is not used anywhere. Pass error message on when Appinit fails. Create/Delete FileHandler assume fd is a socket on Windows. --- Modules/_tkinter.c | 64 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 8df8c4a..83f9be5 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -1,5 +1,29 @@ -/* _tkinter.c -- Interface to libtk.a and libtcl.a. - Copyright (C) 1994 Steen Lumholt */ +/*********************************************************** +Copyright (C) 1994 Steen Lumholt. +Copyright 1994-1995 by Stichting Mathematisch Centrum, Amsterdam, +The Netherlands. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +******************************************************************/ + +/* _tkinter.c -- Interface to libtk.a and libtcl.a. */ #include "Python.h" @@ -25,8 +49,7 @@ extern struct { Tk_Window win; } *tkMainWindowList; /* ** Additional cruft needed by Tcl/Tk on the Mac. -** Unfortunately this changes with each beta. -** This is for beta 2 of Tcl 7.5 and Tk 4.1. +** This is for Tcl 7.5 and Tk 4.1 (final releases). */ #include /* For EventRecord */ @@ -128,7 +151,11 @@ Merge (args) argv = argvStore; fv = fvStore; - if (!PyTuple_Check (args)) + if (args == NULL) + { + argc = 0; + } + else if (!PyTuple_Check (args)) { argc = 1; fv[0] = 0; @@ -237,12 +264,6 @@ Tcl_AppInit (interp) return TCL_OK; } -char * -TkDefaultAppName() -{ - return "Python"; -} - #endif /* !WITH_APPINIT */ /* Initialize the Tk application; see the `main' function in @@ -280,10 +301,7 @@ Tkapp_New (screenName, baseName, className, interactive) Tcl_SetVar (v->interp, "tcl_interactive", "0", TCL_GLOBAL_ONLY); if (Tcl_AppInit (v->interp) != TCL_OK) - { - PyErr_SetString (Tkinter_TclError, "Tcl_AppInit failed"); /* XXX */ - return NULL; - } + return (TkappObject *) Tkinter_Error (v); return v; } @@ -871,11 +889,16 @@ Tkapp_CreateFileHandler (self, args) data = Py_BuildValue ("(OO)", func, file); #if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001 +#ifdef NT + /* We assume this is a socket... */ + tfile = Tcl_GetFile((ClientData)id, TCL_WIN_SOCKET); +#else tfile = Tcl_GetFile((ClientData)id, TCL_UNIX_FD); +#endif /* Oughtta check for null Tcl_File object... */ Tcl_CreateFileHandler (tfile, mask, FileHandler, (ClientData) data); #else - Tk_CreateFileHandler ((ClientData) id, mask, FileHandler, (ClientData) data); + Tk_CreateFileHandler (id, mask, FileHandler, (ClientData) data); #endif /* XXX fileHandlerDict */ @@ -901,11 +924,16 @@ Tkapp_DeleteFileHandler (self, args) return NULL; #if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001 - tfile = Tcl_GetFile((ClientData) id, TCL_UNIX_FD); +#ifdef NT + /* We assume this is a socket... */ + tfile = Tcl_GetFile((ClientData)id, TCL_WIN_SOCKET); +#else + tfile = Tcl_GetFile((ClientData)id, TCL_UNIX_FD); +#endif /* Oughtta check for null Tcl_File object... */ Tcl_DeleteFileHandler(tfile); #else - Tk_DeleteFileHandler ((ClientData) id); + Tk_DeleteFileHandler (id); #endif /* XXX fileHandlerDict */ Py_INCREF (Py_None); -- cgit v0.12