[Python-checkins] cpython (2.7): Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial
ned.deily
python-checkins at python.org
Wed Dec 11 01:33:46 CET 2013
http://hg.python.org/cpython/rev/5becf8b612ee
changeset: 87892:5becf8b612ee
branch: 2.7
user: Ned Deily <nad at acm.org>
date: Tue Dec 10 16:21:58 2013 -0800
summary:
Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial
shell window is present. (Original patch by Terry Reedy)
files:
Lib/idlelib/PyShell.py | 25 ++++++++++++++-----------
Misc/NEWS | 3 +++
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
old mode 100644
new mode 100755
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -1546,20 +1546,22 @@
args.remove(filename)
if not args:
flist.new()
+
if enable_shell:
shell = flist.open_shell()
if not shell:
return # couldn't open shell
-
if macosxSupport.runningAsOSXApp() and flist.dict:
# On OSX: when the user has double-clicked on a file that causes
# IDLE to be launched the shell window will open just in front of
# the file she wants to see. Lower the interpreter window when
# there are open files.
shell.top.lower()
+ else:
+ shell = flist.pyshell
- shell = flist.pyshell
- # handle remaining options:
+ # Handle remaining options. If any of these are set, enable_shell
+ # was set also, so shell must be true to reach here.
if debug:
shell.open_debugger()
if startup:
@@ -1567,7 +1569,7 @@
os.environ.get("PYTHONSTARTUP")
if filename and os.path.isfile(filename):
shell.interp.execfile(filename)
- if shell and cmd or script:
+ if cmd or script:
shell.interp.runcommand("""if 1:
import sys as _sys
_sys.argv = %r
@@ -1578,13 +1580,14 @@
elif script:
shell.interp.prepend_syspath(script)
shell.interp.execfile(script)
-
- # Check for problematic OS X Tk versions and print a warning message
- # in the IDLE shell window; this is less intrusive than always opening
- # a separate window.
- tkversionwarning = macosxSupport.tkVersionWarning(root)
- if tkversionwarning:
- shell.interp.runcommand(''.join(("print('", tkversionwarning, "')")))
+ elif shell:
+ # If there is a shell window and no cmd or script in progress,
+ # check for problematic OS X Tk versions and print a warning
+ # message in the IDLE shell window; this is less intrusive
+ # than always opening a separate window.
+ tkversionwarning = macosxSupport.tkVersionWarning(root)
+ if tkversionwarning:
+ shell.interp.runcommand("print('%s')" % tkversionwarning)
while flist.inversedict: # keep IDLE running while files are open.
root.mainloop()
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -74,6 +74,9 @@
- Issue #19481: print() of unicode, str or bytearray subclass instance in IDLE
no more hangs.
+- Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial
+ shell window is present.
+
Tests
-----
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list