summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2014-09-20 02:38:41 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2014-09-20 02:38:41 (GMT)
commit81b062f63ace48983439857314fec8063e8c72e0 (patch)
treea03a857a0cafa21b3016064bb86881f5b0395ab9
parentcbfaa7b9d3174d6304ec3b5ab165b5c3514c5d34 (diff)
downloadcpython-81b062f63ace48983439857314fec8063e8c72e0.zip
cpython-81b062f63ace48983439857314fec8063e8c72e0.tar.gz
cpython-81b062f63ace48983439857314fec8063e8c72e0.tar.bz2
Issue #22420: Avoid 'write to None' crashes by using print instead.
Change a couple of existing prints. Original patch by Serhiy Storchaka.
-rwxr-xr-xLib/idlelib/PyShell.py11
-rw-r--r--Lib/idlelib/configHandler.py24
2 files changed, 17 insertions, 18 deletions
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index 8656927..7eab8d0 100755
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -21,7 +21,7 @@ from platform import python_version, system
try:
from tkinter import *
except ImportError:
- print("** IDLE can't import Tkinter. " \
+ print("** IDLE can't import Tkinter.\n"
"Your Python may not be configured for Tk. **", file=sys.__stderr__)
sys.exit(1)
import tkinter.messagebox as tkMessageBox
@@ -651,9 +651,9 @@ class ModifiedInterpreter(InteractiveInterpreter):
code = compile(source, filename, "exec")
except (OverflowError, SyntaxError):
self.tkconsole.resetoutput()
- tkerr = self.tkconsole.stderr
- print('*** Error in script or command!\n', file=tkerr)
- print('Traceback (most recent call last):', file=tkerr)
+ print('*** Error in script or command!\n'
+ 'Traceback (most recent call last):',
+ file=self.tkconsole.stderr)
InteractiveInterpreter.showsyntaxerror(self, filename)
self.tkconsole.showprompt()
else:
@@ -1472,8 +1472,7 @@ def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "c:deihnr:st:")
except getopt.error as msg:
- sys.stderr.write("Error: %s\n" % str(msg))
- sys.stderr.write(usage_msg)
+ print("Error: %s\n%s" % (msg, usage_msg), file=sys.stderr)
sys.exit(2)
for o, a in opts:
if o == '-c':
diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py
index 745d550..a9957c5 100644
--- a/Lib/idlelib/configHandler.py
+++ b/Lib/idlelib/configHandler.py
@@ -203,9 +203,9 @@ class IdleConf:
if userDir != '~': # expanduser() found user home dir
if not os.path.exists(userDir):
warn = ('\n Warning: os.path.expanduser("~") points to\n '+
- userDir+',\n but the path does not exist.\n')
+ userDir+',\n but the path does not exist.')
try:
- sys.stderr.write(warn)
+ print(warn, file=sys.stderr)
except OSError:
pass
userDir = '~'
@@ -218,8 +218,8 @@ class IdleConf:
os.mkdir(userDir)
except OSError:
warn = ('\n Warning: unable to create user config directory\n'+
- userDir+'\n Check path and permissions.\n Exiting!\n\n')
- sys.stderr.write(warn)
+ userDir+'\n Check path and permissions.\n Exiting!\n')
+ print(warn, file=sys.stderr)
raise SystemExit
return userDir
@@ -244,12 +244,12 @@ class IdleConf:
except ValueError:
warning = ('\n Warning: configHandler.py - IdleConf.GetOption -\n'
' invalid %r value for configuration option %r\n'
- ' from section %r: %r\n' %
+ ' from section %r: %r' %
(type, option, section,
self.userCfg[configType].Get(section, option,
raw=raw)))
try:
- sys.stderr.write(warning)
+ print(warning, file=sys.stderr)
except OSError:
pass
try:
@@ -263,10 +263,10 @@ class IdleConf:
warning = ('\n Warning: configHandler.py - IdleConf.GetOption -\n'
' problem retrieving configuration option %r\n'
' from section %r.\n'
- ' returning default value: %r\n' %
+ ' returning default value: %r' %
(option, section, default))
try:
- sys.stderr.write(warning)
+ print(warning, file=sys.stderr)
except OSError:
pass
return default
@@ -375,10 +375,10 @@ class IdleConf:
warning=('\n Warning: configHandler.py - IdleConf.GetThemeDict'
' -\n problem retrieving theme element %r'
'\n from theme %r.\n'
- ' returning default value: %r\n' %
+ ' returning default value: %r' %
(element, themeName, theme[element]))
try:
- sys.stderr.write(warning)
+ print(warning, file=sys.stderr)
except OSError:
pass
colour=cfgParser.Get(themeName,element,default=theme[element])
@@ -635,10 +635,10 @@ class IdleConf:
warning=('\n Warning: configHandler.py - IdleConf.GetCoreKeys'
' -\n problem retrieving key binding for event %r'
'\n from key set %r.\n'
- ' returning default value: %r\n' %
+ ' returning default value: %r' %
(event, keySetName, keyBindings[event]))
try:
- sys.stderr.write(warning)
+ print(warning, file=sys.stderr)
except OSError:
pass
return keyBindings