From 1fed7edaa76401b712ac5629eec438344901019f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 25 Mar 2005 20:34:52 +0000 Subject: [PATCH] Be a little smarter about converting unicode command-lines to string objects. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/wx/py/interpreter.py | 11 +++++++++-- wxPython/wx/py/introspect.py | 10 +++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/wxPython/wx/py/interpreter.py b/wxPython/wx/py/interpreter.py index fe95d5e80b..112344ad3f 100644 --- a/wxPython/wx/py/interpreter.py +++ b/wxPython/wx/py/interpreter.py @@ -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 diff --git a/wxPython/wx/py/introspect.py b/wxPython/wx/py/introspect.py index ccc97e056a..570686dd7f 100644 --- a/wxPython/wx/py/introspect.py +++ b/wxPython/wx/py/introspect.py @@ -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) -- 2.45.2