diff options
author | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2008-04-21 22:42:30 +0000 |
---|---|---|
committer | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2008-04-21 22:42:30 +0000 |
commit | f305bd3ea25f58171b00afcef386cdbf16336890 (patch) | |
tree | 1d30735d23c330e88be172c85b2776d62bcca6cc | |
parent | 0f1653e957cf519215af33dec61dc4808077bec2 (diff) | |
download | cpython-git-f305bd3ea25f58171b00afcef386cdbf16336890.tar.gz |
Issue 2665: On Windows, sys.stderr does not contain a valid file when running without a console.
It seems to work, but will fail at the first flush.
This causes IDLE to silently crash when too many warnings are printed.
Backport of r62448.
-rw-r--r-- | Lib/idlelib/NEWS.txt | 5 | ||||
-rw-r--r-- | Lib/idlelib/configHandler.py | 20 |
2 files changed, 20 insertions, 5 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 92ff0ff1cd..7329ee9d73 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -1,8 +1,11 @@ What's New in IDLE 1.2.3c1? -========================= +=========================== *Release date: XX-XXX-2008* +- Issue #2665: On Windows, an IDLE installation upgraded from an old version + would not start if a custom theme was defined. + What's New in IDLE 1.2.2? ========================= diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py index 3ddb4ed82d..fada4eb015 100644 --- a/Lib/idlelib/configHandler.py +++ b/Lib/idlelib/configHandler.py @@ -207,7 +207,10 @@ class IdleConf: if not os.path.exists(userDir): warn = ('\n Warning: os.path.expanduser("~") points to\n '+ userDir+',\n but the path does not exist.\n') - sys.stderr.write(warn) + try: + sys.stderr.write(warn) + except IOError: + pass userDir = '~' if userDir == "~": # still no path to home! # traditionally IDLE has defaulted to os.getcwd(), is this adequate? @@ -248,7 +251,10 @@ class IdleConf: ' from section %r.\n' ' returning default value: %r\n' % (option, section, default)) - sys.stderr.write(warning) + try: + sys.stderr.write(warning) + except IOError: + pass return default def SetOption(self, configType, section, option, value): @@ -357,7 +363,10 @@ class IdleConf: '\n from theme %r.\n' ' returning default value: %r\n' % (element, themeName, theme[element])) - sys.stderr.write(warning) + try: + sys.stderr.write(warning) + except IOError: + pass colour=cfgParser.Get(themeName,element,default=theme[element]) theme[element]=colour return theme @@ -611,7 +620,10 @@ class IdleConf: '\n from key set %r.\n' ' returning default value: %r\n' % (event, keySetName, keyBindings[event])) - sys.stderr.write(warning) + try: + sys.stderr.write(warning) + except IOError: + pass return keyBindings def GetExtraHelpSourceList(self,configSet): |