From e922f7302fae04e157f7e8a6b49621a17e1e4649 Mon Sep 17 00:00:00 2001 From: Levi Rizki Saputra <42236775+levirs565@users.noreply.github.com> Date: Fri, 20 Nov 2020 19:08:51 +0700 Subject: [PATCH] Fix Renaming issue in Windows and ext with two dot (#1051) * fix subdir not correct when path using `\` * fix slice by variable value not supported in vim 7.3 --- autoload/vimwiki/base.vim | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim index 5c532d2..1d4446b 100644 --- a/autoload/vimwiki/base.vim +++ b/autoload/vimwiki/base.vim @@ -62,12 +62,19 @@ function! vimwiki#base#subdir(path, filename) abort let filename = a:filename endif let idx = 0 + let pathelement = split(path, '[/\\]') + let fileelement = split(filename, '[/\\]') + let minlen = min([len(pathelement), len(fileelement)]) + let p = fileelement[:] "FIXME this can terminate in the middle of a path component! - while path[idx] ==? filename[idx] + while pathelement[idx] ==? fileelement[idx] + let p = p[1:] let idx = idx + 1 + if idx == minlen + break + endif endwhile - let p = split(strpart(filename, idx), '[/\\]') let res = join(p[:-2], '/') if len(res) > 0 let res = res.'/'