Mercurial > vim
changeset 22512:aeeee593fe0f v8.2.1804
patch 8.2.1804: resolve('/') returns an empty string
Commit: https://github.com/vim/vim/commit/50c4e9e08fb0981892e33afb9fe3751aa6df1fa4
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Oct 5 20:38:06 2020 +0200
patch 8.2.1804: resolve('/') returns an empty string
Problem: resolve('/') returns an empty string.
Solution: Don't remove single slash. (closes https://github.com/vim/vim/issues/7074)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 05 Oct 2020 20:45:04 +0200 |
parents | 1eb50499f3b0 |
children | 8e04c4b430d0 |
files | src/filepath.c src/testdir/test_functions.vim src/version.c |
diffstat | 3 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/filepath.c +++ b/src/filepath.c @@ -1889,7 +1889,7 @@ f_resolve(typval_T *argvars, typval_T *r is_relative_to_current = TRUE; len = STRLEN(p); - if (len > 0 && after_pathsep(p, p + len)) + if (len > 1 && after_pathsep(p, p + len)) { has_trailing_pathsep = TRUE; p[len - 1] = NUL; // the trailing slash breaks readlink()
--- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -339,6 +339,8 @@ func Test_resolve_unix() call assert_equal('Xlink2', resolve('Xlink1')) call assert_equal('./Xlink2', resolve('./Xlink1')) call delete('Xlink1') + + call assert_equal('/', resolve('/')) endfunc func s:normalize_fname(fname)