Skip to content

Commit 803af68

Browse files
committed
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)
1 parent c5da1fb commit 803af68

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

src/ex_cmds.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ EXCMD(CMD_exit, "exit", ex_exit,
572572
EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_FILE1|EX_ARGOPT|EX_DFLALL|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
573573
ADDR_LINES),
574574
EXCMD(CMD_export, "export", ex_export,
575-
EX_EXTRA|EX_NOTRLCOM,
575+
EX_EXTRA|EX_NOTRLCOM|EX_LOCK_OK,
576576
ADDR_NONE),
577577
EXCMD(CMD_exusage, "exusage", ex_exusage,
578578
EX_TRLBAR,
@@ -698,7 +698,7 @@ EXCMD(CMD_imenu, "imenu", ex_menu,
698698
EX_RANGE|EX_ZEROR|EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
699699
ADDR_OTHER),
700700
EXCMD(CMD_import, "import", ex_import,
701-
EX_EXTRA|EX_NOTRLCOM,
701+
EX_EXTRA|EX_NOTRLCOM|EX_LOCK_OK,
702702
ADDR_NONE),
703703
EXCMD(CMD_inoremap, "inoremap", ex_map,
704704
EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,

src/testdir/test_vim9_script.vim

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,6 +1351,36 @@ def Test_vim9_import_export()
13511351
delete('Xvim9_script')
13521352
enddef
13531353

1354+
func g:Trigger()
1355+
source Ximport.vim
1356+
return "echo 'yes'\<CR>"
1357+
endfunc
1358+
1359+
def Test_import_export_expr_map()
1360+
# check that :import and :export work when buffer is locked
1361+
let export_lines =<< trim END
1362+
vim9script
1363+
export def That(): string
1364+
return 'yes'
1365+
enddef
1366+
END
1367+
writefile(export_lines, 'Xexport_that.vim')
1368+
1369+
let import_lines =<< trim END
1370+
vim9script
1371+
import That from './Xexport_that.vim'
1372+
assert_equal('yes', That())
1373+
END
1374+
writefile(import_lines, 'Ximport.vim')
1375+
1376+
nnoremap <expr> trigger g:Trigger()
1377+
feedkeys('trigger', "xt")
1378+
1379+
delete('Xexport.vim')
1380+
delete('Ximport.vim')
1381+
nunmap trigger
1382+
enddef
1383+
13541384
def Test_vim9script_fails()
13551385
CheckScriptFailure(['scriptversion 2', 'vim9script'], 'E1039:')
13561386
CheckScriptFailure(['vim9script', 'scriptversion 2'], 'E1040:')

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,8 @@ static char *(features[]) =
754754

755755
static int included_patches[] =
756756
{ /* Add new patch number below this line */
757+
/**/
758+
1376,
757759
/**/
758760
1375,
759761
/**/

0 commit comments

Comments
 (0)