From 87ddf9c1106248986329863cfae2d4efc9b0d1a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Czerpak?= Date: Mon, 9 Sep 2013 15:54:22 +0200 Subject: [PATCH] 2013-09-09 15:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/vm/dlmalloc.c * use __builtin_clz() and __builtin_ctz() only with GCC 3.4 or newer. Problem reported by David Arturo Macias Corona and OS2 GCC3.3.5. * README.md + added link suggested by David to os2gcc454 from Paul Smedley * src/rtl/gtstd/gtstd.c + accept keyboard input from redirected file on platforms without dedicated code for keyboard support in GTSTD --- ChangeLog.txt | 12 ++++++++++++ README.md | 1 + src/rtl/gtstd/gtstd.c | 11 ++++++++++- src/vm/dlmalloc.c | 6 ++++-- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index fb8ae9b866..6c67101f58 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,18 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2013-09-09 15:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/vm/dlmalloc.c + * use __builtin_clz() and __builtin_ctz() only with GCC 3.4 or newer. + Problem reported by David Arturo Macias Corona and OS2 GCC3.3.5. + + * README.md + + added link suggested by David to os2gcc454 from Paul Smedley + + * src/rtl/gtstd/gtstd.c + + accept keyboard input from redirected file on platforms without + dedicated code for keyboard support in GTSTD + 2013-08-28 17:18 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rtl/hbsocket.c ! use sock_errno() instead of errno in OS2 WATCOM builds. diff --git a/README.md b/README.md index 701020bbdd..64458a6730 100644 --- a/README.md +++ b/README.md @@ -1744,6 +1744,7 @@ Supported shells per host platforms: * * * + * * DJGPP [dos, *nix, free, open-source] * * Open Watcom [win, dos, os2, linux, free, open-source] diff --git a/src/rtl/gtstd/gtstd.c b/src/rtl/gtstd/gtstd.c index 5324c09522..cffea5159f 100644 --- a/src/rtl/gtstd/gtstd.c +++ b/src/rtl/gtstd/gtstd.c @@ -414,7 +414,16 @@ static int hb_gt_std_ReadKey( PHB_GT pGT, int iEventMask ) } #else { - int iTODO; /* TODO: */ + if( ! pGTSTD->fStdinConsole ) + { + HB_BYTE bChar; + if( hb_fsRead( pGTSTD->hStdin, &bChar, 1 ) == 1 ) + ch = bChar; + } + else + { + int iTODO; /* TODO: */ + } } #endif diff --git a/src/vm/dlmalloc.c b/src/vm/dlmalloc.c index d29caf46c8..7cf10e3746 100644 --- a/src/vm/dlmalloc.c +++ b/src/vm/dlmalloc.c @@ -2932,7 +2932,8 @@ static size_t traverse_and_check(mstate m); }\ } -#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) && \ + (defined(__i386__) || defined(__x86_64__)) #define compute_tree_index(S, I)\ {\ unsigned int X = S >> TREEBIN_SHIFT;\ @@ -3021,7 +3022,8 @@ static size_t traverse_and_check(mstate m); /* index corresponding to given bit. Use x86 asm if possible */ -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) && \ + (defined(__i386__) || defined(__x86_64__)) #define compute_bit2idx(X, I)\ {\ unsigned int J;\