Respect the fact that vim.eval in Vim returns str instances

This commit is contained in:
ZyX 2014-07-10 22:54:27 +04:00
parent 3ac75eeca6
commit a92d72b5d7
1 changed files with 19 additions and 0 deletions

View File

@ -44,6 +44,24 @@ def _vim(func):
return f return f
def _unicode(func):
from functools import wraps
import sys
if sys.version_info < (3,):
return func
@wraps(func)
def f(*args, **kwargs):
from powerline.lib.unicode import u
ret = func(*args, **kwargs)
if isinstance(ret, bytes):
ret = u(ret)
return ret
return f
class _Buffers(object): class _Buffers(object):
@_vim @_vim
def __init__(self): def __init__(self):
@ -163,6 +181,7 @@ def command(cmd):
@_vim @_vim
@_unicode
def eval(expr): def eval(expr):
if expr.startswith('g:'): if expr.startswith('g:'):
return vars[expr[2:]] return vars[expr[2:]]