Fix crash when entering unicode paths
prompt must be str, not unicode, so we encode it
This commit is contained in:
parent
ec689b1e7f
commit
c0121ae6ab
1 changed files with 12 additions and 13 deletions
|
|
@ -88,13 +88,6 @@ class ReplApplication(Cmd, ConsoleApplication):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Cmd.__init__(self)
|
Cmd.__init__(self)
|
||||||
# XXX can't use bold prompt because:
|
|
||||||
# 1. it causes problems when trying to get history (lines don't start
|
|
||||||
# at the right place).
|
|
||||||
# 2. when typing a line longer than term width, cursor goes at start
|
|
||||||
# of the same line instead of new line.
|
|
||||||
#self.prompt = self.BOLD + '%s> ' % self.APPNAME + self.NC
|
|
||||||
self.prompt = '%s> ' % self.APPNAME
|
|
||||||
self.intro = '\n'.join(('Welcome to %s%s%s v%s' % (self.BOLD, self.APPNAME, self.NC, self.VERSION),
|
self.intro = '\n'.join(('Welcome to %s%s%s v%s' % (self.BOLD, self.APPNAME, self.NC, self.VERSION),
|
||||||
'',
|
'',
|
||||||
self.COPYRIGHT.encode(sys.stdout.encoding or locale.getpreferredencoding()),
|
self.COPYRIGHT.encode(sys.stdout.encoding or locale.getpreferredencoding()),
|
||||||
|
|
@ -135,21 +128,27 @@ class ReplApplication(Cmd, ConsoleApplication):
|
||||||
self._parser.add_option_group(formatting_options)
|
self._parser.add_option_group(formatting_options)
|
||||||
|
|
||||||
self._interactive = False
|
self._interactive = False
|
||||||
self.objects = []
|
|
||||||
self.collections = []
|
|
||||||
self.working_path = WorkingPath()
|
self.working_path = WorkingPath()
|
||||||
|
self._change_prompt()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def interactive(self):
|
def interactive(self):
|
||||||
return self._interactive
|
return self._interactive
|
||||||
|
|
||||||
def _change_prompt(self):
|
def _change_prompt(self):
|
||||||
if len(self.working_path.get()):
|
|
||||||
self.prompt = u'%s:%s> ' % (self.APPNAME, unicode(self.working_path))
|
|
||||||
else:
|
|
||||||
self.prompt = u'%s> ' % (self.APPNAME)
|
|
||||||
self.objects = []
|
self.objects = []
|
||||||
self.collections = []
|
self.collections = []
|
||||||
|
# XXX can't use bold prompt because:
|
||||||
|
# 1. it causes problems when trying to get history (lines don't start
|
||||||
|
# at the right place).
|
||||||
|
# 2. when typing a line longer than term width, cursor goes at start
|
||||||
|
# of the same line instead of new line.
|
||||||
|
#self.prompt = self.BOLD + '%s> ' % self.APPNAME + self.NC
|
||||||
|
if len(self.working_path.get()):
|
||||||
|
wp_enc = unicode(self.working_path).encode(sys.stdout.encoding or locale.getpreferredencoding())
|
||||||
|
self.prompt = '%s:%s> ' % (self.APPNAME, wp_enc)
|
||||||
|
else:
|
||||||
|
self.prompt = '%s> ' % (self.APPNAME)
|
||||||
|
|
||||||
def change_path(self, split_path):
|
def change_path(self, split_path):
|
||||||
self.working_path.location(split_path)
|
self.working_path.location(split_path)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue