Mercurial > vim
changeset 31123:c74358443098 v9.0.0896
patch 9.0.0896: test for home key fails when 'term' is "tmux"
Commit: https://github.com/vim/vim/commit/1d8765daba6f4b3b7fcf51a77e9d1ba0090c826e
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Nov 17 16:43:35 2022 +0000
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 17 Nov 2022 17:45:03 +0100 |
parents | 7da475a0c383 |
children | 3dc3209008eb |
files | src/testdir/test_termcodes.vim src/version.c |
diffstat | 2 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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_K1 = save_K1 let &t_kh = save_kh - let &t_K1 = save_K1 let &t_k2 = save_k2 let &t_k3 = save_k3 let &t_@7 = save_end