Changed cmdparser to properly convert to unicode before length measuring, which was causing unexpected behavior with non-ASCII charsets.
This commit is contained in:
parent
3fcee453b9
commit
a7e42b2a5b
2 changed files with 2 additions and 2 deletions
|
|
@ -60,7 +60,7 @@ def cmdparser(raw_string, cmdset, caller, match_index=None):
|
||||||
full input string the cmdname takes up - an exact match would be 1.0.
|
full input string the cmdname takes up - an exact match would be 1.0.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
cmdlen, strlen = len(cmdname), len(string)
|
cmdlen, strlen = len(unicode(cmdname)), len(unicode(string))
|
||||||
mratio = 1 - (strlen - cmdlen) / (1.0 * strlen)
|
mratio = 1 - (strlen - cmdlen) / (1.0 * strlen)
|
||||||
args = string[cmdlen:]
|
args = string[cmdlen:]
|
||||||
return (cmdname, args, cmdobj, cmdlen, mratio)
|
return (cmdname, args, cmdobj, cmdlen, mratio)
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ def _init_command(mcs, **kwargs):
|
||||||
mcs.lock_storage = ";".join(temp)
|
mcs.lock_storage = ";".join(temp)
|
||||||
|
|
||||||
if hasattr(mcs, 'arg_regex') and isinstance(mcs.arg_regex, basestring):
|
if hasattr(mcs, 'arg_regex') and isinstance(mcs.arg_regex, basestring):
|
||||||
mcs.arg_regex = re.compile(r"%s" % mcs.arg_regex, re.I)
|
mcs.arg_regex = re.compile(r"%s" % mcs.arg_regex, re.I + re.UNICODE)
|
||||||
if not hasattr(mcs, "auto_help"):
|
if not hasattr(mcs, "auto_help"):
|
||||||
mcs.auto_help = True
|
mcs.auto_help = True
|
||||||
if not hasattr(mcs, 'is_exit'):
|
if not hasattr(mcs, 'is_exit'):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue