]> git.saurik.com Git - wxWidgets.git/commitdiff
Be a little smarter about converting unicode command-lines to string objects.
authorRobin Dunn <robin@alldunn.com>
Fri, 25 Mar 2005 20:34:52 +0000 (20:34 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 25 Mar 2005 20:34:52 +0000 (20:34 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/wx/py/interpreter.py
wxPython/wx/py/introspect.py

index fe95d5e80b839065427809185b89df584bef4a99..112344ad3f6015915ba18fa00090f77f54aac286 100644 (file)
@@ -9,7 +9,7 @@ import sys
 from code import InteractiveInterpreter
 import dispatcher
 import introspect
-
+import wx
 
 class Interpreter(InteractiveInterpreter):
     """Interpreter based on code.InteractiveInterpreter."""
@@ -53,7 +53,14 @@ class Interpreter(InteractiveInterpreter):
         command we keep appending the pieces to the last list in
         commandBuffer until we have a complete command. If not, we
         delete that last list."""
-        command = str(command)  # In case the command is unicode.
+
+        # In case the command is unicode try encoding it
+        if type(command) == unicode:
+            try:
+                command = command.encode(wx.GetDefaultPyEncoding())
+            except UnicodeEncodeError:
+                pass # otherwise leave it alone
+                
         if not self.more:
             try: del self.commandBuffer[-1]
             except IndexError: pass
index ccc97e056a1c828f21beef1834ff4b2bb20db3ad..570686dd7fdb4776121e11aa309320ed3962c4c3 100644 (file)
@@ -12,6 +12,7 @@ import inspect
 import sys
 import tokenize
 import types
+import wx
 
 def getAutoCompleteList(command='', locals=None, includeMagic=1, 
                         includeSingle=1, includeDouble=1):
@@ -291,7 +292,14 @@ def getRoot(command, terminator=None):
 
 def getTokens(command):
     """Return list of token tuples for command."""
-    command = str(command)  # In case the command is unicode, which fails.
+
+    # In case the command is unicode try encoding it
+    if type(command) == unicode:
+        try:
+            command = command.encode(wx.GetDefaultPyEncoding())
+        except UnicodeEncodeError:
+            pass # otherwise leave it alone
+                
     f = cStringIO.StringIO(command)
     # tokens is a list of token tuples, each looking like: 
     # (type, string, (srow, scol), (erow, ecol), line)