mirror of
https://github.com/python/cpython.git
synced 2025-11-14 15:56:48 +00:00
Issue #22420: Avoid 'write to None' crashes by using print instead.
Change a couple of existing prints. Original patch by Serhiy Storchaka.
This commit is contained in:
parent
cbfaa7b9d3
commit
81b062f63a
2 changed files with 17 additions and 18 deletions
|
|
@ -21,7 +21,7 @@ from platform import python_version, system
|
||||||
try:
|
try:
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
except ImportError:
|
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__)
|
"Your Python may not be configured for Tk. **", file=sys.__stderr__)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
import tkinter.messagebox as tkMessageBox
|
import tkinter.messagebox as tkMessageBox
|
||||||
|
|
@ -651,9 +651,9 @@ class ModifiedInterpreter(InteractiveInterpreter):
|
||||||
code = compile(source, filename, "exec")
|
code = compile(source, filename, "exec")
|
||||||
except (OverflowError, SyntaxError):
|
except (OverflowError, SyntaxError):
|
||||||
self.tkconsole.resetoutput()
|
self.tkconsole.resetoutput()
|
||||||
tkerr = self.tkconsole.stderr
|
print('*** Error in script or command!\n'
|
||||||
print('*** Error in script or command!\n', file=tkerr)
|
'Traceback (most recent call last):',
|
||||||
print('Traceback (most recent call last):', file=tkerr)
|
file=self.tkconsole.stderr)
|
||||||
InteractiveInterpreter.showsyntaxerror(self, filename)
|
InteractiveInterpreter.showsyntaxerror(self, filename)
|
||||||
self.tkconsole.showprompt()
|
self.tkconsole.showprompt()
|
||||||
else:
|
else:
|
||||||
|
|
@ -1472,8 +1472,7 @@ def main():
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "c:deihnr:st:")
|
opts, args = getopt.getopt(sys.argv[1:], "c:deihnr:st:")
|
||||||
except getopt.error as msg:
|
except getopt.error as msg:
|
||||||
sys.stderr.write("Error: %s\n" % str(msg))
|
print("Error: %s\n%s" % (msg, usage_msg), file=sys.stderr)
|
||||||
sys.stderr.write(usage_msg)
|
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
for o, a in opts:
|
for o, a in opts:
|
||||||
if o == '-c':
|
if o == '-c':
|
||||||
|
|
|
||||||
|
|
@ -203,9 +203,9 @@ class IdleConf:
|
||||||
if userDir != '~': # expanduser() found user home dir
|
if userDir != '~': # expanduser() found user home dir
|
||||||
if not os.path.exists(userDir):
|
if not os.path.exists(userDir):
|
||||||
warn = ('\n Warning: os.path.expanduser("~") points to\n '+
|
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:
|
try:
|
||||||
sys.stderr.write(warn)
|
print(warn, file=sys.stderr)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
userDir = '~'
|
userDir = '~'
|
||||||
|
|
@ -218,8 +218,8 @@ class IdleConf:
|
||||||
os.mkdir(userDir)
|
os.mkdir(userDir)
|
||||||
except OSError:
|
except OSError:
|
||||||
warn = ('\n Warning: unable to create user config directory\n'+
|
warn = ('\n Warning: unable to create user config directory\n'+
|
||||||
userDir+'\n Check path and permissions.\n Exiting!\n\n')
|
userDir+'\n Check path and permissions.\n Exiting!\n')
|
||||||
sys.stderr.write(warn)
|
print(warn, file=sys.stderr)
|
||||||
raise SystemExit
|
raise SystemExit
|
||||||
return userDir
|
return userDir
|
||||||
|
|
||||||
|
|
@ -244,12 +244,12 @@ class IdleConf:
|
||||||
except ValueError:
|
except ValueError:
|
||||||
warning = ('\n Warning: configHandler.py - IdleConf.GetOption -\n'
|
warning = ('\n Warning: configHandler.py - IdleConf.GetOption -\n'
|
||||||
' invalid %r value for configuration option %r\n'
|
' invalid %r value for configuration option %r\n'
|
||||||
' from section %r: %r\n' %
|
' from section %r: %r' %
|
||||||
(type, option, section,
|
(type, option, section,
|
||||||
self.userCfg[configType].Get(section, option,
|
self.userCfg[configType].Get(section, option,
|
||||||
raw=raw)))
|
raw=raw)))
|
||||||
try:
|
try:
|
||||||
sys.stderr.write(warning)
|
print(warning, file=sys.stderr)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
|
|
@ -263,10 +263,10 @@ class IdleConf:
|
||||||
warning = ('\n Warning: configHandler.py - IdleConf.GetOption -\n'
|
warning = ('\n Warning: configHandler.py - IdleConf.GetOption -\n'
|
||||||
' problem retrieving configuration option %r\n'
|
' problem retrieving configuration option %r\n'
|
||||||
' from section %r.\n'
|
' from section %r.\n'
|
||||||
' returning default value: %r\n' %
|
' returning default value: %r' %
|
||||||
(option, section, default))
|
(option, section, default))
|
||||||
try:
|
try:
|
||||||
sys.stderr.write(warning)
|
print(warning, file=sys.stderr)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
return default
|
return default
|
||||||
|
|
@ -375,10 +375,10 @@ class IdleConf:
|
||||||
warning=('\n Warning: configHandler.py - IdleConf.GetThemeDict'
|
warning=('\n Warning: configHandler.py - IdleConf.GetThemeDict'
|
||||||
' -\n problem retrieving theme element %r'
|
' -\n problem retrieving theme element %r'
|
||||||
'\n from theme %r.\n'
|
'\n from theme %r.\n'
|
||||||
' returning default value: %r\n' %
|
' returning default value: %r' %
|
||||||
(element, themeName, theme[element]))
|
(element, themeName, theme[element]))
|
||||||
try:
|
try:
|
||||||
sys.stderr.write(warning)
|
print(warning, file=sys.stderr)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
colour=cfgParser.Get(themeName,element,default=theme[element])
|
colour=cfgParser.Get(themeName,element,default=theme[element])
|
||||||
|
|
@ -635,10 +635,10 @@ class IdleConf:
|
||||||
warning=('\n Warning: configHandler.py - IdleConf.GetCoreKeys'
|
warning=('\n Warning: configHandler.py - IdleConf.GetCoreKeys'
|
||||||
' -\n problem retrieving key binding for event %r'
|
' -\n problem retrieving key binding for event %r'
|
||||||
'\n from key set %r.\n'
|
'\n from key set %r.\n'
|
||||||
' returning default value: %r\n' %
|
' returning default value: %r' %
|
||||||
(event, keySetName, keyBindings[event]))
|
(event, keySetName, keyBindings[event]))
|
||||||
try:
|
try:
|
||||||
sys.stderr.write(warning)
|
print(warning, file=sys.stderr)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
return keyBindings
|
return keyBindings
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue