diff options
-rw-r--r-- | src/nvim/ex_cmds2.c | 8 | ||||
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | test/functional/legacy/loadplugin_spec.lua | 46 |
3 files changed, 51 insertions, 5 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 8389ed9400..bafd4ee666 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -2378,13 +2378,13 @@ int do_in_runtimepath(char_u *name, bool all, DoInRuntimepathCB callback, // Source filetype detection scripts, if filetype.vim was already done. 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("augroup filetypedetect"); - source_runtime(pat, TRUE); + do_in_path(p_pp, pat, true, source_callback, NULL); do_cmdline_cmd("augroup END"); } xfree(cmd); @@ -2438,8 +2438,8 @@ static void source_pack_plugin(char_u *fname, void *cookie) 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); + xfree(new_rtp); } *p2 = c; diff --git a/src/nvim/version.c b/src/nvim/version.c index 896bf47a53..da717b9319 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -216,7 +216,7 @@ static int included_patches[] = { // 1482 NA // 1481 NA // 1480, - // 1479, + 1479, 1478, // 1477, // 1476 NA diff --git a/test/functional/legacy/loadplugin_spec.lua b/test/functional/legacy/loadplugin_spec.lua new file mode 100644 index 0000000000..267520ac5c --- /dev/null +++ b/test/functional/legacy/loadplugin_spec.lua @@ -0,0 +1,46 @@ +-- Tests for :loadplugin + +local helpers = require('test.functional.helpers')(after_each) +local clear, source = helpers.clear, helpers.source +local call, eq, nvim = helpers.call, helpers.eq, helpers.meths + +local function expected_empty() + eq({}, nvim.get_vvar('errors')) +end + +describe('loadplugin', function() + setup(function() + clear() + + source([=[ + func Test_loadplugin() + let topdir = expand('%:p: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 + ]=]) + end) + + it('is working', function() + call('Test_loadplugin') + expected_empty() + end) +end) |