summaryrefslogtreecommitdiff
path: root/Lib/idlelib
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2007-08-12 01:52:35 +0000
committerKurt B. Kaiser <kbk@shore.net>2007-08-12 01:52:35 +0000
commitcbbe98f04fb03922ff2e3b6bf35769cf63673153 (patch)
treebc153d343fef9fea56430ff9456236027b3dea9b /Lib/idlelib
parent801c89be5dbf90defc492d9b81d6dec8e8a1a16a (diff)
downloadcpython-git-cbbe98f04fb03922ff2e3b6bf35769cf63673153.tar.gz
1. Catch TypeError exception when writing to OutputWindow
2. PyShell: shell isn't working due to encoding issues. Temporarily direct exceptions to the terminal. Also, trap exceptions occurring during write() instead of passing. Checking (2) in temporarily to aid finding the encoding problem in IOBinding.py
Diffstat (limited to 'Lib/idlelib')
-rw-r--r--Lib/idlelib/OutputWindow.py2
-rw-r--r--Lib/idlelib/PyShell.py5
2 files changed, 5 insertions, 2 deletions
diff --git a/Lib/idlelib/OutputWindow.py b/Lib/idlelib/OutputWindow.py
index ef155a442e..4c07c035e8 100644
--- a/Lib/idlelib/OutputWindow.py
+++ b/Lib/idlelib/OutputWindow.py
@@ -40,6 +40,8 @@ class OutputWindow(EditorWindow):
if isinstance(s, str):
try:
s = str(s, IOBinding.encoding)
+ except TypeError:
+ raise
except UnicodeError:
# some other encoding; let Tcl deal with it
pass
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index bfd659c336..18ed3aa57f 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -825,7 +825,7 @@ class PyShell(OutputWindow):
self.console = PseudoFile(self, "console", IOBinding.encoding)
if not use_subprocess:
sys.stdout = self.stdout
- sys.stderr = self.stderr
+### sys.stderr = self.stderr # Don't redirect exceptions, pyshell NG
sys.stdin = self
#
self.history = self.History(self.text)
@@ -1214,7 +1214,8 @@ class PyShell(OutputWindow):
OutputWindow.write(self, s, tags, "iomark")
self.text.mark_gravity("iomark", "left")
except:
- pass
+ raise ###pass # ### 11Aug07 KBK if we are expecting exceptions
+ # let's find out what they are and be specific.
if self.canceled:
self.canceled = 0
if not use_subprocess: