Added Keypad [/], [*], [-], [+] support

This commit is contained in:
Markus Gans 2018-07-29 13:25:16 +02:00
parent 0e86de5c81
commit d4a163065d
5 changed files with 1145 additions and 410 deletions

View File

@ -1,3 +1,7 @@
2017-07-29 Markus Gans <guru.mail@muenster.de>
* Added numeric Keypad [/], [*], [-], [+] support
* More tests in FKeyboard unit test
2017-07-27 Markus Gans <guru.mail@muenster.de>
* The array for keyboard input of UTF-8 characters was
not long enough for 4 bytes of UTF-8 codes.

View File

@ -284,7 +284,22 @@ enum keys
Fckey_right_square_bracket = 0x000001d, // control-]
Fckey_caret = 0x000001e, // control-^
Fckey_underscore = 0x000001f, // control-_
Fkey_space = 0x0000020,
Fkey_space = 0x0000020, // space
Fkey_exclamation_mark = 0x0000021, // !
Fkey_quotation_mark = 0x0000022, // "
Fkey_number_sign = 0x0000023, // #
Fkey_dollar_sign = 0x0000024, // $
Fkey_percent_sign = 0x0000025, // %
Fkey_ampersand = 0x0000026, // &
Fkey_apostrophe = 0x0000027, // '
Fkey_left_parentheses = 0x0000028, // (
Fkey_right_parentheses = 0x0000029, // )
Fkey_asterisk = 0x000002a, // *
Fkey_plus_sign = 0x000002b, // +
Fkey_comma = 0x000002c, // ,
Fkey_minus_sign = 0x000002d, // -
Fkey_full_stop = 0x000002e, // .
Fkey_slash = 0x000002f, // /
Fckey_space = 0x1000020, // control-space
Fkey_backspace = 0x1000100,
Fkey_catab = 0x1000101,

View File

