diff --git a/ChangeLog.txt b/ChangeLog.txt index 4cd3443a77..9379b295ae 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,21 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2013-10-31 13:04 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * contrib/hbfship/hbfship.hbx + ! removed FIELDDECI() reenabled by mistake during one of + internal merges + + * src/rdd/dbfcdx/dbfcdx1.c + * accept headers with KEY and FOR expression lengths without + offset fields. + + * tests/video.prg + ! fixed CLIP and xHarbour compilation + + added support for testing UTF8 screen output + (non empty 1-st parameter) and HB_GTI_COMPATBUFFER (non empty + second parameter) + 2013-10-30 23:12 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rdd/dbf1.c ! set binary flag by default for PICTURE, BLOB and OLE fields diff --git a/contrib/hbfship/hbfship.hbx b/contrib/hbfship/hbfship.hbx index ef07413dfd..8e071a0c4f 100644 --- a/contrib/hbfship/hbfship.hbx +++ b/contrib/hbfship/hbfship.hbx @@ -25,7 +25,6 @@ DYNAMIC dbSetLocate DYNAMIC dbSetLocateBlock DYNAMIC ExecName DYNAMIC ExecPIDNum -DYNAMIC FIELDDECI DYNAMIC FieldGetArr DYNAMIC FieldPutArr DYNAMIC IndexCount diff --git a/src/rdd/dbfcdx/dbfcdx1.c b/src/rdd/dbfcdx/dbfcdx1.c index d82514011a..d2020fd98a 100644 --- a/src/rdd/dbfcdx/dbfcdx1.c +++ b/src/rdd/dbfcdx/dbfcdx1.c @@ -3476,6 +3476,7 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) if( pTag->RootBlock == 0 || pTag->RootBlock % CDX_PAGELEN != 0 || ( HB_FOFFSET ) pTag->RootBlock >= hb_fileSize( pTag->pIndex->pFile ) || HB_GET_LE_UINT16( tagHeader.keySize ) > CDX_MAXKEY || + uiKeyLen + uiForLen > CDX_HEADEREXPLEN || uiForPos + uiForLen > CDX_HEADEREXPLEN || uiKeyPos + uiKeyLen > CDX_HEADEREXPLEN || ( uiKeyPos < uiForPos ? ( uiKeyPos + uiKeyLen > uiForPos && tagHeader.keyExpPool[ uiForPos ] ) : @@ -3486,6 +3487,8 @@ static void hb_cdxTagLoad( LPCDXTAG pTag ) } /* some wrong RDDs do not set expression length this is workaround for them */ + if( uiKeyPos == 0 && uiKeyLen != 0 && uiForPos == 0 && uiForLen != 0 ) + uiForPos = uiKeyLen; if( ! uiKeyLen ) uiKeyLen = ( uiForPos >= uiKeyPos ? uiForPos : CDX_HEADEREXPLEN ) - uiKeyPos; if( ! uiForLen ) diff --git a/tests/video.prg b/tests/video.prg index 6ed78bdd9a..9a503c4873 100644 --- a/tests/video.prg +++ b/tests/video.prg @@ -10,14 +10,22 @@ /* UTF-8 */ #include "box.ch" +#ifdef __HARBOUR__ + #include "hbgtinfo.ch" +#endif -#ifndef __CLIP__ - #ifdef FlagShip - #xtranslate hb_SecondsCPU( [] ) => SecondsCPU( [] ) - #else - #ifndef __HARBOUR__ - #xtranslate hb_SecondsCPU( [] ) => Seconds( [] ) - #endif +#ifdef __CLIP__ + #xtranslate hb_SecondsCPU( [] ) => SecondsCPU( [] ) +#endif +#ifdef FlagShip + #xtranslate hb_SecondsCPU( [] ) => SecondsCPU( [] ) +#endif +#ifdef __XHARBOUR__ + #xtranslate hb_SecondsCPU( [] ) => SecondsCPU( [] ) + #undef __HARBOUR__ +#else + #ifndef __HARBOUR__ + #xtranslate hb_SecondsCPU( [] ) => Seconds( [] ) #endif #endif @@ -37,10 +45,18 @@ STATIC s_nDispCount := 0 #endif -PROCEDURE Main() +PROCEDURE Main( xUtf, xCompatBuf ) LOCAL aResult := {} +#ifdef __HARBOUR__ + hb_cdpSelect( iif( !Empty( xUtf ), "UTF8", "EN" ) ) + hb_gtInfo( HB_GTI_BOXCP, hb_cdpSelect() ) + hb_gtInfo( HB_GTI_COMPATBUFFER, !Empty( xCompatBuf ) ) + ? "codepage:", hb_cdpSelect(), "box CP:", hb_gtInfo( HB_GTI_BOXCP ), ; + "compat buffer:", hb_gtInfo( HB_GTI_COMPATBUFFER ) +#endif + Initialise() // Initialise Screen Display // Perform Tests