aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2016-04-28 19:23:15 -0400
committerJames McCoy <jamessan@jamessan.com>2016-07-08 01:39:12 -0400
commitd43ac790f2454e2173eb645bdcd97c7a7c7e4846 (patch)
tree873c80c713e57c8b349ad35674d127334f546f28
parent9dc621e77deded9d7fe8ca478a17443da50b88ef (diff)
downloadrneovim-d43ac790f2454e2173eb645bdcd97c7a7c7e4846.tar.gz
rneovim-d43ac790f2454e2173eb645bdcd97c7a7c7e4846.tar.bz2
rneovim-d43ac790f2454e2173eb645bdcd97c7a7c7e4846.zip
vim-patch:7.4.1479
Problem: No testfor ":loadplugin". Solution: Add a test. Fix how option is being set. https://github.com/vim/vim/commit/863c1a9079fa340d663ccafb011729a29186d73e
-rw-r--r--src/nvim/ex_cmds2.c8
-rw-r--r--src/nvim/version.c2
-rw-r--r--test/functional/legacy/loadplugin_spec.lua46
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)