diff --git a/autoload/ale/path.vim b/autoload/ale/path.vim index 94de252d..00e31310 100644 --- a/autoload/ale/path.vim +++ b/autoload/ale/path.vim @@ -116,7 +116,7 @@ function! ale#path#Dirname(path) abort endif " For /foo/bar/ we need :h:h to get /foo - if a:path[-1:] is# '/' + if a:path[-1:] is# '/' || (has('win32') && a:path[-1:] is# '\') return fnamemodify(a:path, ':h:h') endif diff --git a/test/test_path_dirname.vader b/test/test_path_dirname.vader index 79b78d29..818a62a8 100644 --- a/test/test_path_dirname.vader +++ b/test/test_path_dirname.vader @@ -6,3 +6,8 @@ Execute(ale#path#Dirname should return empty strings should be returned for empt Execute(ale#path#Dirname should return the dirname of paths): AssertEqual '/foo', ale#path#Dirname('/foo/bar') AssertEqual '/foo', ale#path#Dirname('/foo/bar/') + + if has('win32') + AssertEqual 'C:\foo', ale#path#Dirname('C:\foo\bar') + AssertEqual 'C:\foo', ale#path#Dirname('C:\foo\bar\') + endif