summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-11-17 16:43:35 +0000
committerBram Moolenaar <Bram@vim.org>2022-11-17 16:43:35 +0000
commit1d8765daba6f4b3b7fcf51a77e9d1ba0090c826e (patch)
treede0eaffa8012061b3b2b840d9790e6f3e9f8e054
parent780154bf7a07813e474105837c2b5998009d9c71 (diff)
patch 9.0.0896: test for home key fails when 'term' is "tmux"v9.0.0896
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)
-rw-r--r--src/testdir/test_termcodes.vim20
-rw-r--r--src/version.c2
2 files changed, 13 insertions, 9 deletions
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index 6d1d39682f..a122e5bdff 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -2534,15 +2534,17 @@ endfunc
func Test_home_key_works()
" The '@' character in K_HOME must only match "1" when followed by ";",
" otherwise this code for Home is not recognized: "<Esc>[1~"
- " Set termcap values like "xterm" uses them.
- let save_kh = &t_kh
- let save_K1 = &t_K1
- let save_k2 = &t_k2
- let save_k3 = &t_k3
- let save_end = &t_@7
+ " Set termcap values like "xterm" uses them. Except using F2 for xHome,
+ " because that termcap entry can't be set here.
+ let save_K1 = exists('&t_K1') ? &t_K1 : ''
+ let save_kh = exists('&t_kh') ? &t_kh : ''
+ let save_k2 = exists('&t_k2') ? &t_k2 : ''
+ let save_k3 = exists('&t_k3') ? &t_k3 : ''
+ let save_end = exists('&t_@7') ? &t_@7 : ''
+
let &t_K1 = "\<Esc>[1;*~" " <kHome>
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_@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>[1~\n\<Esc>", 'tx')
call assert_equal([
- \ '<Home>',
+ \ '<F2>',
\ '<kHome>',
\ ''], getline(1, '$'))
bwipe!
- let &t_kh = save_kh
let &t_K1 = save_K1
+ let &t_kh = save_kh
let &t_k2 = save_k2
let &t_k3 = save_k3
let &t_@7 = save_end
diff --git a/src/version.c b/src/version.c
index fdccde9454..e3af095471 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 896,
+/**/
895,
/**/
894,