diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 37c3d3608f..71c8476ff0 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -9,6 +9,15 @@ */ +2006-06-29 08:25 UTC+0200 Tomaz Zupan (tomaz.zupan at orpo.si) + * harbour.spec + * Added libusrrdd.a to rpm files + +2006-06-29 00:25 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/bin/hb-func.sh + * harbour/include/hbgtcore.h + * use HB_FUNC*() macros + * harbour/source/rdd/dbcmd.c ! added fix for GPF in APPEND FROM when source file has repeated fields with the same names. diff --git a/harbour/bin/hb-func.sh b/harbour/bin/hb-func.sh index 46efce34a6..923cfdf815 100644 --- a/harbour/bin/hb-func.sh +++ b/harbour/bin/hb-func.sh @@ -441,12 +441,12 @@ hb_lnk_request() echo "#include \\"hbapi.h\\"" if [ -n "\${HB_LNK_REQ}" ]; then for fn in \${HB_LNK_REQ}; do - echo "extern HB_FUNC( \${fn} );" + echo "HB_FUNC_EXTERN( \${fn} );" done - echo "void hb_lnk_ForceLink_build( void )" + echo "void _hb_lnk_ForceLink_build( void )" echo "{" for fn in \${HB_LNK_REQ}; do - echo " HB_FUNCNAME( \${fn} )();" + echo " HB_FUNC_EXEC( \${fn} );" done echo "}" fi diff --git a/harbour/include/hbgtcore.h b/harbour/include/hbgtcore.h index b4f087e0dc..dc088f3dd5 100644 --- a/harbour/include/hbgtcore.h +++ b/harbour/include/hbgtcore.h @@ -92,7 +92,7 @@ #define HB_GT_REQUEST__( id ) HB_FUNC_EXTERN( id ); \ void hb_gt_ForceLink_##id( void ) \ { \ - HB_FUNCNAME( id )(); \ + HB_FUNC_EXEC( id ); \ } #define HB_GT_ANNOUNCE( id ) HB_GT_ANNOUNCE_( _HB_GT_PREF_( id ) ) diff --git a/harbour/source/rdd/dbcmd.c b/harbour/source/rdd/dbcmd.c index e04a330e50..a0c6765b50 100644 --- a/harbour/source/rdd/dbcmd.c +++ b/harbour/source/rdd/dbcmd.c @@ -4213,8 +4213,19 @@ static ERRCODE hb_dbTransStruct( AREAP lpaSource, AREAP lpaDest, fAll = FALSE; if( uiPosDst ) { - lpdbTransInfo->lpTransItems[ uiSize ].uiSource = uiCount; - lpdbTransInfo->lpTransItems[ uiSize++ ].uiDest = uiPosDst; + USHORT ui; + + /* check for replicated field names in source area */ + for( ui = 0; ui < uiSize; ++ui ) + { + if( lpdbTransInfo->lpTransItems[ ui ].uiDest == uiPosDst ) + break; + } + if( ui == uiSize ) + { + lpdbTransInfo->lpTransItems[ uiSize ].uiSource = uiCount; + lpdbTransInfo->lpTransItems[ uiSize++ ].uiDest = uiPosDst; + } } } hb_itemRelease( pItem );