commit cc60495fe06cd064bd8b613d37ad65386bd39a7a
parent d3a7cd20aed896e62ca4fbcd44b8ebdf842d1adf
Author: Phil Runninger <PhilRunninger@users.noreply.github.com>
Date: Wed, 25 Apr 2018 01:25:43 -0400
Merge pull request #833 from hav4ik/master
Fixed error 'unknown function strcharpart' for older versions of Vim
Diffstat:
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/lib/nerdtree/bookmark.vim b/lib/nerdtree/bookmark.vim
@@ -287,10 +287,14 @@ function! s:Bookmark.str()
let pathStr = self.path.str({'format': 'UI'})
if strdisplaywidth(pathStr) > pathStrMaxLen
- while strdisplaywidth(pathStr) > pathStrMaxLen && strchars(pathStr) > 0
- let pathStr = strcharpart(pathStr, 1)
- endwhile
- let pathStr = '<' . pathStr
+ 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
endif
return '>' . self.name . ' ' . pathStr
endfunction
diff --git a/lib/nerdtree/path.vim b/lib/nerdtree/path.vim
@@ -720,9 +720,13 @@ function! s:Path.str(...)
if has_key(options, 'truncateTo')
let limit = options['truncateTo']
if strdisplaywidth(toReturn) > limit-1
- while strdisplaywidth(toReturn) > limit-1 && strchars(toReturn) > 0
- let toReturn = strcharpart(toReturn, 1)
- endwhile
+ 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
if len(split(toReturn, '/')) > 1
let toReturn = '</' . join(split(toReturn, '/')[1:], '/') . '/'
else