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.'/'