@@ -2314,4 +2314,38 @@ func Test_Keycode_Translation()
23142314 endfor
23152315endfunc
23162316
2317+ " Test for terminal keycodes that doesn't have termcap entries
2318+ func Test_special_term_keycodes ()
2319+ new
2320+ " Test for <xHome>, <S-xHome> and <C-xHome>
2321+ " send <K_SPECIAL> <KS_EXTRA> keycode
2322+ call feedkeys (" i\<C-K> \x80\xfd\x3f \n " , ' xt' )
2323+ " send <K_SPECIAL> <KS_MODIFIER> bitmap <K_SPECIAL> <KS_EXTRA> keycode
2324+ call feedkeys (" i\<C-K> \x80\xfc\x2\x80\xfd\x3f \n " , ' xt' )
2325+ call feedkeys (" i\<C-K> \x80\xfc\x4\x80\xfd\x3f \n " , ' xt' )
2326+ " Test for <xEnd>, <S-xEnd> and <C-xEnd>
2327+ call feedkeys (" i\<C-K> \x80\xfd\x3d \n " , ' xt' )
2328+ call feedkeys (" i\<C-K> \x80\xfc\x2\x80\xfd\x3d \n " , ' xt' )
2329+ call feedkeys (" i\<C-K> \x80\xfc\x4\x80\xfd\x3d \n " , ' xt' )
2330+ " Test for <zHome>, <S-zHome> and <C-zHome>
2331+ call feedkeys (" i\<C-K> \x80\xfd\x40 \n " , ' xt' )
2332+ call feedkeys (" i\<C-K> \x80\xfc\x2\x80\xfd\x40 \n " , ' xt' )
2333+ call feedkeys (" i\<C-K> \x80\xfc\x4\x80\xfd\x40 \n " , ' xt' )
2334+ " Test for <zEnd>, <S-zEnd> and <C-zEnd>
2335+ call feedkeys (" i\<C-K> \x80\xfd\x3e \n " , ' xt' )
2336+ call feedkeys (" i\<C-K> \x80\xfc\x2\x80\xfd\x3e \n " , ' xt' )
2337+ call feedkeys (" i\<C-K> \x80\xfc\x4\x80\xfd\x3e \n " , ' xt' )
2338+ " Test for <xUp>, <xDown>, <xLeft> and <xRight>
2339+ call feedkeys (" i\<C-K> \x80\xfd\x41 \n " , ' xt' )
2340+ call feedkeys (" i\<C-K> \x80\xfd\x42 \n " , ' xt' )
2341+ call feedkeys (" i\<C-K> \x80\xfd\x43 \n " , ' xt' )
2342+ call feedkeys (" i\<C-K> \x80\xfd\x44 \n " , ' xt' )
2343+ call assert_equal ([' <Home>' , ' <S-Home>' , ' <C-Home>' ,
2344+ \ ' <End>' , ' <S-End>' , ' <C-End>' ,
2345+ \ ' <Home>' , ' <S-Home>' , ' <C-Home>' ,
2346+ \ ' <End>' , ' <S-End>' , ' <C-End>' ,
2347+ \ ' <Up>' , ' <Down>' , ' <Left>' , ' <Right>' , ' ' ], getline (1 , ' $' ))
2348+ bw !
2349+ endfunc
2350+
23172351" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments