From a6895771d5aae956795029fd65cfa819d2495d04 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Wed, 25 Jul 2007 14:05:17 +0000 Subject: [PATCH] 2007-07-25 16:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbgtcore.h + added translation for HB_GT_trm * harbour/source/rtl/gttrm/gttrm.c + map some Linux key codes also in XTerm - they will be usable in terminals like PuTTY/PTerm * harbour/source/rtl/gtstd/gtstd.c * harbour/source/rtl/gtpca/gtpca.c + changed the order of checking HB_WIN32_IO and OS_UNIX_COMPATIBLE macros for CYGWIN compilation --- harbour/ChangeLog | 13 +++++++++ harbour/include/hbgtcore.h | 1 + harbour/source/rtl/gtpca/gtpca.c | 8 +++--- harbour/source/rtl/gtstd/gtstd.c | 16 +++++------ harbour/source/rtl/gttrm/gttrm.c | 48 +++++++++++++++++++++++++++++++- 5 files changed, 73 insertions(+), 13 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index a20451aa3f..810ef93a6f 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,19 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-07-25 16:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbgtcore.h + + added translation for HB_GT_trm + + * harbour/source/rtl/gttrm/gttrm.c + + map some Linux key codes also in XTerm - they will be usable + in terminals like PuTTY/PTerm + + * harbour/source/rtl/gtstd/gtstd.c + * harbour/source/rtl/gtpca/gtpca.c + + changed the order of checking HB_WIN32_IO and OS_UNIX_COMPATIBLE + macros for CYGWIN compilation + 2007-07-25 09:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * common.mak * source/codepage/Makefile diff --git a/harbour/include/hbgtcore.h b/harbour/include/hbgtcore.h index ed50244f29..af9b8e554b 100644 --- a/harbour/include/hbgtcore.h +++ b/harbour/include/hbgtcore.h @@ -78,6 +78,7 @@ #define HB_GT_dos HB_GT_DOS #define HB_GT_os2 HB_GT_OS2 #define HB_GT_tpl HB_GT_TPL +#define HB_GT_trm HB_GT_TRM #define HB_GT_QTc HB_GT_QTC #define HB_GT_xvt HB_GT_XVT #define HB_GT_xwc HB_GT_XWC diff --git a/harbour/source/rtl/gtpca/gtpca.c b/harbour/source/rtl/gtpca/gtpca.c index 2edd07dd0b..19cae9fca7 100644 --- a/harbour/source/rtl/gtpca/gtpca.c +++ b/harbour/source/rtl/gtpca/gtpca.c @@ -672,15 +672,15 @@ static int hb_gt_pca_ReadKey( int iEventMask ) if( _read( s_hFilenoStdin, &bChar, 1 ) == 1 ) ch = s_keyTransTbl[ bChar ]; } -#elif defined( HB_WIN32_IO ) - if( !s_bStdinConsole || - WaitForSingleObject( ( HANDLE ) hb_fsGetOsHandle( s_hFilenoStdin ), 0 ) == 0x0000 ) +#elif defined( OS_UNIX_COMPATIBLE ) { BYTE bChar; if( hb_fsRead( s_hFilenoStdin, &bChar, 1 ) == 1 ) ch = s_keyTransTbl[ bChar ]; } -#elif defined( OS_UNIX_COMPATIBLE ) +#elif defined( HB_WIN32_IO ) + if( !s_bStdinConsole || + WaitForSingleObject( ( HANDLE ) hb_fsGetOsHandle( s_hFilenoStdin ), 0 ) == 0x0000 ) { BYTE bChar; if( hb_fsRead( s_hFilenoStdin, &bChar, 1 ) == 1 ) diff --git a/harbour/source/rtl/gtstd/gtstd.c b/harbour/source/rtl/gtstd/gtstd.c index b6cb40ded0..8859817326 100644 --- a/harbour/source/rtl/gtstd/gtstd.c +++ b/harbour/source/rtl/gtstd/gtstd.c @@ -297,14 +297,6 @@ static int hb_gt_std_ReadKey( int iEventMask ) if( _read( s_hFilenoStdin, &bChar, 1 ) == 1 ) ch = s_keyTransTbl[ bChar ]; } -#elif defined( HB_WIN32_IO ) - if( !s_bStdinConsole || - WaitForSingleObject( ( HANDLE ) hb_fsGetOsHandle( s_hFilenoStdin ), 0 ) == 0x0000 ) - { - BYTE bChar; - if( hb_fsRead( s_hFilenoStdin, &bChar, 1 ) == 1 ) - ch = s_keyTransTbl[ bChar ]; - } #elif defined( OS_UNIX_COMPATIBLE ) { struct timeval tv; @@ -320,6 +312,14 @@ static int hb_gt_std_ReadKey( int iEventMask ) ch = s_keyTransTbl[ bChar ]; } } +#elif defined( HB_WIN32_IO ) + if( !s_bStdinConsole || + WaitForSingleObject( ( HANDLE ) hb_fsGetOsHandle( s_hFilenoStdin ), 0 ) == 0x0000 ) + { + BYTE bChar; + if( hb_fsRead( s_hFilenoStdin, &bChar, 1 ) == 1 ) + ch = s_keyTransTbl[ bChar ]; + } #else /* TODO: */ diff --git a/harbour/source/rtl/gttrm/gttrm.c b/harbour/source/rtl/gttrm/gttrm.c index bbdcde4c66..739cc14077 100644 --- a/harbour/source/rtl/gttrm/gttrm.c +++ b/harbour/source/rtl/gttrm/gttrm.c @@ -2312,6 +2312,46 @@ static void init_keys( void ) { EXKEY_F10|KEY_CTRLMASK|KEY_ALTMASK, "\033[21;2~" }, { EXKEY_F11|KEY_CTRLMASK|KEY_ALTMASK, "\033[23;2~" }, { EXKEY_F12|KEY_CTRLMASK|KEY_ALTMASK, "\033[24;2~" }, + + { EXKEY_F1 |KEY_CTRLMASK|KEY_ALTMASK, "\033[25~" }, /* kf13 */ + { EXKEY_F2 |KEY_CTRLMASK|KEY_ALTMASK, "\033[26~" }, /* kf14 */ + { EXKEY_F3 |KEY_CTRLMASK|KEY_ALTMASK, "\033[28~" }, /* kf15 */ + { EXKEY_F4 |KEY_CTRLMASK|KEY_ALTMASK, "\033[29~" }, /* kf16 */ + { EXKEY_F5 |KEY_CTRLMASK|KEY_ALTMASK, "\033[31~" }, /* kf17 */ + { EXKEY_F6 |KEY_CTRLMASK|KEY_ALTMASK, "\033[32~" }, /* kf18 */ + { EXKEY_F7 |KEY_CTRLMASK|KEY_ALTMASK, "\033[33~" }, /* kf19 */ + { EXKEY_F8 |KEY_CTRLMASK|KEY_ALTMASK, "\033[34~" }, /* kf20 */ + { EXKEY_F9 |KEY_CTRLMASK|KEY_ALTMASK, "\033[35~" }, /* kf21 */ + { EXKEY_F10|KEY_CTRLMASK|KEY_ALTMASK, "\033[36~" }, /* kf22 */ + { EXKEY_F11|KEY_CTRLMASK|KEY_ALTMASK, "\033[37~" }, /* kf23 */ + { EXKEY_F12|KEY_CTRLMASK|KEY_ALTMASK, "\033[38~" }, /* kf24 */ + + { EXKEY_F1 |KEY_CTRLMASK, "\033[39~" }, /* kf25 */ + { EXKEY_F2 |KEY_CTRLMASK, "\033[40~" }, /* kf26 */ + { EXKEY_F3 |KEY_CTRLMASK, "\033[41~" }, /* kf27 */ + { EXKEY_F4 |KEY_CTRLMASK, "\033[42~" }, /* kf28 */ + { EXKEY_F5 |KEY_CTRLMASK, "\033[43~" }, /* kf29 */ + { EXKEY_F6 |KEY_CTRLMASK, "\033[44~" }, /* kf30 */ + { EXKEY_F7 |KEY_CTRLMASK, "\033[45~" }, /* kf31 */ + { EXKEY_F8 |KEY_CTRLMASK, "\033[46~" }, /* kf32 */ + { EXKEY_F9 |KEY_CTRLMASK, "\033[47~" }, /* kf33 */ + { EXKEY_F10|KEY_CTRLMASK, "\033[48~" }, /* kf34 */ + { EXKEY_F11|KEY_CTRLMASK, "\033[49~" }, /* kf35 */ + { EXKEY_F12|KEY_CTRLMASK, "\033[50~" }, /* kf36 */ + + { EXKEY_F1 |KEY_ALTMASK , "\033[51~" }, /* kf37 */ + { EXKEY_F2 |KEY_ALTMASK , "\033[52~" }, /* kf38 */ + { EXKEY_F3 |KEY_ALTMASK , "\033[53~" }, /* kf39 */ + { EXKEY_F4 |KEY_ALTMASK , "\033[54~" }, /* kf40 */ + { EXKEY_F5 |KEY_ALTMASK , "\033[55~" }, /* kf41 */ + { EXKEY_F6 |KEY_ALTMASK , "\033[56~" }, /* kf42 */ + { EXKEY_F7 |KEY_ALTMASK , "\033[57~" }, /* kf43 */ + { EXKEY_F8 |KEY_ALTMASK , "\033[58~" }, /* kf44 */ + { EXKEY_F9 |KEY_ALTMASK , "\033[59~" }, /* kf45 */ + { EXKEY_F10|KEY_ALTMASK , "\033[70~" }, /* kf46 */ + { EXKEY_F11|KEY_ALTMASK , "\033[71~" }, /* kf47 */ + { EXKEY_F12|KEY_ALTMASK , "\033[72~" }, /* kf48 */ + { 0, NULL } }; static const keySeq linuxKeySeq[] = { @@ -2382,8 +2422,14 @@ static void init_keys( void ) { EXKEY_TAB, "\011" }, /* ht */ { EXKEY_BS, "\177" }, /* kbs */ { EXKEY_TAB | KEY_ALTMASK, "\033[Z" }, /* kcbt */ - { 0, NULL } }; + { EXKEY_UP |KEY_CTRLMASK, "\033OA" }, + { EXKEY_DOWN |KEY_CTRLMASK, "\033OB" }, + { EXKEY_RIGHT |KEY_CTRLMASK, "\033OC" }, + { EXKEY_LEFT |KEY_CTRLMASK, "\033OD" }, + { EXKEY_CENTER|KEY_CTRLMASK, "\033OG" }, + + { 0, NULL } }; static const keySeq ansiKeySeq[] = { /* cursor keys */