From 1badb86c78e4ff48ad8ecc71306894513072962b Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 2 Oct 2010 09:44:56 +0000 Subject: [PATCH] 2010-10-02 11:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg + Added workaround for mingw compiler problem where it tends to leave zero byte long objects in cases when the build process gets (manually) aborted. Please check it and report any potential performace problems (hbmk2 needs to read the objects' size from the directory listing). Maybe we will need a Harbour function which returns both timestamp and size in one call. * contrib/hbodbc/todbc.prg - Deleted 'FROM HBCLASS' from class declarations. Thanks to Manu for the report. * contrib/hbxpp/dbfuncsx.prg + Added XPP_DBUSEAREA() which emulates non-Clipper compatible behavior of Xbase++ DBUSEAREA() implementation. Based on code and information sent by Shum * contrib/gtwvg/wvgwing.c ! Fixed compilation in newer BCC versions (6.3). Fix suggested by YD0DKL * package/winuni/mpkg_win_uni.bat + Added copyright msg. --- harbour/ChangeLog | 31 +++++++++++++++++++++++-- harbour/contrib/gtwvg/wvgwing.c | 2 +- harbour/contrib/hbodbc/todbc.prg | 4 ++-- harbour/contrib/hbxpp/dbfuncsx.prg | 26 +++++++++++++++++++++ harbour/package/winuni/mpkg_win_uni.bat | 13 +++++++---- harbour/utils/hbmk2/hbmk2.prg | 12 ++++++---- 6 files changed, 75 insertions(+), 13 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 88568eaadd..81d8032fed 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,33 @@ The license applies to all entries newer than 2009-04-28. */ +2010-10-02 11:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.prg + + Added workaround for mingw compiler problem where it + tends to leave zero byte long objects in cases when the + build process gets (manually) aborted. + Please check it and report any potential performace + problems (hbmk2 needs to read the objects' size from + the directory listing). Maybe we will need a Harbour + function which returns both timestamp and size in one + call. + + * contrib/hbodbc/todbc.prg + - Deleted 'FROM HBCLASS' from class declarations. + Thanks to Manu for the report. + + * contrib/hbxpp/dbfuncsx.prg + + Added XPP_DBUSEAREA() which emulates non-Clipper compatible + behavior of Xbase++ DBUSEAREA() implementation. + Based on code and information sent by Shum + + * contrib/gtwvg/wvgwing.c + ! Fixed compilation in newer BCC versions (6.3). + Fix suggested by YD0DKL + + * package/winuni/mpkg_win_uni.bat + + Added copyright msg. + 2010-10-01 17:24 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/contrib/sddpg/sddpg.c * added text field support provided by Aleksander Czajczynski with @@ -33,7 +60,7 @@ * harbour/contrib/sddodbc/sddodbc.c * harbour/contrib/sddpg/sddpg.c * harbour/contrib/sddsqlt3/sddsqlt3.c - ! added protection agains double resource freeing in case of double + ! added protection agains double resource freeing in case of double CLOSE method; 2010-09-30 10:20 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) @@ -47,7 +74,7 @@ + contrib/hbqt/qtcore/qth/QMetaType.qth + Added: classes to manage QMetaObject() and allied. Still not on compilable levels. - + 2010-09-30 17:12 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/contrib/rddsdd/sqlmix.c ! fixed typo diff --git a/harbour/contrib/gtwvg/wvgwing.c b/harbour/contrib/gtwvg/wvgwing.c index e4f5135070..6cf6de89fe 100644 --- a/harbour/contrib/gtwvg/wvgwing.c +++ b/harbour/contrib/gtwvg/wvgwing.c @@ -74,7 +74,7 @@ /*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/ -#if defined( __BORLANDC__ ) +#if defined( __BORLANDC__ ) && ( __BORLANDC__ < 1552 ) # if !defined( NONAMELESSUNION ) # define NONAMELESSUNION # endif diff --git a/harbour/contrib/hbodbc/todbc.prg b/harbour/contrib/hbodbc/todbc.prg index c0032f6cd1..afb959034a 100644 --- a/harbour/contrib/hbodbc/todbc.prg +++ b/harbour/contrib/hbodbc/todbc.prg @@ -77,7 +77,7 @@ *+ *+-------------------------------------------------------------------- -CREATE CLASS TODBCField FROM HBClass +CREATE CLASS TODBCField VAR FieldID INIT -1 VAR FieldName INIT "" @@ -103,7 +103,7 @@ METHOD New() CLASS TODBCField *+ *+-------------------------------------------------------------------- -CREATE CLASS TODBC FROM HBClass +CREATE CLASS TODBC VAR hEnv VAR hDbc diff --git a/harbour/contrib/hbxpp/dbfuncsx.prg b/harbour/contrib/hbxpp/dbfuncsx.prg index 6528479117..a05be7481c 100644 --- a/harbour/contrib/hbxpp/dbfuncsx.prg +++ b/harbour/contrib/hbxpp/dbfuncsx.prg @@ -50,6 +50,8 @@ * */ +#include "common.ch" + FUNCTION _dbExport( cFile, aFields, bFor, bWhile, nNext, nRecord, lRest, cXPP_Driver, cDelimiter ) DO CASE @@ -64,3 +66,27 @@ FUNCTION _dbExport( cFile, aFields, bFor, bWhile, nNext, nRecord, lRest, cXPP_Dr ENDCASE RETURN __dbCopy( cFile, aFields, bFor, bWhile, nNext, nRecord, lRest, cXPP_Driver ) + +FUNCTION xpp_dbUseArea( lNewArea, cDriver, cName, xcAlias, lShared, lReadonly ) + LOCAL nOldArea + LOCAL nArea + + IF ISLOGICAL( lNewArea ) .AND. lNewArea + IF ! ISCHARACTER( xcAlias ) + xcAlias := "" + ENDIF + + IF Empty( xcAlias ) + xcAlias := cName + ENDIF + + IF ISCHARACTER( xcAlias ) + nOldArea := Select() + IF ( nArea := Select( xcAlias ) ) > 0 + xcAlias += "_" + hb_ntos( nArea ) + ENDIF + dbSelectArea( nOldArea ) + ENDIF + ENDIF + + RETURN dbUseArea( lNewArea, cDriver, cName, xcAlias, lShared, lReadonly ) diff --git a/harbour/package/winuni/mpkg_win_uni.bat b/harbour/package/winuni/mpkg_win_uni.bat index 9659105651..9b9a337288 100644 --- a/harbour/package/winuni/mpkg_win_uni.bat +++ b/harbour/package/winuni/mpkg_win_uni.bat @@ -4,10 +4,15 @@ @echo off -@rem - Adjust target dir, mingw dirs, set HB_DIR_UPX, HB_DIR_7Z, HB_DIR_MINGW, -@rem create required packages beforehand. -@rem - Requires BCC in PATH or HB_DIR_BCC_IMPLIB (for implib). -@rem - Run this from vanilla official source tree only. +rem --------------------------------------------------------------- +rem Copyright 2009-2010 Viktor Szakats (harbour.01 syenar.hu) +rem See COPYING for licensing terms. +rem --------------------------------------------------------------- + +rem - Adjust target dir, mingw dirs, set HB_DIR_UPX, HB_DIR_7Z, HB_DIR_MINGW, +rem create required packages beforehand. +rem - Requires BCC in PATH or HB_DIR_BCC_IMPLIB (for implib). +rem - Run this from vanilla official source tree only. if "%HB_VS%" == "" set HB_VS=21 if "%HB_VL%" == "" set HB_VL=210 diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index cd3bc41b60..e6c47c6c3e 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -4556,7 +4556,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF ! hb_FGetDateTime( FNameDirExtSet( tmp, hbmk[ _HBMK_cWorkDir ], cObjExt ), @tmp2 ) .OR. ; ! hb_FGetDateTime( tmp, @tmp1 ) .OR. ; tmp1 > tmp2 .OR. ; - ( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, tmp2, .T., cBin_CompC ) ) + ( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, tmp2, .T., cBin_CompC ) ) .OR. ; + hb_FSize( FNameDirExtSet( tmp, hbmk[ _HBMK_cWorkDir ], cObjExt ) ) == 0 AAdd( l_aC_TODO, tmp ) ENDIF NEXT @@ -4578,7 +4579,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF ! hb_FGetDateTime( FNameDirExtSet( tmp, hbmk[ _HBMK_cWorkDir ], cObjExt ), @tmp2 ) .OR. ; ! hb_FGetDateTime( tmp, @tmp1 ) .OR. ; tmp1 > tmp2 .OR. ; - ( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, tmp2, .T., cBin_CompCPP ) ) + ( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, tmp2, .T., cBin_CompCPP ) ) .OR. ; + hb_FSize( FNameDirExtSet( tmp, hbmk[ _HBMK_cWorkDir ], cObjExt ) ) == 0 AAdd( l_aCPP_TODO, tmp ) ENDIF NEXT @@ -5201,7 +5203,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) IF ! hb_FGetDateTime( FNameDirExtSet( tmp, hbmk[ _HBMK_cWorkDir ], cResExt ), @tmp2 ) .OR. ; ! hb_FGetDateTime( tmp, @tmp1 ) .OR. ; tmp1 > tmp2 .OR. ; - ( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, tmp2, .T., cBin_CompC ) ) + ( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, tmp2, .T., cBin_CompC ) ) .OR. ; + hb_FSize( FNameDirExtSet( tmp, hbmk[ _HBMK_cWorkDir ], cResExt ) ) == 0 AAdd( l_aRESSRC_TODO, tmp ) ENDIF NEXT @@ -5398,7 +5401,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) ENDIF IF ! hb_FGetDateTime( FNameDirExtSet( tmp3, hbmk[ _HBMK_cWorkDir ], ".c" ), @tmp1 ) .OR. ; ! hb_FGetDateTime( FNameDirExtSet( tmp3, hbmk[ _HBMK_cWorkDir ], cObjExt ), @tmp2 ) .OR. ; - tmp1 > tmp2 + tmp1 > tmp2 .OR. ; + hb_FSize( FNameDirExtSet( tmp3, hbmk[ _HBMK_cWorkDir ], cObjExt ) ) == 0 AAdd( l_aPRG_TODO, tmp ) ENDIF NEXT