0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.1376: Vim9: expression mapping causes error for using :import

Problem:    Vim9: expression mapping causes error for using :import.
Solution:   Add EX_LOCK_OK to :import and :export. (closes 3606)
This commit is contained in:
Bram Moolenaar 2020-08-05 16:20:03 +02:00
parent c5da1fb7ea
commit 803af686e2
3 changed files with 34 additions and 2 deletions

View File

@ -572,7 +572,7 @@ EXCMD(CMD_exit, "exit", ex_exit,
EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
ADDR_LINES),
EXCMD(CMD_export, "export", ex_export,
EX_EXTRA|EX_NOTRLCOM,
EX_EXTRA|EX_NOTRLCOM|EX_LOCK_OK,
ADDR_NONE),
EXCMD(CMD_exusage, "exusage", ex_exusage,
EX_TRLBAR,
@ -698,7 +698,7 @@ EXCMD(CMD_imenu, "imenu", ex_menu,
EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
ADDR_OTHER),
EXCMD(CMD_import, "import", ex_import,
EX_EXTRA|EX_NOTRLCOM,
EX_EXTRA|EX_NOTRLCOM|EX_LOCK_OK,
ADDR_NONE),
EXCMD(CMD_inoremap, "inoremap", ex_map,
EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,

View File

@ -1351,6 +1351,36 @@ def Test_vim9_import_export()
delete('Xvim9_script')
enddef
func g:Trigger()
source Ximport.vim
return "echo 'yes'\<CR>"
endfunc
def Test_import_export_expr_map()
# check that :import and :export work when buffer is locked
let export_lines =<< trim END
vim9script
export def That(): string
return 'yes'
enddef
END
writefile(export_lines, 'Xexport_that.vim')
let import_lines =<< trim END
vim9script
import That from './Xexport_that.vim'
assert_equal('yes', That())
END
writefile(import_lines, 'Ximport.vim')
nnoremap <expr> trigger g:Trigger()
feedkeys('trigger', "xt")
delete('Xexport.vim')
delete('Ximport.vim')
nunmap trigger
enddef
def Test_vim9script_fails()
CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:')
CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')

View File

@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1376,
/**/
1375,
/**/