]> granicus.if.org Git - python/commitdiff
Merge Py Idle changes:
authorKurt B. Kaiser <kbk@shore.net>
Tue, 17 Sep 2002 03:40:47 +0000 (03:40 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Tue, 17 Sep 2002 03:40:47 +0000 (03:40 +0000)
Rev 1.7 loewis
Convert characters from the locale's encoding on output.
Reject characters outside the locale's encoding on input.

Lib/idlelib/OutputWindow.py

index 7522720c29e10ee258c228aac027fe83225d0be0..181238fea7c0ac134d2c8316f77113f05dd2ef87 100644 (file)
@@ -2,6 +2,7 @@ from Tkinter import *
 from EditorWindow import EditorWindow
 import re
 import tkMessageBox
+import IOBinding
 
 class OutputWindow(EditorWindow):
 
@@ -34,6 +35,14 @@ class OutputWindow(EditorWindow):
     # Act as output file
 
     def write(self, s, tags=(), mark="insert"):
+        # Tk assumes that byte strings are Latin-1;
+        # we assume that they are in the locale's encoding
+        if isinstance(s, str):
+            try:
+                s = unicode(s, IOBinding.encoding)
+            except UnicodeError:
+                # some other encoding; let Tcl deal with it
+                pass
         self.text.insert(mark, s, tags)
         self.text.see(mark)
         self.text.update()