@@ -36,7 +36,7 @@ import System.Posix.IO ( stdInput
37-- |Representations of non-modifier keys.
37-- |Representations of non-modifier keys.
38data Key = KEsc | KFun Int | KBackTab | KPrtScr | KPause | KASCII Char | KBS | KIns
38data 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
40 | KLeft | KDown | KRight | KEnter
40 | KLeft | KDown | KRight | KEnter
41 deriving (Eq,Show,Ord)
41 deriving (Eq,Show,Ord)
@@ -155,7 +155,16 @@ initTermInput escDelay terminal = do
156 ansi_classify_table :: [[([Char], (Key, [Modifier]))]]
156 ansi_classify_table :: [[([Char], (Key, [Modifier]))]]
157 ansi_classify_table =
157 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
160 -- Support for arrows
169 -- Support for arrows
161 [("\ESC[" ++ charCnt ++ show mc++c,(s,m))
170 [("\ESC[" ++ charCnt ++ show mc++c,(s,m))
@@ -165,7 +174,8 @@ initTermInput escDelay terminal = do
165 (c,s) <- [("A", KUp), ("B", KDown), ("C", KRight), ("D", KLeft)] -- directions and their codes
174 (c,s) <- [("A", KUp), ("B", KDown), ("C", KRight), ("D", KLeft)] -- directions and their codes
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],
170 -- Support for simple characters.
180 -- Support for simple characters.
171 [ (x:[],(KASCII x,[])) | x <- map toEnum [0..255] ],
181 [ (x:[],(KASCII x,[])) | x <- map toEnum [0..255] ],