Skip to content

Commit 2bc152a

Browse files
committed
patch 8.1.0451: Win32 console: keypad keys don't work
Problem: Win32 console: keypad keys don't work. Solution: Use numbers instead of characters to avoid the value becoming negative. (Mike Williams)
1 parent 0e9deef commit 2bc152a

2 files changed

Lines changed: 33 additions & 33 deletions

File tree

src/os_win32.c

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,6 @@ static const struct
847847
int chAlt;
848848
} VirtKeyMap[] =
849849
{
850-
851850
/* Key ANSI alone shift ctrl alt */
852851
{ VK_ESCAPE,FALSE, ESC, ESC, ESC, ESC, },
853852

@@ -861,50 +860,49 @@ static const struct
861860
{ VK_F8, TRUE, 'B', '[', 'e', 'o', },
862861
{ VK_F9, TRUE, 'C', '\\', 'f', 'p', },
863862
{ VK_F10, TRUE, 'D', ']', 'g', 'q', },
864-
{ VK_F11, TRUE, '\205', '\207', '\211', '\213', },
865-
{ VK_F12, TRUE, '\206', '\210', '\212', '\214', },
866-
867-
{ VK_HOME, TRUE, 'G', '\302', 'w', '\303', },
868-
{ VK_UP, TRUE, 'H', '\304', '\305', '\306', },
869-
{ VK_PRIOR, TRUE, 'I', '\307', '\204', '\310', }, /*PgUp*/
870-
{ VK_LEFT, TRUE, 'K', '\311', 's', '\312', },
871-
{ VK_RIGHT, TRUE, 'M', '\313', 't', '\314', },
872-
{ VK_END, TRUE, 'O', '\315', 'u', '\316', },
873-
{ VK_DOWN, TRUE, 'P', '\317', '\320', '\321', },
874-
{ VK_NEXT, TRUE, 'Q', '\322', 'v', '\323', }, /*PgDn*/
875-
{ VK_INSERT,TRUE, 'R', '\324', '\325', '\326', },
876-
{ VK_DELETE,TRUE, 'S', '\327', '\330', '\331', },
863+
{ VK_F11, TRUE, 0x85, 0x87, 0x89, 0x8B, },
864+
{ VK_F12, TRUE, 0x86, 0x88, 0x8a, 0x8c, },
865+
866+
{ VK_HOME, TRUE, 'G', 0xc2, 'w', 0xc3, },
867+
{ VK_UP, TRUE, 'H', 0xc4, 0xc5, 0xc6, },
868+
{ VK_PRIOR, TRUE, 'I', 0xc7, 0x84, 0xc8, }, /*PgUp*/
869+
{ VK_LEFT, TRUE, 'K', 0xc9, 's', 0xca, },
870+
{ VK_RIGHT, TRUE, 'M', 0xcb, 't', 0xcc, },
871+
{ VK_END, TRUE, 'O', 0xcd, 'u', 0xce, },
872+
{ VK_DOWN, TRUE, 'P', 0xcf, 0xd0, 0xd1, },
873+
{ VK_NEXT, TRUE, 'Q', 0xd2, 'v', 0xd3, }, /*PgDn*/
874+
{ VK_INSERT,TRUE, 'R', 0xd4, 0xd5, 0xd6, },
875+
{ VK_DELETE,TRUE, 'S', 0xd7, 0xd8, 0xd9, },
877876

878877
{ VK_SNAPSHOT,TRUE, 0, 0, 0, 'r', }, /*PrtScrn*/
879878

880879
#if 0
881880
/* Most people don't have F13-F20, but what the hell... */
882-
{ VK_F13, TRUE, '\332', '\333', '\334', '\335', },
883-
{ VK_F14, TRUE, '\336', '\337', '\340', '\341', },
884-
{ VK_F15, TRUE, '\342', '\343', '\344', '\345', },
885-
{ VK_F16, TRUE, '\346', '\347', '\350', '\351', },
886-
{ VK_F17, TRUE, '\352', '\353', '\354', '\355', },
887-
{ VK_F18, TRUE, '\356', '\357', '\360', '\361', },
888-
{ VK_F19, TRUE, '\362', '\363', '\364', '\365', },
889-
{ VK_F20, TRUE, '\366', '\367', '\370', '\371', },
881+
{ VK_F13, TRUE, 0xda, 0xdb, 0xdc, 0xdd, },
882+
{ VK_F14, TRUE, 0xde, 0xdf, 0xe0, 0xe1, },
883+
{ VK_F15, TRUE, 0xe2, 0xe3, 0xe4, 0xe5, },
884+
{ VK_F16, TRUE, 0xe6, 0xe7, 0xe8, 0xe9, },
885+
{ VK_F17, TRUE, 0xea, 0xeb, 0xec, 0xed, },
886+
{ VK_F18, TRUE, 0xee, 0xef, 0xf0, 0xf1, },
887+
{ VK_F19, TRUE, 0xf2, 0xf3, 0xf4, 0xf5, },
888+
{ VK_F20, TRUE, 0xf6, 0xf7, 0xf8, 0xf9, },
890889
#endif
891890
{ VK_ADD, TRUE, 'N', 'N', 'N', 'N', }, /* keyp '+' */
892891
{ VK_SUBTRACT, TRUE,'J', 'J', 'J', 'J', }, /* keyp '-' */
893892
/* { VK_DIVIDE, TRUE,'N', 'N', 'N', 'N', }, keyp '/' */
894893
{ VK_MULTIPLY, TRUE,'7', '7', '7', '7', }, /* keyp '*' */
895894

896-
{ VK_NUMPAD0,TRUE, '\332', '\333', '\334', '\335', },
897-
{ VK_NUMPAD1,TRUE, '\336', '\337', '\340', '\341', },
898-
{ VK_NUMPAD2,TRUE, '\342', '\343', '\344', '\345', },
899-
{ VK_NUMPAD3,TRUE, '\346', '\347', '\350', '\351', },
900-
{ VK_NUMPAD4,TRUE, '\352', '\353', '\354', '\355', },
901-
{ VK_NUMPAD5,TRUE, '\356', '\357', '\360', '\361', },
902-
{ VK_NUMPAD6,TRUE, '\362', '\363', '\364', '\365', },
903-
{ VK_NUMPAD7,TRUE, '\366', '\367', '\370', '\371', },
904-
{ VK_NUMPAD8,TRUE, '\372', '\373', '\374', '\375', },
895+
{ VK_NUMPAD0,TRUE, 0xda, 0xdb, 0xdc, 0xdd, },
896+
{ VK_NUMPAD1,TRUE, 0xde, 0xdf, 0xe0, 0xe1, },
897+
{ VK_NUMPAD2,TRUE, 0xe2, 0xe3, 0xe4, 0xe5, },
898+
{ VK_NUMPAD3,TRUE, 0xe6, 0xe7, 0xe8, 0xe9, },
899+
{ VK_NUMPAD4,TRUE, 0xea, 0xeb, 0xec, 0xed, },
900+
{ VK_NUMPAD5,TRUE, 0xee, 0xef, 0xf0, 0xf1, },
901+
{ VK_NUMPAD6,TRUE, 0xf2, 0xf3, 0xf4, 0xf5, },
902+
{ VK_NUMPAD7,TRUE, 0xf6, 0xf7, 0xf8, 0xf9, },
903+
{ VK_NUMPAD8,TRUE, 0xfa, 0xfb, 0xfc, 0xfd, },
905904
/* Sorry, out of number space! <negri>*/
906-
{ VK_NUMPAD9,TRUE, '\376', '\377', '\377', '\367', },
907-
905+
{ VK_NUMPAD9,TRUE, 0xfe, 0xff, 0xff, 0xf7, },
908906
};
909907

910908

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,8 @@ static char *(features[]) =
792792

793793
static int included_patches[] =
794794
{ /* Add new patch number below this line */
795+
/**/
796+
451,
795797
/**/
796798
450,
797799
/**/

0 commit comments

Comments
 (0)