]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.2.4082: check for autoload file name and prefix fails v8.2.4082
authorBram Moolenaar <Bram@vim.org>
Thu, 13 Jan 2022 19:25:50 +0000 (19:25 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 13 Jan 2022 19:25:50 +0000 (19:25 +0000)
Problem:    Check for autoload file name and prefix fails. (Christian J.
            Robinson)
Solution:   Only lower case the prefix on systems where the file name is not
            case sensitive.

src/scriptfile.c
src/testdir/test_vim9_import.vim
src/version.c

index 56186ff07e7727e849ac3f851652a93d952cccdd..0d39f38fb1fdca0b5b1b4fe66c924b8faca64b44 100644 (file)
@@ -2156,7 +2156,11 @@ get_autoload_prefix(scriptitem_T *si)
 
     if (p == NULL)
        return NULL;
+#ifdef CASE_INSENSITIVE_FILENAME
     prefix = strlow_save(p);
+#else
+    prefix = vim_strsave(p);
+#endif
     if (prefix == NULL)
        return NULL;
 
index 922bd3d66bf00d42a2e3dff5553a5579cbe5d249..e9d94734a304596d1f05535f214658c0254e81b9 100644 (file)
@@ -1375,6 +1375,31 @@ def Test_vim9_aucmd_autoload()
   &rtp = save_rtp
 enddef
 
+" test using a autoloaded file that is case sensitive
+def Test_vim9_autoload_case_sensitive()
+  var lines =<< trim END
+     vim9script autoload
+     export def CaseSensitive(): string
+       return 'done'
+     enddef
+  END
+
+  mkdir('Xdir/autoload', 'p')
+  writefile(lines, 'Xdir/autoload/CaseSensitive.vim')
+  var save_rtp = &rtp
+  exe 'set rtp^=' .. getcwd() .. '/Xdir'
+
+  lines =<< trim END
+      vim9script
+      import autoload 'CaseSensitive.vim'
+      assert_equal('done', CaseSensitive.CaseSensitive())
+  END
+  CheckScriptSuccess(lines)
+
+  delete('Xdir', 'rf')
+  &rtp = save_rtp
+enddef
+
 " This was causing a crash because suppress_errthrow wasn't reset.
 def Test_vim9_autoload_error()
   var lines =<< trim END
index 67a258a98ff169b1dce9f9f1d739d2f7134767f3..2a2c3de50bd3b609c64957e525f765087764b3d6 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4082,
 /**/
     4081,
 /**/