Merge pull request #834 from bravestarr/fix-multibyte-path

Replace strcharpart() with substitute() for backward compatibility
This commit is contained in:
Phil Runninger 2018-04-26 09:36:24 -04:00 committed by GitHub
commit 925a96f58d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 15 deletions

View File

@ -287,14 +287,10 @@ function! s:Bookmark.str()
let pathStr = self.path.str({'format': 'UI'})
if strdisplaywidth(pathStr) > pathStrMaxLen
if exists("*strcharpart")
while strdisplaywidth(pathStr) > pathStrMaxLen && strchars(pathStr) > 0
let pathStr = strcharpart(pathStr, 1)
endwhile
let pathStr = '<' . pathStr
else
let pathStr = '<' . strpart(pathStr, len(pathStr) - pathStrMaxLen)
endif
while strdisplaywidth(pathStr) > pathStrMaxLen && strchars(pathStr) > 0
let pathStr = substitute(pathStr, '^.', '', '')
endwhile
let pathStr = '<' . pathStr
endif
return '>' . self.name . ' ' . pathStr
endfunction

View File

@ -720,13 +720,9 @@ function! s:Path.str(...)
if has_key(options, 'truncateTo')
let limit = options['truncateTo']
if strdisplaywidth(toReturn) > limit-1
if exists("*strcharpart")
while strdisplaywidth(toReturn) > limit-1 && strchars(toReturn) > 0
let toReturn = strcharpart(toReturn, 1)
endwhile
else
let toReturn = toReturn[(len(toReturn)-limit+1):]
endif
while strdisplaywidth(toReturn) > limit-1 && strchars(toReturn) > 0
let toReturn = substitute(toReturn, '^.', '', '')
endwhile
if len(split(toReturn, '/')) > 1
let toReturn = '</' . join(split(toReturn, '/')[1:], '/') . '/'
else