Merge pull request #22303 from zeertzjq/vim-9.0.1315

vim-patch:9.0.1315: escaping for completion of map command not properly tested
This commit is contained in:
zeertzjq 2023-02-18 07:29:41 +08:00 committed by GitHub
commit bb369a14f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 8 deletions

View File

@ -1194,7 +1194,7 @@ static char *translate_mapping(char_u *str, int cpo_flags)
}
if (c == ' ' || c == '\t' || c == Ctrl_J || c == Ctrl_V
|| (c == '\\' && !cpo_bslash)) {
|| c == '<' || (c == '\\' && !cpo_bslash)) {
ga_append(&ga, cpo_bslash ? Ctrl_V : '\\');
}

View File

@ -2720,7 +2720,7 @@ func Test_autocmd_bufreadpre()
close
close
call delete('XAutocmdBufReadPre.txt')
" set cpo-=g
set cpo-=g
endfunc
" FileChangedShell tested in test_filechanged.vim

View File

@ -330,17 +330,21 @@ func Test_map_completion()
call assert_equal('"map <Left>', getreg(':'))
call feedkeys(":map <A-Left>\<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal("\"map <A-Left>\<Tab>", getreg(':'))
call feedkeys(":map <M-Left>\<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal("\"map <M-Left>x", getreg(':'))
unmap ,f
unmap ,g
unmap <Left>
unmap <A-Left>x
set cpo-=< cpo-=B cpo-=k
set cpo-=< cpo-=k
map <Left> left
call feedkeys(":map <L\<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal('"map <Left>', getreg(':'))
call feedkeys(":map <M\<Tab>\<Home>\"\<CR>", 'xt')
" call assert_equal("\"map <M\<Tab>", getreg(':'))
call assert_equal("\"map <M\<Tab>", getreg(':'))
call feedkeys(":map \<C-V>\<C-V><M\<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal("\"map \<C-V><Middle>x", getreg(':'))
unmap <Left>
" set cpo+=<
@ -369,7 +373,7 @@ func Test_map_completion()
call feedkeys(":map <L\<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal('"map <Left>', getreg(':'))
unmap <Left>
" set cpo-=k
set cpo-=k
call assert_fails('call feedkeys(":map \\\\%(\<Tab>\<Home>\"\<CR>", "xt")', 'E53:')

View File

@ -68,15 +68,20 @@ endfunc
func Test_cpo_B()
let save_cpo = &cpo
new
imap <buffer> x<Bslash>k Test
set cpo-=B
iabbr <buffer> abc ab\<BS>d
exe "normal iabc "
call assert_equal('ab<BS>d ', getline(1))
call feedkeys(":imap <buffer> x\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"imap <buffer> x\\k', @:)
%d
set cpo+=B
iabbr <buffer> abc ab\<BS>d
exe "normal iabc "
call assert_equal('abd ', getline(1))
call feedkeys(":imap <buffer> x\<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal('"imap <buffer> x\k', @:)
close!
let &cpo = save_cpo
endfunc
@ -195,7 +200,8 @@ func Test_cpo_f()
set cpo+=f
read test_cpoptions.vim
call assert_equal('test_cpoptions.vim', @%)
close!
bwipe!
let &cpo = save_cpo
endfunc
@ -428,7 +434,7 @@ func Test_cpo_O()
let &cpo = save_cpo
endfunc
" Test for the 'p' flag in 'cpo' is in the test_lispwords.vim file.
" Test for the 'p' flag in 'cpo' is in the test_lispindent.vim file.
" Test for the 'P' flag in 'cpo' (appending to a file sets the current file
" name)
@ -444,7 +450,8 @@ func Test_cpo_P()
set cpo+=P
write >> XfileCpoP
call assert_equal('XfileCpoP', @%)
close!
bwipe!
call delete('XfileCpoP')
let &cpo = save_cpo
endfunc