diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2014-09-20 02:38:41 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2014-09-20 02:38:41 (GMT) |
commit | 81b062f63ace48983439857314fec8063e8c72e0 (patch) | |
tree | a03a857a0cafa21b3016064bb86881f5b0395ab9 | |
parent | cbfaa7b9d3174d6304ec3b5ab165b5c3514c5d34 (diff) | |
download | cpython-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-x | Lib/idlelib/PyShell.py | 11 | ||||
-rw-r--r-- | Lib/idlelib/configHandler.py | 24 |
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 |