]> granicus.if.org Git - vim/commitdiff
patch 7.4.1479 v7.4.1479
authorBram Moolenaar <Bram@vim.org>
Thu, 3 Mar 2016 14:47:06 +0000 (15:47 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 3 Mar 2016 14:47:06 +0000 (15:47 +0100)
Problem:    No testfor ":loadplugin".
Solution:   Add a test.  Fix how option is being set.

src/ex_cmds2.c
src/testdir/Make_all.mak
src/testdir/test_loadplugin.vim [new file with mode: 0644]
src/version.c

index 3768569397affcc272f46db106f79e65cdad2d70..52575bf0a5b272b77538f00b8c2e4d638fb0c373 100644 (file)
@@ -3058,14 +3058,14 @@ do_in_runtimepath(
     static void
 may_do_filetypes(char_u *pat)
 {
-    char_u *cmd = vim_strsave((char_u *)"did_load_filetypes");
+    char_u *cmd = vim_strsave((char_u *)"g:did_load_filetypes");
 
     /* If runtime/filetype.vim wasn't loaded yet, the scripts will be found
      * when it loads. */
     if (cmd != NULL && eval_to_number(cmd) > 0)
     {
        do_cmdline_cmd((char_u *)"augroup filetypedetect");
-       source_runtime(pat, TRUE);
+       do_in_path(p_pp, pat, TRUE, source_callback, NULL);
        do_cmdline_cmd((char_u *)"augroup END");
     }
     vim_free(cmd);
@@ -3125,8 +3125,8 @@ source_pack_plugin(char_u *fname, void *cookie UNUSED)
        if (p_rtp[keep] != NUL)
            mch_memmove(new_rtp + keep + 1 + addlen, p_rtp + keep,
                                                           oldlen - keep + 1);
-       free_string_option(p_rtp);
-       p_rtp = new_rtp;
+       set_option_value((char_u *)"rtp", 0L, new_rtp, 0);
+       vim_free(new_rtp);
     }
     *p2 = c;
 
index 8901b158961230332c8cb99022faed1359ceb8ce..4c3c61678259d4d322010504427fff7e6fecb8b6 100644 (file)
@@ -178,6 +178,7 @@ NEW_TESTS = test_arglist.res \
            test_increment.res \
            test_json.res \
            test_langmap.res \
+           test_loadplugin.res \
            test_perl.res \
            test_quickfix.res \
            test_syntax.res \
diff --git a/src/testdir/test_loadplugin.vim b/src/testdir/test_loadplugin.vim
new file mode 100644 (file)
index 0000000..25c6715
--- /dev/null
@@ -0,0 +1,25 @@
+" Tests for :loadplugin
+
+func Test_loadplugin()
+  let topdir = expand('%:h') . '/Xdir'
+  exe 'set packpath=' . topdir
+  let plugdir = topdir . '/pack/mine/opt/mytest'
+  call mkdir(plugdir . '/plugin', 'p')
+  call mkdir(plugdir . '/ftdetect', 'p')
+  filetype on
+  try
+    exe 'split ' . plugdir . '/plugin/test.vim'
+    call setline(1, 'let g:plugin_works = 42')
+    wq
+
+    exe 'split ' . plugdir . '/ftdetect/test.vim'
+    call setline(1, 'let g:ftdetect_works = 17')
+    wq
+
+    loadplugin mytest
+    call assert_true(42, g:plugin_works)
+    call assert_true(17, g:ftdetect_works)
+  finally
+    call delete(topdir, 'rf')
+  endtry
+endfunc
index 0731d61bd53121674f10151cc16fc67ffeb40137..d13f47afa45817f90eb4d1520f98d06abc9fa18c 100644 (file)
@@ -743,6 +743,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1479,
 /**/
     1478,
 /**/