]> granicus.if.org Git - vim/commitdiff
patch 8.2.1804: resolve('/') returns an empty string v8.2.1804
authorBram Moolenaar <Bram@vim.org>
Mon, 5 Oct 2020 18:38:06 +0000 (20:38 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 5 Oct 2020 18:38:06 +0000 (20:38 +0200)
Problem:    resolve('/') returns an empty string.
Solution:   Don't remove single slash. (closes #7074)

src/filepath.c
src/testdir/test_functions.vim
src/version.c

index e2131a4b7000a2ece8ebc4fff9e61f225cd9ff91..b692e227c71b4ff45d1808c51dbb1706a02cb942 100644 (file)
@@ -1889,7 +1889,7 @@ f_resolve(typval_T *argvars, typval_T *rettv)
            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()
index 45b997f501845726bb01f7acdc58037c8755a60a..b8161254865bfb86d3d1ea1451361fc83b970caf 100644 (file)
@@ -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)
index e4bc870cc2b28b2527c6f87236efe6316534e652..cfd0d5458ac5038998aafffdb0eede6fe38ff526 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1804,
 /**/
     1803,
 /**/