0
0
mirror of https://github.com/vim/vim.git synced 2025-07-25 10:54:51 -04:00

patch 9.0.0896: test for home key fails when 'term' is "tmux"

Problem:    Test for home key fails when 'term' is "tmux".
Solution:   Only save termcap entries that exist.  Adjust code for xHome to
            what xterm uses. (closes #11566)
This commit is contained in:
Bram Moolenaar 2022-11-17 16:43:35 +00:00
parent 780154bf7a
commit 1d8765daba
2 changed files with 13 additions and 9 deletions

View File

@ -2534,15 +2534,17 @@ endfunc
func Test_home_key_works() func Test_home_key_works()
" The '@' character in K_HOME must only match "1" when followed by ";", " The '@' character in K_HOME must only match "1" when followed by ";",
" otherwise this code for Home is not recognized: "<Esc>[1~" " otherwise this code for Home is not recognized: "<Esc>[1~"
" Set termcap values like "xterm" uses them. " Set termcap values like "xterm" uses them. Except using F2 for xHome,
let save_kh = &t_kh " because that termcap entry can't be set here.
let save_K1 = &t_K1 let save_K1 = exists('&t_K1') ? &t_K1 : ''
let save_k2 = &t_k2 let save_kh = exists('&t_kh') ? &t_kh : ''
let save_k3 = &t_k3 let save_k2 = exists('&t_k2') ? &t_k2 : ''
let save_end = &t_@7 let save_k3 = exists('&t_k3') ? &t_k3 : ''
let save_end = exists('&t_@7') ? &t_@7 : ''
let &t_K1 = "\<Esc>[1;*~" " <kHome> let &t_K1 = "\<Esc>[1;*~" " <kHome>
let &t_kh = "\<Esc>[@;*H" " <Home> let &t_kh = "\<Esc>[@;*H" " <Home>
let &t_k2 = "\<Esc>O*H[1;*~" " use <F2> for <xHome> let &t_k2 = "\<Esc>O*H" " use <F2> for <xHome>
let &t_k3 = "\<Esc>[7;*~" " use <F3> for <zHome> let &t_k3 = "\<Esc>[7;*~" " use <F3> for <zHome>
let &t_@7 = "\<Esc>[@;*F" " <End> let &t_@7 = "\<Esc>[@;*F" " <End>
@ -2550,13 +2552,13 @@ func Test_home_key_works()
call feedkeys("i\<C-K>\<Esc>OH\n\<Esc>", 'tx') call feedkeys("i\<C-K>\<Esc>OH\n\<Esc>", 'tx')
call feedkeys("i\<C-K>\<Esc>[1~\n\<Esc>", 'tx') call feedkeys("i\<C-K>\<Esc>[1~\n\<Esc>", 'tx')
call assert_equal([ call assert_equal([
\ '<Home>', \ '<F2>',
\ '<kHome>', \ '<kHome>',
\ ''], getline(1, '$')) \ ''], getline(1, '$'))
bwipe! bwipe!
let &t_kh = save_kh
let &t_K1 = save_K1 let &t_K1 = save_K1
let &t_kh = save_kh
let &t_k2 = save_k2 let &t_k2 = save_k2
let &t_k3 = save_k3 let &t_k3 = save_k3
let &t_@7 = save_end let &t_@7 = save_end

View File

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