From 68f556d35cc7d0f4510b246eec4fbceb577759e5 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 16 Jul 2000 11:40:51 +0000 Subject: [PATCH] 2000-07-16 13:38 UTC+0100 Victor Szakats --- harbour/ChangeLog | 9 +++++++++ harbour/include/hbdefs.h | 20 ++++++++++---------- harbour/source/rtl/binnum.c | 30 ++++++++---------------------- harbour/source/rtl/binnumx.c | 14 ++++---------- 4 files changed, 31 insertions(+), 42 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 426a2120f4..5821bee514 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,12 @@ +2000-07-16 13:38 UTC+0100 Victor Szakats + + * source/rtl/binnum.c + * source/rtl/binnumx.c + % Optimized for size and speed. + + * include/hbdefs.h + ! Minor fix to HB_MKUSHORT(), HB_MKSHORT(), HB_MKLONG(), HB_MKULONG() + 2000-07-15 20:00 UTC+0100 Ryszard Glab *include/hbexpra.c diff --git a/harbour/include/hbdefs.h b/harbour/include/hbdefs.h index 2fc17d34f6..f969c0ecd0 100644 --- a/harbour/include/hbdefs.h +++ b/harbour/include/hbdefs.h @@ -130,16 +130,16 @@ #define HB_LOBYTE( w ) ( ( BYTE ) ( w ) ) #define HB_HIBYTE( w ) ( ( BYTE ) ( ( ( USHORT ) ( w ) >> 8 ) & 0xFF ) ) -#define HB_MKSHORT( lo, hi ) ( ( SHORT ) ( ( ( SHORT ) hi ) << 8 ) | lo ) -#define HB_MKUSHORT( lo, hi ) ( ( USHORT ) ( ( ( USHORT ) hi ) << 8 ) | lo ) -#define HB_MKLONG( b1, b2, b3, b4 ) ( ( ( LONG ) b4 ) << 24 ) | \ - ( ( ( LONG ) b3 ) << 16 ) | \ - ( ( ( LONG ) b2 ) << 8 ) | \ - ( ( ( LONG ) b1 ) ) -#define HB_MKULONG( b1, b2, b3, b4 ) ( ( ( ULONG ) b4 ) << 24 ) | \ - ( ( ( ULONG ) b3 ) << 16 ) | \ - ( ( ( ULONG ) b2 ) << 8 ) | \ - ( ( ( ULONG ) b1 ) ) +#define HB_MKSHORT( lo, hi ) ( ( SHORT ) ( ( ( SHORT ) ( hi ) ) << 8 ) | ( lo ) ) +#define HB_MKUSHORT( lo, hi ) ( ( USHORT ) ( ( ( USHORT ) ( hi ) ) << 8 ) | ( lo ) ) +#define HB_MKLONG( b1, b2, b3, b4 ) ( ( ( LONG ) ( b4 ) ) << 24 ) | \ + ( ( ( LONG ) ( b3 ) ) << 16 ) | \ + ( ( ( LONG ) ( b2 ) ) << 8 ) | \ + ( ( ( LONG ) ( b1 ) ) ) +#define HB_MKULONG( b1, b2, b3, b4 ) ( ( ( ULONG ) ( b4 ) ) << 24 ) | \ + ( ( ( ULONG ) ( b3 ) ) << 16 ) | \ + ( ( ( ULONG ) ( b2 ) ) << 8 ) | \ + ( ( ( ULONG ) ( b1 ) ) ) #define HB_SYMBOL_UNUSED( symbol ) ( void ) symbol diff --git a/harbour/source/rtl/binnum.c b/harbour/source/rtl/binnum.c index e18445ff6b..a33baaff5f 100644 --- a/harbour/source/rtl/binnum.c +++ b/harbour/source/rtl/binnum.c @@ -44,13 +44,9 @@ HB_FUNC( BIN2W ) { char * pszString = hb_itemGetCPtr( pItem ); ULONG ulLen = hb_itemGetCLen( pItem ); - BYTE byBuffer[ 2 ]; - byBuffer[ 0 ] = ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0; - byBuffer[ 1 ] = ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0; - - hb_retni( HB_MKUSHORT( byBuffer[ 0 ], - byBuffer[ 1 ] ) ); + hb_retni( HB_MKUSHORT( ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0, + ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0 ) ); } else hb_retni( 0 ); @@ -64,13 +60,9 @@ HB_FUNC( BIN2I ) { char * pszString = hb_itemGetCPtr( pItem ); ULONG ulLen = hb_itemGetCLen( pItem ); - BYTE byBuffer[ 2 ]; - byBuffer[ 0 ] = ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0; - byBuffer[ 1 ] = ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0; - - hb_retni( HB_MKSHORT( byBuffer[ 0 ], - byBuffer[ 1 ] ) ); + hb_retni( HB_MKSHORT( ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0, + ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0 ) ); } else hb_retni( 0 ); @@ -84,17 +76,11 @@ HB_FUNC( BIN2L ) { char * pszString = hb_itemGetCPtr( pItem ); ULONG ulLen = hb_itemGetCLen( pItem ); - BYTE byBuffer[ 4 ]; - byBuffer[ 0 ] = ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0; - byBuffer[ 1 ] = ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0; - byBuffer[ 2 ] = ( ulLen >= 3 ) ? ( BYTE ) pszString[ 2 ] : 0; - byBuffer[ 3 ] = ( ulLen >= 4 ) ? ( BYTE ) pszString[ 3 ] : 0; - - hb_retnl( HB_MKLONG( byBuffer[ 0 ], - byBuffer[ 1 ], - byBuffer[ 2 ], - byBuffer[ 3 ] ) ); + hb_retnl( HB_MKLONG( ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0, + ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0, + ( ulLen >= 3 ) ? ( BYTE ) pszString[ 2 ] : 0, + ( ulLen >= 4 ) ? ( BYTE ) pszString[ 3 ] : 0 ) ); } else hb_retnl( 0 ); diff --git a/harbour/source/rtl/binnumx.c b/harbour/source/rtl/binnumx.c index 7e727f2eb2..27108c648d 100644 --- a/harbour/source/rtl/binnumx.c +++ b/harbour/source/rtl/binnumx.c @@ -48,17 +48,11 @@ HB_FUNC( BIN2U ) { char * pszString = hb_itemGetCPtr( pItem ); ULONG ulLen = hb_itemGetCLen( pItem ); - BYTE byBuffer[ 4 ]; - byBuffer[ 0 ] = ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0; - byBuffer[ 1 ] = ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0; - byBuffer[ 2 ] = ( ulLen >= 3 ) ? ( BYTE ) pszString[ 2 ] : 0; - byBuffer[ 3 ] = ( ulLen >= 4 ) ? ( BYTE ) pszString[ 3 ] : 0; - - hb_retnl( HB_MKULONG( byBuffer[ 0 ], - byBuffer[ 1 ], - byBuffer[ 2 ], - byBuffer[ 3 ] ) ); + hb_retnl( HB_MKULONG( ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0, + ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0, + ( ulLen >= 3 ) ? ( BYTE ) pszString[ 2 ] : 0, + ( ulLen >= 4 ) ? ( BYTE ) pszString[ 3 ] : 0 ) ); } else hb_retnl( 0 );