http://www.midnight-commander.org/ticket/287
old
|
new
|
|
694 | 694 | /* F0 is the same as F10 for out purposes */ |
695 | 695 | if (c == KEY_F (0)) |
696 | 696 | c = KEY_F (10); |
| 697 | if (c == KEY_F_IMMUTABLE (0)) |
| 698 | c = KEY_F_IMMUTABLE (10); |
697 | 699 | |
698 | 700 | /* |
699 | 701 | * We are not interested if Ctrl was pressed when entering control |
… |
… |
|
765 | 767 | mod &= ~KEY_M_SHIFT; |
766 | 768 | } |
767 | 769 | |
| 770 | /* |
| 771 | * Numerals may require modifilers with some keymaps or on obscure |
| 772 | * keyboards (e. g. F4 = Esc Shift+4). We have to ignore all |
| 773 | * modifiers while interpreting Esc + Numeral. |
| 774 | */ |
| 775 | if (c >= KEY_F_IMMUTABLE (1) && c <= KEY_F_IMMUTABLE (10)) { |
| 776 | c += KEY_F (0) - KEY_F_IMMUTABLE (0); |
| 777 | mod &= ~KEY_M_MASK; |
| 778 | } |
| 779 | |
768 | 780 | if (!alternate_plus_minus) |
769 | 781 | switch (c) { |
770 | 782 | case KEY_KP_ADD: |
… |
… |
|
917 | 929 | this = this->next; |
918 | 930 | else { |
919 | 931 | if (parent != NULL && parent->action == MCKEY_ESCAPE) { |
920 | | |
921 | 932 | /* Convert escape-digits to F-keys */ |
922 | 933 | if (isdigit(c)) |
923 | | c = KEY_F (c - '0'); |
| 934 | c = KEY_F_IMMUTABLE (c - '0'); |
924 | 935 | else if (c == ' ') |
925 | 936 | c = ESC_CHAR; |
926 | 937 | else |