@@ -36,7 +36,7 @@ import System.Posix.IO ( stdInput
3636
3737-- |Representations of non-modifier keys.
3838data Key = KEsc | KFun Int | KBackTab | KPrtScr | KPause | KASCII Char | KBS | KIns
39− | KHome | KPageUp | KDel | KEnd | KPageDown | KNP5 | KUp | KMenu
39+ | KHome | KPageUp | KDel | KEnd | KPageDown | KBegin | KNP5 | KUp | KMenu
4040 | KLeft | KDown | KRight | KEnter
4141 deriving (Eq,Show,Ord)
4242
@@ -155,7 +155,16 @@ initTermInput escDelay terminal = do
155155
156156 ansi_classify_table :: [[([Char], (Key, [Modifier]))]]
157157 ansi_classify_table =
158− [ let k c s = ("\ESC["++c,(s,[])) in [ k "G" KNP5, k "P" KPause, k "A" KUp, k "B" KDown, k "C" KRight, k "D" KLeft ],
158+ [ let k c s = ("\ESC["++c,(s,[])) in [ k "G" KNP5
159+ , k "P" KPause
160+ , k "A" KUp
161+ , k "B" KDown
162+ , k "C" KRight
163+ , k "D" KLeft
164+ , k "H" KHome
165+ , k "F" KEnd
166+ , k "E" KBegin
167+ ],
159168
160169 -- Support for arrows
161170 [("\ESC[" ++ charCnt ++ show mc++c,(s,m))
@@ -165,7 +174,8 @@ initTermInput escDelay terminal = do
165174 (c,s) <- [("A", KUp), ("B", KDown), ("C", KRight), ("D", KLeft)] -- directions and their codes
166175 ],
167176
168− let k n s = ("\ESC["++show n++"~",(s,[])) in zipWith k [2::Int,3,5,6] [KIns,KDel,KPageUp,KPageDown],
177+ let k n s = ("\ESC["++show n++"~",(s,[])) in zipWith k [2::Int,3,5,6,1,4]
178+ [KIns,KDel,KPageUp,KPageDown,KHome,KEnd],
169179
170180 -- Support for simple characters.
171181 [ (x:[],(KASCII x,[])) | x <- map toEnum [0..255] ],