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
This commit is contained in:
Robin Dunn
2005-03-25 20:34:52 +00:00
parent 8bd882eec1
commit 1fed7edaa7
2 changed files with 18 additions and 3 deletions

View 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

View 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)