From 5345d720447057003545f6b41e8de5cd47333c91 Mon Sep 17 00:00:00 2001 From: "David G. Holm" Date: Sat, 12 Feb 2000 00:16:10 +0000 Subject: [PATCH] See ChangeLog entry 2000-02-11 19:15 GMT-5 David G. Holm --- harbour/ChangeLog | 4 ++++ harbour/source/rtl/inkey.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 040a81dce4..fa86629a1d 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,7 @@ +2000-02-11 19:15 GMT-5 David G. Holm + * source/rtl/inkey.c + ! First pass at international character support for Windows console mode. + 20000211-23:05 GMT+1 Victor Szakats * make*.bat * The different make systems generate log files with different names. diff --git a/harbour/source/rtl/inkey.c b/harbour/source/rtl/inkey.c index f734a5aded..aa0ab5e801 100644 --- a/harbour/source/rtl/inkey.c +++ b/harbour/source/rtl/inkey.c @@ -365,7 +365,12 @@ void hb_inkeyPoll( void ) /* Poll the console keyboard to stuff the Harbour /* Save the keyboard state and ASCII key code */ DWORD dwState = s_irInBuf[ s_cNumIndex ].Event.KeyEvent.dwControlKeyState; ch = s_irInBuf[ s_cNumIndex ].Event.KeyEvent.uChar.AsciiChar; - if( ch == 0 || ( dwState & ( ENHANCED_KEY | LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED | RIGHT_ALT_PRESSED | RIGHT_CTRL_PRESSED | SHIFT_PRESSED ) ) ) + if( ch < 0 ) + { + /* Process international key codes */ + ch += 256; + } + else if( ch == 0 || ( dwState & ( ENHANCED_KEY | LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED | RIGHT_ALT_PRESSED | RIGHT_CTRL_PRESSED | SHIFT_PRESSED ) ) ) { /* Process non-ASCII key codes */ WORD wKey;