@ -28,171 +28,176 @@ namespace fc
fkeymap Fkey[] =
{
{ fc::Fkey_backspace, 0, "kb" }, // backspace key
{ fc::Fkey_catab , 0, "ka" }, // clear-all-tabs key
{ fc::Fkey_clear , 0, "kC" }, // clear-screen or erase key
{ fc::Fkey_ctab , 0, "kt" }, // clear-tab key
{ fc::Fkey_dc , 0, "kD" }, // delete-character key
{ fc::Fkey_dl , 0, "kL" }, // delete-line key
{ fc::Fkey_down , 0, "kd" }, // down-arrow key
{ fc::Fkey_down , 0, "kdx"}, // down-arrow key
{ fc::Fkey_eic , 0, "kM" }, // sent by rmir or smir in insert mode
{ fc::Fkey_eol , 0, "kE" }, // clear-to-end-of-line key
{ fc::Fkey_eos , 0, "kS" }, // clear-to-end-of-screen key
{ fc::Fkey_f0 , 0, "k0" }, // F0 function key
{ fc::Fkey_f1 , 0, "k1" }, // F1 function key
{ fc::Fkey_f1 , 0, "k1x"}, // F1 function key
{ fc::Fkey_f1 , 0, "k1X"}, // F1 function key
{ fc::Fkey_f2 , 0, "k2" }, // F2 function key
{ fc::Fkey_f2 , 0, "k2x"}, // F2 function key
{ fc::Fkey_f2 , 0, "k2X"}, // F2 function key
{ fc::Fkey_f3 , 0, "k3" }, // F3 function key
{ fc::Fkey_f3 , 0, "k3x"}, // F3 function key
{ fc::Fkey_f3 , 0, "k3X"}, // F3 function key
{ fc::Fkey_f4 , 0, "k4" }, // F4 function key
{ fc::Fkey_f4 , 0, "k4x"}, // F4 function key
{ fc::Fkey_f4 , 0, "k4X"}, // F4 function key
{ fc::Fkey_f5 , 0, "k5" }, // F5 function key
{ fc::Fkey_f6 , 0, "k6" }, // F6 function key
{ fc::Fkey_f7 , 0, "k7" }, // F7 function key
{ fc::Fkey_f8 , 0, "k8" }, // F8 fucntion key
{ fc::Fkey_f9 , 0, "k9" }, // F9 function key
{ fc::Fkey_f10 , 0, "k;" }, // F10 function key
{ fc::Fkey_home , 0, "kh" }, // home key
{ fc::Fkey_home , 0, "khx"}, // home key
{ fc::Fkey_ic , 0, "kI" }, // insert-character key
{ fc::Fkey_il , 0, "kA" }, // insert-line key
{ fc::Fkey_left , 0, "kl" }, // left-arrow key
{ fc::Fkey_left , 0, "klx"}, // left-arrow key
{ fc::Fkey_ll , 0, "kH" }, // last-line key
{ fc::Fkey_npage , 0, "kN" }, // next-page key
{ fc::Fkey_ppage , 0, "kP" }, // prev-page key
{ fc::Fkey_right , 0, "kr" }, // right-arrow key
{ fc::Fkey_right , 0, "krx"}, // right-arrow key
{ fc::Fkey_sf , 0, "kF" }, // scroll-forward key
{ fc::Fkey_sr , 0, "kR" }, // scroll-backward key
{ fc::Fkey_stab , 0, "kT" }, // set-tab key
{ fc::Fkey_up , 0, "ku" }, // up-arrow key
{ fc::Fkey_up , 0, "kux"}, // up-arrow key
{ fc::Fkey_a1 , 0, "K1" }, // upper left of keypad
{ fc::Fkey_a3 , 0, "K3" }, // upper right of keypad
{ fc::Fkey_b2 , 0, "K2" }, // center of keypad
{ fc::Fkey_c1 , 0, "K4" }, // lower left of keypad
{ fc::Fkey_c3 , 0, "K5" }, // lower right of keypad
{ fc::Fkey_btab , 0, "kB" }, // back-tab key
{ fc::Fkey_beg , 0, "@1" }, // begin key
{ fc::Fkey_cancel , 0, "@2" }, // cancel key
{ fc::Fkey_close , 0, "@3" }, // close key
{ fc::Fkey_command , 0, "@4" }, // command key
{ fc::Fkey_copy , 0, "@5" }, // copy key
{ fc::Fkey_create , 0, "@6" }, // create key
{ fc::Fkey_end , 0, "@7" }, // end key
{ fc::Fkey_end , 0, "@7x"}, // end key
{ fc::Fkey_end , 0, "@7X"}, // end key
{ fc::Fkey_enter , 0, "@8" }, // enter/send key
{ fc::Fkey_exit , 0, "@9" }, // exit key
{ fc::Fkey_find , 0, "@0" }, // find key
{ fc::Fkey_help , 0, "%1" }, // help key
{ fc::Fkey_mark , 0, "%2" }, // mark key
{ fc::Fkey_message , 0, "%3" }, // message key
{ fc::Fkey_move , 0, "%4" }, // move key
{ fc::Fkey_next , 0, "%5" }, // next key
{ fc::Fkey_open , 0, "%6" }, // open key
{ fc::Fkey_options , 0, "%7" }, // options key
{ fc::Fkey_previous , 0, "%8" }, // previous key
{ fc::Fkey_print , 0, "%9" }, // print key
{ fc::Fkey_redo , 0, "%0" }, // redo key
{ fc::Fkey_reference, 0, "&1" }, // reference key
{ fc::Fkey_refresh , 0, "&2" }, // refresh key
{ fc::Fkey_replace , 0, "&3" }, // replace key
{ fc::Fkey_restart , 0, "&4" }, // restart key
{ fc::Fkey_resume , 0, "&5" }, // resume key
{ fc::Fkey_save , 0, "&6" }, // save key
{ fc::Fkey_suspend , 0, "&7" }, // suspend key
{ fc::Fkey_undo , 0, "&8" }, // undo key
{ fc::Fkey_sbeg , 0, "&9" }, // shifted key
{ fc::Fkey_scancel , 0, "&0" }, // shifted key
{ fc::Fkey_scommand , 0, "*1" }, // shifted key
{ fc::Fkey_scopy , 0, "*2" }, // shifted key
{ fc::Fkey_screate , 0, "*3" }, // shifted key
{ fc::Fkey_sdc , 0, "*4" }, // shifted key
{ fc::Fkey_sdl , 0, "*5" }, // shifted key
{ fc::Fkey_select , 0, "*6" }, // select key
{ fc::Fkey_send , 0, "*7" }, // shifted key
{ fc::Fkey_seol , 0, "*8" }, // shifted key
{ fc::Fkey_sexit , 0, "*9" }, // shifted key
{ fc::Fkey_sfind , 0, "*0" }, // shifted key
{ fc::Fkey_shelp , 0, "#1" }, // shifted key
{ fc::Fkey_shome , 0, "#2" }, // shifted key
{ fc::Fkey_sic , 0, "#3" }, // shifted key
{ fc::Fkey_sleft , 0, "#4" }, // shifted key
{ fc::Fkey_smessage , 0, "%a" }, // shifted key
{ fc::Fkey_smove , 0, "%b" }, // shifted key
{ fc::Fkey_snext , 0, "%c" }, // shifted key
{ fc::Fkey_soptions , 0, "%d" }, // shifted key
{ fc::Fkey_sprevious, 0, "%e" }, // shifted key
{ fc::Fkey_sprint , 0, "%f" }, // shifted key
{ fc::Fkey_sredo , 0, "%g" }, // shifted key
{ fc::Fkey_sreplace , 0, "%h" }, // shifted key
{ fc::Fkey_sright , 0, "%i" }, // shifted key
{ fc::Fkey_srsume , 0, "%j" }, // shifted key
{ fc::Fkey_ssave , 0, "!1" }, // shifted key
{ fc::Fkey_ssuspend , 0, "!2" }, // shifted key
{ fc::Fkey_sundo , 0, "!3" }, // shifted key
{ fc::Fkey_f11 , 0, "F1" }, // F11 function key
{ fc::Fkey_f12 , 0, "F2" }, // F12 function key
{ fc::Fkey_f13 , 0, "F3" }, // F13 function key
{ fc::Fkey_f14 , 0, "F4" }, // F14 function key
{ fc::Fkey_f15 , 0, "F5" }, // F15 function key
{ fc::Fkey_f16 , 0, "F6" }, // F16 function key
{ fc::Fkey_f17 , 0, "F7" }, // F17 function key
{ fc::Fkey_f18 , 0, "F8" }, // F18 function key
{ fc::Fkey_f19 , 0, "F9" }, // F19 function key
{ fc::Fkey_f20 , 0, "FA" }, // F20 function key
{ fc::Fkey_f21 , 0, "FB" }, // F21 function key
{ fc::Fkey_f22 , 0, "FC" }, // F22 function key
{ fc::Fkey_f23 , 0, "FD" }, // F23 function key
{ fc::Fkey_f24 , 0, "FE" }, // F24 function key
{ fc::Fkey_f25 , 0, "FF" }, // F25 function key
{ fc::Fkey_f26 , 0, "FG" }, // F26 function key
{ fc::Fkey_f27 , 0, "FH" }, // F27 function key
{ fc::Fkey_f28 , 0, "FI" }, // F28 function key
{ fc::Fkey_f29 , 0, "FJ" }, // F29 function key
{ fc::Fkey_f30 , 0, "FK" }, // F30 function key
{ fc::Fkey_f31 , 0, "FL" }, // F31 function key
{ fc::Fkey_f32 , 0, "FM" }, // F32 function key
{ fc::Fkey_f33 , 0, "FN" }, // F33 function key
{ fc::Fkey_f34 , 0, "FO" }, // F34 function key
{ fc::Fkey_f35 , 0, "FP" }, // F35 function key
{ fc::Fkey_f36 , 0, "FQ" }, // F36 function key
{ fc::Fkey_f37 , 0, "FR" }, // F37 function key
{ fc::Fkey_f38 , 0, "FS" }, // F38 function key
{ fc::Fkey_f39 , 0, "FT" }, // F39 function key
{ fc::Fkey_f40 , 0, "FU" }, // F40 function key
{ fc::Fkey_f41 , 0, "FV" }, // F41 function key
{ fc::Fkey_f42 , 0, "FW" }, // F42 function key
{ fc::Fkey_f43 , 0, "FX" }, // F43 function key
{ fc::Fkey_f44 , 0, "FY" }, // F44 function key
{ fc::Fkey_f45 , 0, "FZ" }, // F45 function key
{ fc::Fkey_f46 , 0, "Fa" }, // F46 function key
{ fc::Fkey_f47 , 0, "Fb" }, // F47 function key
{ fc::Fkey_f48 , 0, "Fc" }, // F48 function key
{ fc::Fkey_f49 , 0, "Fd" }, // F49 function key
{ fc::Fkey_f50 , 0, "Fe" }, // F50 function key
{ fc::Fkey_f51 , 0, "Ff" }, // F51 function key
{ fc::Fkey_f52 , 0, "Fg" }, // F52 function key
{ fc::Fkey_f53 , 0, "Fh" }, // F53 function key
{ fc::Fkey_f54 , 0, "Fi" }, // F54 function key
{ fc::Fkey_f55 , 0, "Fj" }, // F55 function key
{ fc::Fkey_f56 , 0, "Fk" }, // F56 function key
{ fc::Fkey_f57 , 0, "Fl" }, // F57 function key
{ fc::Fkey_f58 , 0, "Fm" }, // F58 function key
{ fc::Fkey_f59 , 0, "Fn" }, // F59 function key
{ fc::Fkey_f60 , 0, "Fo" }, // F60 function key
{ fc::Fkey_f61 , 0, "Fp" }, // F61 function key
{ fc::Fkey_f62 , 0, "Fq" }, // F62 function key
{ fc::Fkey_f63 , 0, "Fr" }, // F63 function key
{ 0 , 0, "\0" }
{ fc::Fkey_backspace , 0, "kb" }, // backspace key
{ fc::Fkey_catab , 0, "ka" }, // clear-all-tabs key
{ fc::Fkey_clear , 0, "kC" }, // clear-screen or erase key
{ fc::Fkey_ctab , 0, "kt" }, // clear-tab key
{ fc::Fkey_dc , 0, "kD" }, // delete-character key
{ fc::Fkey_dl , 0, "kL" }, // delete-line key
{ fc::Fkey_down , 0, "kd" }, // down-arrow key
{ fc::Fkey_down , 0, "kdx"}, // down-arrow key
{ fc::Fkey_eic , 0, "kM" }, // sent by rmir or smir in insert mode
{ fc::Fkey_eol , 0, "kE" }, // clear-to-end-of-line key
{ fc::Fkey_eos , 0, "kS" }, // clear-to-end-of-screen key
{ fc::Fkey_f0 , 0, "k0" }, // F0 function key
{ fc::Fkey_f1 , 0, "k1" }, // F1 function key
{ fc::Fkey_f1 , 0, "k1x"}, // F1 function key
{ fc::Fkey_f1 , 0, "k1X"}, // F1 function key
{ fc::Fkey_f2 , 0, "k2" }, // F2 function key
{ fc::Fkey_f2 , 0, "k2x"}, // F2 function key
{ fc::Fkey_f2 , 0, "k2X"}, // F2 function key
{ fc::Fkey_f3 , 0, "k3" }, // F3 function key
{ fc::Fkey_f3 , 0, "k3x"}, // F3 function key
{ fc::Fkey_f3 , 0, "k3X"}, // F3 function key
{ fc::Fkey_f4 , 0, "k4" }, // F4 function key
{ fc::Fkey_f4 , 0, "k4x"}, // F4 function key
{ fc::Fkey_f4 , 0, "k4X"}, // F4 function key
{ fc::Fkey_f5 , 0, "k5" }, // F5 function key
{ fc::Fkey_f6 , 0, "k6" }, // F6 function key
{ fc::Fkey_f7 , 0, "k7" }, // F7 function key
{ fc::Fkey_f8 , 0, "k8" }, // F8 fucntion key
{ fc::Fkey_f9 , 0, "k9" }, // F9 function key
{ fc::Fkey_f10 , 0, "k;" }, // F10 function key
{ fc::Fkey_home , 0, "kh" }, // home key
{ fc::Fkey_home , 0, "khx"}, // home key
{ fc::Fkey_ic , 0, "kI" }, // insert-character key
{ fc::Fkey_il , 0, "kA" }, // insert-line key
{ fc::Fkey_left , 0, "kl" }, // left-arrow key
{ fc::Fkey_left , 0, "klx"}, // left-arrow key
{ fc::Fkey_ll , 0, "kH" }, // last-line key
{ fc::Fkey_npage , 0, "kN" }, // next-page key
{ fc::Fkey_ppage , 0, "kP" }, // prev-page key
{ fc::Fkey_right , 0, "kr" }, // right-arrow key
{ fc::Fkey_right , 0, "krx"}, // right-arrow key
{ fc::Fkey_sf , 0, "kF" }, // scroll-forward key (shift-up)
{ fc::Fkey_sr , 0, "kR" }, // scroll-backward key (shift-down)
{ fc::Fkey_stab , 0, "kT" }, // set-tab key
{ fc::Fkey_up , 0, "ku" }, // up-arrow key
{ fc::Fkey_up , 0, "kux"}, // up-arrow key
{ fc::Fkey_a1 , 0, "K1" }, // upper left of keypad
{ fc::Fkey_a3 , 0, "K3" }, // upper right of keypad
{ fc::Fkey_b2 , 0, "K2" }, // center of keypad
{ fc::Fkey_c1 , 0, "K4" }, // lower left of keypad
{ fc::Fkey_c3 , 0, "K5" }, // lower right of keypad
{ fc::Fkey_btab , 0, "kB" }, // back-tab key
{ fc::Fkey_beg , 0, "@1" }, // begin key
{ fc::Fkey_cancel , 0, "@2" }, // cancel key
{ fc::Fkey_close , 0, "@3" }, // close key
{ fc::Fkey_command , 0, "@4" }, // command key
{ fc::Fkey_copy , 0, "@5" }, // copy key
{ fc::Fkey_create , 0, "@6" }, // create key
{ fc::Fkey_end , 0, "@7" }, // end key
{ fc::Fkey_end , 0, "@7x"}, // end key
{ fc::Fkey_end , 0, "@7X"}, // end key
{ fc::Fkey_enter , 0, "@8" }, // enter/send key
{ fc::Fkey_enter , 0, "@8x"}, // enter/send key
{ fc::Fkey_exit , 0, "@9" }, // exit key
{ fc::Fkey_find , 0, "@0" }, // find key
{ fc::Fkey_slash , 0, "KP1"}, // keypad slash
{ fc::Fkey_asterisk , 0, "KP2"}, // keypad asterisk
{ fc::Fkey_minus_sign, 0, "KP3"}, // keypad minus sign
{ fc::Fkey_plus_sign , 0, "KP4"}, // keypad plus sign
{ fc::Fkey_help , 0, "%1" }, // help key
{ fc::Fkey_mark , 0, "%2" }, // mark key
{ fc::Fkey_message , 0, "%3" }, // message key
{ fc::Fkey_move , 0, "%4" }, // move key
{ fc::Fkey_next , 0, "%5" }, // next key
{ fc::Fkey_open , 0, "%6" }, // open key
{ fc::Fkey_options , 0, "%7" }, // options key
{ fc::Fkey_previous , 0, "%8" }, // previous key
{ fc::Fkey_print , 0, "%9" }, // print key
{ fc::Fkey_redo , 0, "%0" }, // redo key
{ fc::Fkey_reference , 0, "&1" }, // reference key
{ fc::Fkey_refresh , 0, "&2" }, // refresh key
{ fc::Fkey_replace , 0, "&3" }, // replace key
{ fc::Fkey_restart , 0, "&4" }, // restart key
{ fc::Fkey_resume , 0, "&5" }, // resume key
{ fc::Fkey_save , 0, "&6" }, // save key
{ fc::Fkey_suspend , 0, "&7" }, // suspend key
{ fc::Fkey_undo , 0, "&8" }, // undo key
{ fc::Fkey_sbeg , 0, "&9" }, // shifted begin key
{ fc::Fkey_scancel , 0, "&0" }, // shifted cancel key
{ fc::Fkey_scommand , 0, "*1" }, // shifted command key
{ fc::Fkey_scopy , 0, "*2" }, // shifted copy key
{ fc::Fkey_screate , 0, "*3" }, // shifted create key
{ fc::Fkey_sdc , 0, "*4" }, // shifted delete-character key
{ fc::Fkey_sdl , 0, "*5" }, // shifted delete-line key
{ fc::Fkey_select , 0, "*6" }, // select key
{ fc::Fkey_send , 0, "*7" }, // shifted end key
{ fc::Fkey_seol , 0, "*8" }, // shifted clear-to-end-of-line key
{ fc::Fkey_sexit , 0, "*9" }, // shifted exit key
{ fc::Fkey_sfind , 0, "*0" }, // shifted find key
{ fc::Fkey_shelp , 0, "#1" }, // shifted help key
{ fc::Fkey_shome , 0, "#2" }, // shifted home key
{ fc::Fkey_sic , 0, "#3" }, // shifted insert-character key
{ fc::Fkey_sleft , 0, "#4" }, // shifted left-arrow key
{ fc::Fkey_smessage , 0, "%a" }, // shifted message key
{ fc::Fkey_smove , 0, "%b" }, // shifted move key
{ fc::Fkey_snext , 0, "%c" }, // shifted next key
{ fc::Fkey_soptions , 0, "%d" }, // shifted options key
{ fc::Fkey_sprevious , 0, "%e" }, // shifted previous key
{ fc::Fkey_sprint , 0, "%f" }, // shifted print key
{ fc::Fkey_sredo , 0, "%g" }, // shifted redo key
{ fc::Fkey_sreplace , 0, "%h" }, // shifted replace key
{ fc::Fkey_sright , 0, "%i" }, // shifted right-arrow key
{ fc::Fkey_srsume , 0, "%j" }, // shifted resume key
{ fc::Fkey_ssave , 0, "!1" }, // shifted save key
{ fc::Fkey_ssuspend , 0, "!2" }, // shifted suspend key
{ fc::Fkey_sundo , 0, "!3" }, // shifted undo key
{ fc::Fkey_f11 , 0, "F1" }, // F11 function key
{ fc::Fkey_f12 , 0, "F2" }, // F12 function key
{ fc::Fkey_f13 , 0, "F3" }, // F13 function key
{ fc::Fkey_f14 , 0, "F4" }, // F14 function key
{ fc::Fkey_f15 , 0, "F5" }, // F15 function key
{ fc::Fkey_f16 , 0, "F6" }, // F16 function key
{ fc::Fkey_f17 , 0, "F7" }, // F17 function key
{ fc::Fkey_f18 , 0, "F8" }, // F18 function key
{ fc::Fkey_f19 , 0, "F9" }, // F19 function key
{ fc::Fkey_f20 , 0, "FA" }, // F20 function key
{ fc::Fkey_f21 , 0, "FB" }, // F21 function key
{ fc::Fkey_f22 , 0, "FC" }, // F22 function key
{ fc::Fkey_f23 , 0, "FD" }, // F23 function key
{ fc::Fkey_f24 , 0, "FE" }, // F24 function key
{ fc::Fkey_f25 , 0, "FF" }, // F25 function key
{ fc::Fkey_f26 , 0, "FG" }, // F26 function key
{ fc::Fkey_f27 , 0, "FH" }, // F27 function key
{ fc::Fkey_f28 , 0, "FI" }, // F28 function key
{ fc::Fkey_f29 , 0, "FJ" }, // F29 function key
{ fc::Fkey_f30 , 0, "FK" }, // F30 function key
{ fc::Fkey_f31 , 0, "FL" }, // F31 function key
{ fc::Fkey_f32 , 0, "FM" }, // F32 function key
{ fc::Fkey_f33 , 0, "FN" }, // F33 function key
{ fc::Fkey_f34 , 0, "FO" }, // F34 function key
{ fc::Fkey_f35 , 0, "FP" }, // F35 function key
{ fc::Fkey_f36 , 0, "FQ" }, // F36 function key
{ fc::Fkey_f37 , 0, "FR" }, // F37 function key
{ fc::Fkey_f38 , 0, "FS" }, // F38 function key
{ fc::Fkey_f39 , 0, "FT" }, // F39 function key
{ fc::Fkey_f40 , 0, "FU" }, // F40 function key
{ fc::Fkey_f41 , 0, "FV" }, // F41 function key
{ fc::Fkey_f42 , 0, "FW" }, // F42 function key
{ fc::Fkey_f43 , 0, "FX" }, // F43 function key
{ fc::Fkey_f44 , 0, "FY" }, // F44 function key
{ fc::Fkey_f45 , 0, "FZ" }, // F45 function key
{ fc::Fkey_f46 , 0, "Fa" }, // F46 function key
{ fc::Fkey_f47 , 0, "Fb" }, // F47 function key
{ fc::Fkey_f48 , 0, "Fc" }, // F48 function key
{ fc::Fkey_f49 , 0, "Fd" }, // F49 function key
{ fc::Fkey_f50 , 0, "Fe" }, // F50 function key
{ fc::Fkey_f51 , 0, "Ff" }, // F51 function key
{ fc::Fkey_f52 , 0, "Fg" }, // F52 function key
{ fc::Fkey_f53 , 0, "Fh" }, // F53 function key
{ fc::Fkey_f54 , 0, "Fi" }, // F54 function key
{ fc::Fkey_f55 , 0, "Fj" }, // F55 function key
{ fc::Fkey_f56 , 0, "Fk" }, // F56 function key
{ fc::Fkey_f57 , 0, "Fl" }, // F57 function key
{ fc::Fkey_f58 , 0, "Fm" }, // F58 function key
{ fc::Fkey_f59 , 0, "Fn" }, // F59 function key
{ fc::Fkey_f60 , 0, "Fo" }, // F60 function key
{ fc::Fkey_f61 , 0, "Fp" }, // F61 function key
{ fc::Fkey_f62 , 0, "Fq" }, // F62 function key
{ fc::Fkey_f63 , 0, "Fr" }, // F63 function key
{ 0 , 0, "\0" }
};
fmetakeymap Fmetakey[] =

