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)
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1804,
+/**/
     1803,
 /**/
     1802,