patch 9.1.0051: MS-Windows: Key event test fail Commit: https://github.com/vim/vim/commit/f6ebaa7ae64edbe2e56d65c2a3f2494301d11acb Author: Christian Brabandt <c...@256bit.org> Date: Thu Jan 25 20:44:49 2024 +0100
patch 9.1.0051: MS-Windows: Key event test fail Problem: MS-Windows: Key event test fail (after 9.1.0050) Solution: Catch Interrupt and return Ctrl-C Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim index e7f7c6d83..e13f4c3dc 100644 --- a/src/testdir/test_gui.vim +++ b/src/testdir/test_gui.vim @@ -1708,7 +1708,11 @@ func Test_gui_lowlevel_keyevent() " Test for <Ctrl-A> to <Ctrl-Z> keys for kc in range(65, 90) call SendKeys([0x11, kc]) - let ch = getcharstr() + try + let ch = getcharstr() + catch /^Vim:Interrupt$/ + let ch = "\<c-c>" + endtry call assert_equal(nr2char(kc - 64), ch) endfor diff --git a/src/testdir/test_mswin_event.vim b/src/testdir/test_mswin_event.vim index b6609937c..10e7a812e 100644 --- a/src/testdir/test_mswin_event.vim +++ b/src/testdir/test_mswin_event.vim @@ -36,6 +36,17 @@ func SendKey(key) call SendKeyWithModifiers(a:key, 0) endfunc +" getcharstr(0) but catch Vim:Interrupt +func Getcharstr() + try + let ch = getcharstr(0) + catch /^Vim:Interrupt$/ + let ch = "\<c-c>" + endtry + return ch +endfunc + + " Send a string of individual key-press events, without modifiers. func SendKeyStr(keystring) for k in a:keystring @@ -347,7 +358,7 @@ func s:LoopTestKeyArray(arr) for [kcodes, kstr] in a:arr " Send as a sequence of key presses. call SendKeyGroup(kcodes) - let ch = getcharstr(0) + let ch = Getcharstr() " need to deal a bit differently with the non-printable ascii chars < 0x20 if kstr < 0x20 && index([s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL], kcodes[0]) >= 0 call assert_equal(nr2char(kstr), $"{ch}") @@ -374,7 +385,7 @@ func s:LoopTestKeyArray(arr) endif endfor call SendKeyWithModifiers(key, modifiers) - let ch = getcharstr(0) + let ch = Getcharstr() " need to deal a bit differently with the non-printable ascii chars < 0x20 if kstr < 0x20 && index([s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL], kcodes[0]) >= 0 call assert_equal(nr2char(kstr), $"{ch}") @@ -408,10 +419,10 @@ func Test_mswin_event_character_keys() " (0x30 - 0x39) : VK_0 - VK_9 are the same as ASCII '0' - '9' for kc in range(48, 57) call SendKey(kc) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc), ch) call SendKeyWithModifiers(kc, 0) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc), ch) endfor @@ -437,10 +448,10 @@ func Test_mswin_event_character_keys() " numbered 32 higher than their uppercase versions. for kc in range(65, 90) call SendKey(kc) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc + 32), ch) call SendKeyWithModifiers(kc, 0) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc + 32), ch) endfor @@ -449,10 +460,10 @@ func Test_mswin_event_character_keys() for modkey in [s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT] for kc in range(65, 90) call SendKeyGroup([modkey, kc]) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc), ch) call SendKeyWithModifiers(kc, s:MOD_MASK_SHIFT) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc), ch) endfor endfor @@ -462,10 +473,10 @@ func Test_mswin_event_character_keys() for modkey in [s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL] for kc in range(65, 90) call SendKeyGroup([modkey, kc]) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc - 64), ch) call SendKeyWithModifiers(kc, s:MOD_MASK_CTRL) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(kc - 64), ch) endfor endfor @@ -518,7 +529,7 @@ func Test_mswin_event_function_keys() while getchar(0) endwhile call SendKeyWithModifiers(111+n, vim_mod_mask) - let ch = getcharstr(0) + let ch = Getcharstr() let mod_mask = getcharmod() call assert_equal(keycode, $"{ch}", $"key = {kstr}") " workaround for the virtual termcap maps changing the character @@ -590,21 +601,21 @@ func Test_mswin_event_movement_keys() while getchar(0) endwhile execute 'call feedkeys("\<' .. kstr .. '>")' - let chstr_fk = getcharstr(0) + let chstr_fk = Getcharstr() call assert_equal(chstr_eval, chstr_fk, $"feedkeys = <{kstr}>") " flush out the typeahead buffer while getchar(0) endwhile call SendKey(kcode) - let chstr_alone = getcharstr(0) + let chstr_alone = Getcharstr() let chstr_alone_end = chstr_alone[len(chstr_alone)-2:len(chstr_alone)-1] " flush out the typeahead buffer while getchar(0) endwhile call SendKeyGroup(mod_keycodes + [kcode]) - let chstr_mswin = getcharstr(0) + let chstr_mswin = Getcharstr() let chstr_mswin_end = chstr_mswin[len(chstr_mswin)-2:len(chstr_mswin)-1] let mod_mask = getcharmod() @@ -653,7 +664,7 @@ func Test_QWERTY_Ctrl_minus() new call SendKeyGroup([s:VK.CONTROL, s:VK.OEM_MINUS]) - let ch = getcharstr(0) + let ch = Getcharstr() call assert_equal(nr2char(0x1f),ch) call SendKey(s:VK.KEY_I) diff --git a/src/version.c b/src/version.c index 3b56f2f61..a21d043ca 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 51, /**/ 50, /**/ -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1rT5tM-00Cv1j-5n%40256bit.org.