diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-08-06 22:11:06 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-08-06 22:11:06 +0200 |
commit | 8e1986e3896cc8c2a05fc6291a39ebb275e1cebf (patch) | |
tree | 2aa8d1f532271a335c18c8a90d6e0f8590cec334 | |
parent | 56b8dc331dc7f499c8221ed7d1c7795ad5e3bdeb (diff) | |
download | vim-git-8e1986e3896cc8c2a05fc6291a39ebb275e1cebf.tar.gz |
patch 8.2.1382: Vim9: using :import in filetype plugin gives an errorv8.2.1382
Problem: Vim9: using :import in filetype plugin gives an error.
Solution: Allow commands with the EX_LOCK_OK flag. (closes #6636)
-rw-r--r-- | src/ex_docmd.c | 2 | ||||
-rw-r--r-- | src/testdir/test_vim9_script.vim | 30 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 33 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 105710b01..96eac7fbe 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2087,7 +2087,7 @@ do_one_cmd( // Do allow ":checktime" (it is postponed). // Do allow ":edit" (check for an argument later). // Do allow ":file" with no arguments (check for an argument later). - if (!(ea.argt & EX_CMDWIN) + if (!(ea.argt & (EX_CMDWIN | EX_LOCK_OK)) && ea.cmdidx != CMD_checktime && ea.cmdidx != CMD_edit && ea.cmdidx != CMD_file diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index b05cd54eb..e5d5e872d 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -1381,6 +1381,36 @@ def Test_import_export_expr_map() nunmap trigger enddef +def Test_import_in_filetype() + # check that :import works when the buffer is locked + mkdir('ftplugin', 'p') + let export_lines =<< trim END + vim9script + export let That = 'yes' + END + writefile(export_lines, 'ftplugin/Xexport_that.vim') + + let import_lines =<< trim END + vim9script + import That from './Xexport_that.vim' + assert_equal('yes', That) + g:did_load_mytpe = 1 + END + writefile(import_lines, 'ftplugin/qf.vim') + + let save_rtp = &rtp + &rtp = getcwd() .. ',' .. &rtp + + filetype plugin on + copen + assert_equal(1, g:did_load_mytpe) + + quit! + delete('Xexport.vim') + delete('ftplugin', 'rf') + &rtp = save_rtp +enddef + def Test_vim9script_fails() CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:') CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:') diff --git a/src/version.c b/src/version.c index 3d7c5b129..5c745df66 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1382, +/**/ 1381, /**/ 1380, |