From 38df5142968a37fc74d59d458895f9a997c1de17 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Mon, 30 Jul 2012 03:28:22 -0700 Subject: [PATCH] Issue #14018: Update the OS X IDLE Tcl/Tk warning check to include the Apple-supplied Tck/Tk versions shipped with OS X 10.7 and 10.8. They are not as buggy as the 10.6 version but can still easily crash. --- Lib/idlelib/NEWS.txt | 3 +++ Lib/idlelib/macosxSupport.py | 16 ++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 06f7d5b5713..818ff14f62a 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -12,6 +12,9 @@ What's New in IDLE 2.7.4? - Issue 14876: use user-selected font for highlight configuration. +- Issue #14018: Update checks for unstable system Tcl/Tk versions on OS X + to include versions shipped with OS X 10.7 and 10.8 in addition to 10.6. + What's New in IDLE 2.7.3? ========================= diff --git a/Lib/idlelib/macosxSupport.py b/Lib/idlelib/macosxSupport.py index 4be60a36012..af6652fb6f2 100644 --- a/Lib/idlelib/macosxSupport.py +++ b/Lib/idlelib/macosxSupport.py @@ -37,17 +37,21 @@ def isCarbonAquaTk(root): def tkVersionWarning(root): """ Returns a string warning message if the Tk version in use appears to - be one known to cause problems with IDLE. The Apple Cocoa-based Tk 8.5 - that was shipped with Mac OS X 10.6. + be one known to cause problems with IDLE. + 1. Apple Cocoa-based Tk 8.5.7 shipped with Mac OS X 10.6 is unusable. + 2. Apple Cocoa-based Tk 8.5.9 in OS X 10.7 and 10.8 is better but + can still crash unexpectedly. """ if (runningAsOSXApp() and - ('AppKit' in root.tk.call('winfo', 'server', '.')) and - (root.tk.call('info', 'patchlevel') == '8.5.7') ): - return (r"WARNING: The version of Tcl/Tk (8.5.7) in use may" + ('AppKit' in root.tk.call('winfo', 'server', '.')) ): + patchlevel = root.tk.call('info', 'patchlevel') + if patchlevel not in ('8.5.7', '8.5.9'): + return False + return (r"WARNING: The version of Tcl/Tk ({0}) in use may" r" be unstable.\n" r"Visit http://www.python.org/download/mac/tcltk/" - r" for current information.") + r" for current information.".format(patchlevel)) else: return False