View File

@ -1327,6 +1327,22 @@ void FTerm::init_termcap_keys (char*& buffer)
// Fallback for TERM=ansi
if ( std::strncmp(fc::Fkey[i].tname, "@7X", 3) == 0 )
fc::Fkey[i].string = C_STR(CSI "K"); // End key
// Keypad keys
if ( std::strncmp(fc::Fkey[i].tname, "@8x", 3) == 0 )
fc::Fkey[i].string = C_STR(ESC "OM"); // Enter key
if ( std::strncmp(fc::Fkey[i].tname, "KP1", 3) == 0 )
fc::Fkey[i].string = C_STR(ESC "Oo"); // Keypad slash
if ( std::strncmp(fc::Fkey[i].tname, "KP2", 3) == 0 )
fc::Fkey[i].string = C_STR(ESC "Oj"); // Keypad asterisk
if ( std::strncmp(fc::Fkey[i].tname, "KP3", 3) == 0 )
fc::Fkey[i].string = C_STR(ESC "Om"); // Keypad minus sign
if ( std::strncmp(fc::Fkey[i].tname, "KP4", 3) == 0 )
fc::Fkey[i].string = C_STR(ESC "Ok"); // Keypad plus sign
}
// Some terminals (e.g. PuTTY) send the wrong code for the arrow keys

File diff suppressed because it is too large Load Diff