Compatibility with Tcl/Tk 8.0b*.

This commit is contained in:
Guido van Rossum 1997-08-01 19:29:02 +00:00
parent f4e32c729b
commit 3e819a7aa8
1 changed files with 28 additions and 14 deletions

View File

@ -56,21 +56,23 @@ PERFORMANCE OF THIS SOFTWARE.
#include <tcl.h> #include <tcl.h>
#include <tk.h> #include <tk.h>
#if TK_MAJOR_VERSION < 4
#error "Tk 3.x is not supported"
#endif
#define TKMAJORMINOR (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION)
extern char *Py_GetProgramName (); extern char *Py_GetProgramName ();
/* Internal declarations from tkInt.h. */ #if TKMAJORMINOR >= 4001
#if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001
extern int Tk_GetNumMainWindows(); extern int Tk_GetNumMainWindows();
#else #else
/* Internal declarations from tkInt.h. */
extern int tk_NumMainWindows; extern int tk_NumMainWindows;
#define Tk_GetNumMainWindows() (tk_NumMainWindows) #define Tk_GetNumMainWindows() (tk_NumMainWindows)
#define NEED_TKCREATEMAINWINDOW 1 #define NEED_TKCREATEMAINWINDOW 1
#endif #endif
#if TK_MAJOR_VERSION < 4
#error "Tk 3.x is not supported"
#endif
#ifdef macintosh #ifdef macintosh
/* /*
@ -1018,8 +1020,10 @@ Tkapp_CreateFileHandler (self, args)
PyObject *file, *func, *data; PyObject *file, *func, *data;
PyObject *idkey; PyObject *idkey;
int mask, id; int mask, id;
#if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001 #if TKMAJORMINOR < 8000
#if TKMAJORMINOR >= 4001
Tcl_File tfile; Tcl_File tfile;
#endif
#endif #endif
if (!Tkapp_ClientDataDict) { if (!Tkapp_ClientDataDict) {
@ -1049,18 +1053,22 @@ Tkapp_CreateFileHandler (self, args)
} }
Py_DECREF(idkey); Py_DECREF(idkey);
#if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001 #if TKMAJORMINOR < 8000
#if TKMAJORMINOR >= 4001
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
/* We assume this is a socket... */ /* We assume this is a socket... */
tfile = Tcl_GetFile((ClientData)id, TCL_WIN_SOCKET); tfile = Tcl_GetFile((ClientData)id, TCL_WIN_SOCKET);
#else #else /* !MS_WINDOWS */
tfile = Tcl_GetFile((ClientData)id, TCL_UNIX_FD); tfile = Tcl_GetFile((ClientData)id, TCL_UNIX_FD);
#endif #endif /* !MS_WINDOWS */
/* Ought to check for null Tcl_File object... */ /* Ought to check for null Tcl_File object... */
Tcl_CreateFileHandler(tfile, mask, FileHandler, (ClientData) data); Tcl_CreateFileHandler(tfile, mask, FileHandler, (ClientData) data);
#else #else /* ! >= 4001 */
Tk_CreateFileHandler(id, mask, FileHandler, (ClientData) data); Tk_CreateFileHandler(id, mask, FileHandler, (ClientData) data);
#endif #endif /* ! >= 4001 */
#else /* ! < 8000 */
Tcl_CreateFileHandler(id, mask, FileHandler, (ClientData) data);
#endif /* < 8000 */
/* XXX fileHandlerDict */ /* XXX fileHandlerDict */
Py_INCREF (Py_None); Py_INCREF (Py_None);
return Py_None; return Py_None;
@ -1076,8 +1084,10 @@ Tkapp_DeleteFileHandler (self, args)
PyObject *idkey; PyObject *idkey;
PyObject *data; PyObject *data;
int id; int id;
#if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001 #if TKMAJORMINOR < 8000
#if TKMAJORMINOR >= 4001
Tcl_File tfile; Tcl_File tfile;
#endif
#endif #endif
if (!PyArg_Parse(args, "O", &file)) if (!PyArg_Parse(args, "O", &file))
@ -1097,7 +1107,8 @@ Tkapp_DeleteFileHandler (self, args)
PyDict_DelItem(Tkapp_ClientDataDict, idkey); PyDict_DelItem(Tkapp_ClientDataDict, idkey);
Py_DECREF(idkey); Py_DECREF(idkey);
#if (TK_MAJOR_VERSION*1000 + TK_MINOR_VERSION) >= 4001 #if TKMAJORMINOR < 8000
#if TKMAJORMINOR >= 4001
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
/* We assume this is a socket... */ /* We assume this is a socket... */
tfile = Tcl_GetFile((ClientData)id, TCL_WIN_SOCKET); tfile = Tcl_GetFile((ClientData)id, TCL_WIN_SOCKET);
@ -1108,6 +1119,9 @@ Tkapp_DeleteFileHandler (self, args)
Tcl_DeleteFileHandler(tfile); Tcl_DeleteFileHandler(tfile);
#else #else
Tk_DeleteFileHandler(id); Tk_DeleteFileHandler(id);
#endif
#else
Tcl_DeleteFileHandler(id);
#endif #endif
/* XXX fileHandlerDict */ /* XXX fileHandlerDict */
Py_INCREF (Py_None); Py_INCREF (Py_None);