From 6300f741cb7dfa8751ef1909233760bdf0feca22 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 22 Jun 2008 10:29:36 +0000 Subject: [PATCH] 2008-06-22 12:24 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * contrib/hbcurl/hbcurl.c ! Synced with main branch to avoid an AMD64 mode error. [1.0.0RC1] * contrib/hbw32ddr/w32_ddrw.cpp * contrib/hbodbc/odbc.c ! Fixed to compile with MSVS2008 in AMD64 mode. * odbc.c completely synced with main branch. [1.0.0RC1] --- harbour-1.0.0RC1/ChangeLog | 11 ++++ harbour-1.0.0RC1/contrib/hbcurl/hbcurl.c | 2 +- harbour-1.0.0RC1/contrib/hbodbc/odbc.c | 57 +++++++++---------- .../contrib/hbw32ddr/w32_ddrw.cpp | 5 +- 4 files changed, 41 insertions(+), 34 deletions(-) diff --git a/harbour-1.0.0RC1/ChangeLog b/harbour-1.0.0RC1/ChangeLog index f36c794faf..777f41796c 100644 --- a/harbour-1.0.0RC1/ChangeLog +++ b/harbour-1.0.0RC1/ChangeLog @@ -8,6 +8,17 @@ 2008-12-31 13:59 UTC+0100 Foo Bar */ +2008-06-22 12:24 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * contrib/hbcurl/hbcurl.c + ! Synced with main branch to avoid an AMD64 mode error. + [1.0.0RC1] + + * contrib/hbw32ddr/w32_ddrw.cpp + * contrib/hbodbc/odbc.c + ! Fixed to compile with MSVS2008 in AMD64 mode. + * odbc.c completely synced with main branch. + [1.0.0RC1] + 2008-06-22 10:58 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * contrib/mtpl_b32.mak * contrib/mtpl_gcc.mak diff --git a/harbour-1.0.0RC1/contrib/hbcurl/hbcurl.c b/harbour-1.0.0RC1/contrib/hbcurl/hbcurl.c index 01206a2f36..0129375168 100644 --- a/harbour-1.0.0RC1/contrib/hbcurl/hbcurl.c +++ b/harbour-1.0.0RC1/contrib/hbcurl/hbcurl.c @@ -469,7 +469,7 @@ static void PHB_CURL_ret( PHB_CURL from ) hb_retptrGC( ph ); } -static void ** PHB_CURL_is( int iParam ) +static void * PHB_CURL_is( int iParam ) { return hb_parptrGC( PHB_CURL_release, iParam ); } diff --git a/harbour-1.0.0RC1/contrib/hbodbc/odbc.c b/harbour-1.0.0RC1/contrib/hbodbc/odbc.c index 2ee683e8e2..660eee364e 100644 --- a/harbour-1.0.0RC1/contrib/hbodbc/odbc.c +++ b/harbour-1.0.0RC1/contrib/hbodbc/odbc.c @@ -56,16 +56,9 @@ * www - http://www.harbour-project.org * * Copyright 1999 Felipe G. Coury - * HB_SQLNUMRES() - * HB_SQLDESCRIB() - * HB_SQLEXTENDE() - * - * See doc/license.txt for licensing terms. - */ - -/* - * The following parts are Copyright of the individual authors. - * www - http://www.xharbour.org + * SQLNUMRES() + * SQLDESCRIB() + * SQLEXTENDE() * * Copyright 1996 Marcelo Lombardo * SQLGETINFO() @@ -82,14 +75,12 @@ * See doc/license.txt for licensing terms. */ +#define HB_OS_WIN_32_USED + #include "hbapi.h" #if !defined(HB_OS_DOS) && !defined(HB_OS_OS2) -#if defined(HB_OS_WIN_32) - #include -#endif - #include #include #include @@ -249,16 +240,16 @@ HB_FUNC( SQLFETCH ) /* HB_SQLFETCH( hStmt ) --> nRetCode */ HB_FUNC( SQLGETDATA ) /* HB_SQLGETDATA( hStmt, nField, nType, nLen, @cBuffer ) --> nRetCode */ { - SDWORD lLen, lInitBuff; + SQLLEN lLen, lInitBuff; PTR bBuffer, bOut; WORD wType, wResult; int iReallocs = 0; lLen = ( SDWORD )( hb_parnl( 4 ) ? hb_parnl( 4 ) : 64 ); - bBuffer = hb_xgrab( (ULONG) lLen+1 ); + bBuffer = hb_xgrab( (ULONG) lLen + 1 ); bOut = NULL; lInitBuff = lLen; - wType = ( hb_parni( 3 ) ? hb_parni( 3 ) : SQL_BINARY ); + wType = hb_parni( 3 ) ? hb_parni( 3 ) : SQL_BINARY; wResult = ! SQL_NO_DATA; while( wResult != SQL_NO_DATA ) @@ -271,13 +262,13 @@ HB_FUNC( SQLGETDATA ) /* HB_SQLGETDATA( hStmt, nField, nType, nLen, @cBuffer ) - } else if ( wResult == SQL_SUCCESS_WITH_INFO && iReallocs == 0 ) { - /* Perheps a data truncation */ + /* Perhaps a data truncation */ if( lLen >= lInitBuff ) { /* data right truncated! */ bOut = ( char * ) hb_xgrab( (ULONG) lLen + 1 ); + hb_strncpy( (char *) bOut, (char *) bBuffer, lLen ); lLen = lLen - lInitBuff+2; - strcpy( (char *) bOut, (char *) bBuffer ); bBuffer = ( char * ) hb_xrealloc( bBuffer, (ULONG) lLen ); } else @@ -289,6 +280,7 @@ HB_FUNC( SQLGETDATA ) /* HB_SQLGETDATA( hStmt, nField, nType, nLen, @cBuffer ) - } else if( (wResult == SQL_SUCCESS || wResult == SQL_SUCCESS_WITH_INFO ) && iReallocs > 0 ) { + /* TOFIX: Possible buffer overrun. Shouldn't we rather use memcpy()? */ strcat( (char*) bOut, (char *) bBuffer ); hb_storclen( ( LPSTR ) bOut, ( ULONG ) ( lLen + lInitBuff - 1 ), 5 ); wResult = SQL_SUCCESS; @@ -325,7 +317,7 @@ HB_FUNC( SQLDESCRIB ) SDWORD lLen = ( SDWORD ) hb_parnl( 4 ); SQLSMALLINT wBufLen = hb_parni( 5 ); SQLSMALLINT wDataType = hb_parni( 6 ); - SQLUINTEGER wColSize = hb_parni( 7 ); + SQLULEN wColSize = hb_parni( 7 ); SQLSMALLINT wDecimals = hb_parni( 8 ); SQLSMALLINT wNullable = hb_parni( 9 ); #if defined( HB_OS_WIN_32 ) && defined( UNICODE ) @@ -335,9 +327,14 @@ HB_FUNC( SQLDESCRIB ) #endif WORD wResult; - wResult = SQLDescribeCol( ( HSTMT ) hb_parnl( 1 ), hb_parni( 2 ), - buffer, ( SQLSMALLINT ) lLen, &wBufLen, - &wDataType, &wColSize, &wDecimals, + wResult = SQLDescribeCol( ( HSTMT ) hb_parnl( 1 ), + hb_parni( 2 ), + buffer, + ( SQLSMALLINT ) lLen, + &wBufLen, + &wDataType, + &wColSize, + &wDecimals, &wNullable ); if( wResult == SQL_SUCCESS || wResult == SQL_SUCCESS_WITH_INFO ) @@ -375,7 +372,7 @@ HB_FUNC( SQLCOLATTRIBUTE ) #if defined(__DMC__) (SQLINTEGER FAR*) &wNumPtr ); #else - (SQLPOINTER) &wNumPtr ); + (SQLLEN *) &wNumPtr ); #endif if( wResult == SQL_SUCCESS || wResult == SQL_SUCCESS_WITH_INFO ) @@ -393,7 +390,7 @@ HB_FUNC( SQLCOLATTRIBUTE ) /* HB_SQLEXTENDEDFETCH( hStmt, nOrientation, nOffset, @nRows, @nRowStatus ) */ HB_FUNC( SQLEXTENDE ) { - SQLUINTEGER uiRowCountPtr = hb_parni( 4 ); + SQLULEN uiRowCountPtr = hb_parni( 4 ); SQLUSMALLINT siRowStatus = hb_parni( 5 ); WORD wResult = SQLExtendedFetch( ( HSTMT ) hb_parnl( 1 ), ( USHORT )hb_parnl( 2 ), @@ -427,7 +424,7 @@ HB_FUNC( SQLERROR ) /* hEnv, hDbc, hStmt, @ cErrorClass, @ nType, @ cErrorMsg */ #endif hb_retni( SQLError( ( HENV ) hb_parnl( 1 ), ( HDBC ) hb_parnl( 2 ), ( HSTMT ) hb_parnl( 3 ), buffer, &lError, - szErrorMsg, 256, &wLen ) ); + szErrorMsg, sizeof( szErrorMsg ), &wLen ) ); if( ISBYREF( 4 ) ) { @@ -469,7 +466,7 @@ HB_FUNC( SQLGETINFO ) /* hDbc, nType, @cResult */ { BYTE bBuffer[ 512 ]; SQLSMALLINT wLen; - WORD wResult = SQLGetInfo( ( HDBC ) hb_parnl( 1 ), ( UWORD ) hb_parnl( 2 ), bBuffer, 512, &wLen ); + WORD wResult = SQLGetInfo( ( HDBC ) hb_parnl( 1 ), ( UWORD ) hb_parnl( 2 ), bBuffer, sizeof( bBuffer ), &wLen ); hb_storclen( (char *) bBuffer, wLen, 3 ); hb_retni( wResult ); @@ -492,7 +489,7 @@ HB_FUNC( SQLGETCONNECTOPTION ) /* hDbc, nOption, @cOption */ BYTE bBuffer[ 512 ]; WORD wResult = SQLGetConnectOption( ( HDBC ) hb_parnl( 1 ), hb_parni( 2 ), bBuffer ); if( wResult == SQL_SUCCESS ) - hb_storclen( (char *) bBuffer, 512, 3 ); + hb_storclen( (char *) bBuffer, sizeof( bBuffer ), 3 ); hb_retni( wResult ); } @@ -504,7 +501,7 @@ HB_FUNC( SQLGETSTMTOPTION ) /* hStmt, nOption, @cOption */ if( wResult == SQL_SUCCESS ) { - hb_storclen( (char *) bBuffer, 512,3 ); + hb_storclen( (char *) bBuffer, sizeof( bBuffer ), 3 ); } hb_retni( wResult ); @@ -543,7 +540,7 @@ HB_FUNC( SQLEXECUTE ) /* HB_SQLEXECUTE( hStmt ) --> nRetCode */ HB_FUNC( SQLEXECUTESCALAR ) { HSTMT hStmt; - SDWORD lLen; + SQLLEN lLen; BYTE bBuffer[ 256 ]; SWORD wResult; diff --git a/harbour-1.0.0RC1/contrib/hbw32ddr/w32_ddrw.cpp b/harbour-1.0.0RC1/contrib/hbw32ddr/w32_ddrw.cpp index 48b9ea1de1..41f8eedddc 100644 --- a/harbour-1.0.0RC1/contrib/hbw32ddr/w32_ddrw.cpp +++ b/harbour-1.0.0RC1/contrib/hbw32ddr/w32_ddrw.cpp @@ -372,7 +372,7 @@ void hb_dd_RenderSprites( long control ) //------------------------------------------------------------------// -long _stdcall hb_dd_DDWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) +LRESULT _stdcall hb_dd_DDWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { HRESULT hRet; int nVirtKey; @@ -780,12 +780,11 @@ HB_FUNC( DD_CREATEWINDOW ) hb_dd_g_xWindow = x; hb_dd_g_yWindow = y; - WNDCLASS wndClass = { CS_HREDRAW | CS_VREDRAW, hb_dd_DDWndProc, 0, 0, m_hInstance, NULL, LoadCursor(NULL, IDC_ARROW), (HBRUSH)GetStockObject(BLACK_BRUSH), - NULL, + NULL, TEXT("4dNow") }; RegisterClass( &wndClass );