changeset 8374:5d834058bf44 v7.4.1479

commit https://github.com/vim/vim/commit/863c1a9079fa340d663ccafb011729a29186d73e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Mar 3 15:47:06 2016 +0100 patch 7.4.1479 Problem: No testfor ":loadplugin". Solution: Add a test. Fix how option is being set.
author Christian Brabandt <cb@256bit.org>
date Thu, 03 Mar 2016 16:00:05 +0100
parents d0cac5912500
children 3d5a49fe23bf
files src/ex_cmds2.c src/testdir/Make_all.mak src/testdir/test_loadplugin.vim src/version.c
diffstat 4 files changed, 32 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -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 *
 	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;
 
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -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 \
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_loadplugin.vim
@@ -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
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1479,
+/**/
     1478,
 /**/
     1477,