nerdtree

A tree explorer plugin for vim.
Index Commits Files Refs
commit 0972cda24374350207a2bb00af6f7746df911b15
parent d3a7cd20aed896e62ca4fbcd44b8ebdf842d1adf
Author: hav4ik <tranthecoder@gmail.com>
Date:   Wed, 25 Apr 2018 03:04:18 +0300

Fixed bug 'unknown function strcharpart' for older versions of Vim

Diffstat:
Mlib/nerdtree/bookmark.vim | 12++++++++----
Mlib/nerdtree/path.vim | 10+++++++---
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