diff options
-rw-r--r-- | src/ex_cmds2.c | 8 | ||||
-rw-r--r-- | src/testdir/Make_all.mak | 1 | ||||
-rw-r--r-- | src/testdir/test_loadplugin.vim | 25 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 32 insertions, 4 deletions
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 376856939..52575bf0a 100644 --- 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 *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; diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 8901b1589..4c3c61678 100644 --- 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 \ diff --git a/src/testdir/test_loadplugin.vim b/src/testdir/test_loadplugin.vim new file mode 100644 index 000000000..25c671538 --- /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 diff --git a/src/version.c b/src/version.c index 0731d61bd..d13f47afa 100644 --- 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, |