2009-06-25 02:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* INSTALL
  * make_gnu.bat
    + Added support for Cygwin builds (passes call to make_gnu.sh).
    + Added Cygwin build starter example.
    + Cygwin mentioned as a requirement for mingwarm builds,
      also added to PATH.
    ! Fixed cygwin autodetection.
    ! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
    * Merged mingw+msys and cygwin bash based build methods,
      and titled as "alternate" method.
      Now all supported compilers work by starting up make_gnu.bat.

  * utils/hbmk2/hbmk2.prg
    ! Change compiler autodetection to work for cygwin.

  * mpkg_dos.bat
  * mpkg_win.bat
  * make_gnu.bat
    ! Fixed build process to work in paths containing spaces.
      I didn't test the batch in pure DOS, so I may have broken it.

  * config/win/install.cf
  * config/wce/install.cf
    ! Fixed 'install' to work when there is a space in install path.

  * make_gnu.bat
  * INSTALL
    + Added support for HB_BUILD_LOG envvar. If set to 'yes',
      it will automatically set log output filename to:
         'log-<arch>-<comp>.txt'
      if set to 'no' it will no make any extra redirection,
      if set to any other value, it will be used for output
      (both std and err). The batch will set HB_BUILD_LOGFILE
      to the filename used for output for processing.
      This feature requires Windows NT or upper host.
      I didn't enable this feature yet by default to not break
      existing user setups, but maybe I'll do it before the
      final release.
    * Modified text shown (+ beep thrown) when build failed.
    * Messages now all start with 'Harbour'.
    * Do not do the second build pass if the first one failed.

  * contrib/hbwin/legacy.prg
    ! Fixed CreateObject() not working due to typo.
      Thanks to Itamar Lins for the report.

  * mpkg_dos.bat
  * mpkg_win.bat
  * mpkg_win.nsi
    + Enabled HB_BUILD_LOG=yes.
    * Silenced copy, zip, makensis commands.
    + Added message about failed build process.
    * Changed to use 'copy' instead of 'xcopy'
    * Changed internals so now they don't require HB_COMPILER
      and HB_ARCHITECTURE to be set. This means that now
      we can rely on autodetection even for mpkg_*.bat files.
      Creating an installer is very easy now for most cases.
      Just type:
         mpkg_gnu.bat

  * source/vm/set.c
    + Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
      is set to .T.. This is the default which means by default we aren't
      CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.

  * source/rdd/dbf1.c
    ! Minor typo in comment.

  * doc/en-EN/hb_apiit.txt
  * include/hbapi.h
  * include/hbapiitm.h
  * source/vm/itemapi.c
  * source/vm/extend.c
  * source/rtl/gtwvt/gtwvt.c
  * source/rdd/dbf1.c
  * contrib/gtqtc/gtqtc.cpp
  * contrib/gtwvg/gtwvg.c
  * contrib/gtwvg/wvggui.c
  * contrib/hbwin/olecore.c
  * examples/hboleold/win_ole.c
    * Finishing long planned function renames to clear up
      a very (10 years) old naming inconsistency.
      To adapt you code to this, please do changes below:
         1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
         2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
      Unmodified code will generate compile time errors, so it's easy
      to spot where the modifications need to be done. For most users,
      only case 1) will need to be dealt with.
    ; INCOMPATIBLE. Please update your code.

  * source/rtl/hbi18n1.c
  * source/rdd/dbfnsx/dbfnsx1.c
    * hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()

  * contrib/gtwvg/wvggui.c
  * contrib/gtqtc/gtqtc.cpp
    ! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
      parameter.
This commit is contained in:
Viktor Szakats
2009-06-26 01:11:11 +00:00
parent c3e1436da0
commit 340fc1f1de
25 changed files with 291 additions and 137 deletions

View File

@@ -17,6 +17,106 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-06-25 02:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
* make_gnu.bat
+ Added support for Cygwin builds (passes call to make_gnu.sh).
+ Added Cygwin build starter example.
+ Cygwin mentioned as a requirement for mingwarm builds,
also added to PATH.
! Fixed cygwin autodetection.
! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
* Merged mingw+msys and cygwin bash based build methods,
and titled as "alternate" method.
Now all supported compilers work by starting up make_gnu.bat.
* utils/hbmk2/hbmk2.prg
! Change compiler autodetection to work for cygwin.
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
! Fixed build process to work in paths containing spaces.
I didn't test the batch in pure DOS, so I may have broken it.
* config/win/install.cf
* config/wce/install.cf
! Fixed 'install' to work when there is a space in install path.
* make_gnu.bat
* INSTALL
+ Added support for HB_BUILD_LOG envvar. If set to 'yes',
it will automatically set log output filename to:
'log-<arch>-<comp>.txt'
if set to 'no' it will no make any extra redirection,
if set to any other value, it will be used for output
(both std and err). The batch will set HB_BUILD_LOGFILE
to the filename used for output for processing.
This feature requires Windows NT or upper host.
I didn't enable this feature yet by default to not break
existing user setups, but maybe I'll do it before the
final release.
* Modified text shown (+ beep thrown) when build failed.
* Messages now all start with 'Harbour'.
* Do not do the second build pass if the first one failed.
* contrib/hbwin/legacy.prg
! Fixed CreateObject() not working due to typo.
Thanks to Itamar Lins for the report.
* mpkg_dos.bat
* mpkg_win.bat
* mpkg_win.nsi
+ Enabled HB_BUILD_LOG=yes.
* Silenced copy, zip, makensis commands.
+ Added message about failed build process.
* Changed to use 'copy' instead of 'xcopy'
* Changed internals so now they don't require HB_COMPILER
and HB_ARCHITECTURE to be set. This means that now
we can rely on autodetection even for mpkg_*.bat files.
Creating an installer is very easy now for most cases.
Just type:
mpkg_gnu.bat
* source/vm/set.c
+ Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
is set to .T.. This is the default which means by default we aren't
CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.
* source/rdd/dbf1.c
! Minor typo in comment.
* doc/en-EN/hb_apiit.txt
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/extend.c
* source/rtl/gtwvt/gtwvt.c
* source/rdd/dbf1.c
* contrib/gtqtc/gtqtc.cpp
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/hbwin/olecore.c
* examples/hboleold/win_ole.c
* Finishing long planned function renames to clear up
a very (10 years) old naming inconsistency.
To adapt you code to this, please do changes below:
1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
Unmodified code will generate compile time errors, so it's easy
to spot where the modifications need to be done. For most users,
only case 1) will need to be dealt with.
; INCOMPATIBLE. Please update your code.
* source/rtl/hbi18n1.c
* source/rdd/dbfnsx/dbfnsx1.c
* hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
* contrib/gtwvg/wvggui.c
* contrib/gtqtc/gtqtc.cpp
! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
parameter.
2009-06-26 02:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvm.h
* harbour/include/hbrdddbf.h

View File

@@ -51,7 +51,7 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
3.) GNU Make is included in the source package. No configuration
is needed.
> set HB_COMPILER=<mingw|msvc|watcom|bcc|pocc|...>
> set HB_COMPILER=<mingw|msvc|watcom|bcc|pocc|cygwin|...>
> set HB_INSTALL_PREFIX=<DIR>
> make_gnu.bat install
@@ -67,12 +67,11 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
results will be created under the current directory tree.
- With mingw, sh.exe (part of MSYS) mustn't be in the PATH.
Windows with MinGW + MSYS
-------------------------
(for plain MinGW *without* MSYS, which is the recommended way: see above)
Windows with MinGW + MSYS or Cygwin
-----------------------------------
Make sure to have MSYS and MinGW properly configured.
MSYS should be put in PATH *before* MinGW.
This is an *alternative build method* using bash script directly.
For the primary and recommended method: see above
> set HB_INSTALL_PREFIX=<DIR>
> sh make_gnu.sh install
@@ -82,19 +81,9 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
> hello
You should see 'Hello world!' on screen.
Windows with Cygwin
-------------------
Make sure to have Cygwin properly configured.
> set HB_INSTALL_PREFIX=<DIR>
> sh make_gnu.sh install
To test it, go to <DIR>/bin directory and type:
> hbmk2 ../tests/hello.prg
> hello
You should see 'Hello world!' on screen.
NOTE: <DIR> should use Cygwin drive notation: /cygdrive/c for C:
NOTES: - With mingw, MSYS must be in PATH *before* MinGW.
- With cygwin, <DIR> should use Cygwin drive
notation: /cygdrive/c for C:
DOS
---
@@ -269,7 +258,12 @@ OPTIONS AVAILABLE WHEN BUILDING HARBOUR
- HB_REBUILD_PARSER=yes To rebuild the language parsers. Typically
you only need this if your are Harbour core
developer modifying the parser.
This requires GNU Bison 1.28 or upper.
This requires GNU Bison 1.28 or upper in PATH.
- HB_BUILD_LOG=[yes|no|<f>] Send stdout and stderr build outputs to <f>
file. Leave it as it is if set to 'no' or left
empty. 'yes' will output to an automatically
formed filename, which you can retrieve from
HB_BUILD_LOGFILE envvar.
Cross building
--------------
@@ -357,8 +351,7 @@ EXAMPLES
---
--- MinGW GCC + MSYS
set PATH=C:\msys\1.0.11\bin;%PATH%
set PATH=C:\mingw\bin;%PATH%
set PATH=C:\msys\1.0.11\bin;C:\mingw\bin;%PATH%
rem
set HB_COMPILER=mingw
set HB_INSTALL_PREFIX=C:\hb-%HB_COMPILER%
@@ -377,8 +370,8 @@ EXAMPLES
call make_gnu.bat %1 %2 > log-%HB_COMPILER%.txt 2>&1
---
--- MinGW GCC for WinCE/ARM (requires native x86 Harbour binaries)
set PATH=C:\mingwce\opt\mingw32ce\bin;%PATH%
--- MinGW GCC for WinCE/ARM (requires native x86 Harbour binaries + Cygwin)
set PATH=C:\mingwce\opt\mingw32ce\bin;C:\cygwin\bin;%PATH%
rem
set HB_BIN_COMPILE=C:\hb-mingw\bin
set HB_PPGEN_PATH=%HB_BIN_COMPILE%
@@ -390,6 +383,14 @@ EXAMPLES
call make_gnu.bat %1 %2 > log-%HB_COMPILER%.txt 2>&1
---
--- Cygwin GCC
set PATH=C:\cygwin\bin
rem
set HB_COMPILER=cygwin
set HB_INSTALL_PREFIX=C:\hb-%HB_COMPILER%
call make_gnu.bat %1 %2 > log-%HB_COMPILER%.txt 2>&1
---
--- Open Watcom C++
SET WATCOM=C:\watcom
SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH%
@@ -517,7 +518,7 @@ EXAMPLES
rem ; To create installation packages (.exe + .zip),
rem replace last line (calling make_gnu.bat) with these two:
set HB_DIR_NSIS=%ProgramFiles%\NSIS\
call mpkg_win.bat > log-%HB_COMPILER%.txt 2>&1
call mpkg_win.bat
-->8--
DOS
@@ -558,8 +559,8 @@ EXAMPLES
--8<--
rem ; To create installation packages (.zip),
rem replace last line (calling make_gnu.bat) with this one:
rem (this will only work when using Windows host)
call mpkg_dos.bat > log-%HB_COMPILER%.txt 2>&1
rem (this will only work when using Windows NT or upper host)
call mpkg_dos.bat
-->8--
OS/2

View File

@@ -15,7 +15,7 @@ INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS))
ifeq ($(CMD_EXE),yes)
# cmd.exe no command line size limit
INSTALL_RULE = \
-$(COMSPEC) /c for %f in ($(INSTALL_LIST)) do copy %f $(subst /,\,$(INSTALL_DIR))
-$(COMSPEC) /c for %%f in ($(INSTALL_LIST)) do copy "%%f" "$(subst /,\,$(INSTALL_DIR))"
else
# We have to use script to overcome the DOS limit of max 128 characters
# NOTE: The empty line directly before 'endef' HAVE TO exist!

View File

@@ -15,7 +15,7 @@ INSTALL_LIST = $(subst /,\,$(INSTALL_OBJS))
ifeq ($(CMD_EXE),yes)
# cmd.exe no command line size limit
INSTALL_RULE = \
-$(COMSPEC) /c for %f in ($(INSTALL_LIST)) do copy %f $(subst /,\,$(INSTALL_DIR))
-$(COMSPEC) /c for %%f in ($(INSTALL_LIST)) do copy "%%f" "$(subst /,\,$(INSTALL_DIR))"
else
# We have to use script to overcome the DOS limit of max 128 characters
# NOTE: The empty line directly before 'endef' HAVE TO exist!

View File

@@ -1023,7 +1023,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
case HB_GTI_WINTITLE:
if( pWVT->qWnd )
{
pInfo->pResult = hb_itemPutCPtr2( pInfo->pResult, pWVT->qWnd->windowTitle().toLatin1().data() );
pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, pWVT->qWnd->windowTitle().toLatin1().data() );
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )
pWVT->qWnd->setWindowTitle( hb_itemGetCPtr( pInfo->pNewVal ) );
}
@@ -1100,21 +1100,24 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
int iX, iY;
if( !pInfo->pResult )
{
pInfo->pResult = hb_itemNew( NULL );
}
hb_arrayNew( pInfo->pResult, 2 );
hb_arraySetNI( pInfo->pResult, 2, pWVT->PTEXTSIZE.y() * pWVT->ROWS );
hb_arraySetNI( pInfo->pResult, 1, pWVT->PTEXTSIZE.x() * pWVT->COLS );
iY = hb_arrayGetNI( pInfo->pNewVal,2 );
iX = hb_arrayGetNI( pInfo->pNewVal,1 );
if( iY > 0 )
if( ( hb_itemType( pInfo->pNewVal ) & HB_IT_ARRAY ) && hb_arrayLen( pInfo->pNewVal ) == 2 )
{
bool bOldCentre = pWVT->CenterWindow;
pWVT->CenterWindow = pWVT->bMaximized ? TRUE : FALSE;
HB_GTSELF_SETMODE( pGT, ( USHORT ) ( iY / pWVT->PTEXTSIZE.y() ), ( USHORT ) ( iX / pWVT->PTEXTSIZE.x() ) );
pWVT->CenterWindow = bOldCentre;
iY = hb_arrayGetNI( pInfo->pNewVal,2 );
iX = hb_arrayGetNI( pInfo->pNewVal,1 );
if( iY > 0 )
{
bool bOldCentre = pWVT->CenterWindow;
pWVT->CenterWindow = pWVT->bMaximized ? TRUE : FALSE;
HB_GTSELF_SETMODE( pGT, ( USHORT ) ( iY / pWVT->PTEXTSIZE.y() ), ( USHORT ) ( iX / pWVT->PTEXTSIZE.x() ) );
pWVT->CenterWindow = bOldCentre;
}
}
break;
@@ -2765,5 +2768,3 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
}
#endif
/*----------------------------------------------------------------------*/

View File

@@ -2999,7 +2999,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
char * szTitle = NULL;
if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &szTitle ) )
pInfo->pResult = hb_itemPutCPtr2( pInfo->pResult, szTitle );
pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, szTitle );
else
pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL );
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )
@@ -3011,7 +3011,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
pInfo->pResult = hb_itemPutNI( pInfo->pResult, pWVT->CodePage );
if( hb_itemType( pInfo->pNewVal ) & HB_IT_NUMERIC )
{
iVal = hb_itemGetNI( pInfo->pNewVal );
iVal = hb_itemGetNI( pInfo->pNewVal );
if( iVal != pWVT->CodePage )
{
if( !pWVT->hWnd )

View File

@@ -1630,7 +1630,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
char * szTitle = NULL;
if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &szTitle ) )
pInfo->pResult = hb_itemPutCPtr2( pInfo->pResult, szTitle );
pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, szTitle );
else
pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL );
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )
@@ -1776,12 +1776,13 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
GetClientRect( pWVT->hWnd, &rc );
if( !pInfo->pResult )
{
pInfo->pResult = hb_itemNew( NULL );
}
hb_arrayNew( pInfo->pResult, 2 );
hb_arraySetNI( pInfo->pResult, 2, rc.bottom - rc.top );
hb_arraySetNI( pInfo->pResult, 1, rc.right - rc.left );
if( ( hb_itemType( pInfo->pNewVal ) & HB_IT_ARRAY ) && hb_arrayLen( pInfo->pNewVal ) == 2 )
{
int iX, iY;
iY = hb_arrayGetNI( pInfo->pNewVal,2 );

View File

@@ -110,7 +110,7 @@ METHOD New( xOle, cClass ) CLASS TOLEAUTO
ENDIF
ELSEIF ISCHARACTER( xOle )
hOle := __OleCreateObject( xOle )
IF Empty( hOle )
IF ! Empty( hOle )
::__hObj := hOle
::cClassName := xOle
ELSE

View File

@@ -294,7 +294,7 @@ void hb_oleVariantToItem( PHB_ITEM pItem, VARIANT* pVariant )
case VT_BSTR:
{
char* szString = WideToAnsi( pVariant->n1.n2.n3.bstrVal );
hb_itemPutCPtr2( pItem, szString );
hb_itemPutCPtr( pItem, szString );
break;
}
@@ -602,11 +602,11 @@ HB_FUNC( __OLEENUMCREATE ) /* ( __hObj ) */
if( lOleError == S_OK )
{
if( variant.n1.n2.vt == VT_UNKNOWN )
lOleError = HB_VTBL( variant.n1.n2.n3.punkVal )->QueryInterface(
lOleError = HB_VTBL( variant.n1.n2.n3.punkVal )->QueryInterface(
HB_THIS_( variant.n1.n2.n3.punkVal )
HB_ID_REF( IID_IEnumVARIANT ), ( void** ) ( void * ) &pEnum );
else if( variant.n1.n2.vt == VT_DISPATCH )
lOleError = HB_VTBL( variant.n1.n2.n3.pdispVal )->QueryInterface(
lOleError = HB_VTBL( variant.n1.n2.n3.pdispVal )->QueryInterface(
HB_THIS_( variant.n1.n2.n3.pdispVal )
HB_ID_REF( IID_IEnumVARIANT ), ( void** ) ( void * ) &pEnum );
else
@@ -689,7 +689,7 @@ HB_FUNC( WIN_OLEERRORTEXT )
case DISP_E_TYPEMISMATCH: hb_retc_const( "DISP_E_TYPEMISMATCH" ); break;
case DISP_E_UNKNOWNINTERFACE: hb_retc_const( "DISP_E_UNKNOWNINTERFACE" ); break;
case DISP_E_PARAMNOTOPTIONAL: hb_retc_const( "DISP_E_PARAMNOTOPTIONAL" ); break;
default:
default:
{
char buf[ 16 ];
@@ -762,7 +762,7 @@ HB_FUNC( WIN_OLEAUTO___ONERROR )
/* Try property get and invoke */
pMemberArray = szMethodWide;
lOleError = HB_VTBL( pDisp )->GetIDsOfNames( HB_THIS_( pDisp ) HB_ID_REF( IID_NULL ),
lOleError = HB_VTBL( pDisp )->GetIDsOfNames( HB_THIS_( pDisp ) HB_ID_REF( IID_NULL ),
&pMemberArray, 1, LOCALE_USER_DEFAULT, &dispid );
hb_xfree( szMethodWide );

View File

@@ -947,7 +947,7 @@
/* $DOC$
* $FUNCNAME$
* hb_itemPutCPtr2()
* hb_itemPutCPtr()
* $CATEGORY$
* Item API
* $ONELINER$
@@ -956,7 +956,7 @@
* C Prototype
*
* #include <hbapiitm.h>
* hb_itemPutCPtr2( PHB_ITEM pItem, char * szText ) --> ( PHB_ITEM )pResult
* hb_itemPutCPtr( PHB_ITEM pItem, char * szText ) --> ( PHB_ITEM )pResult
* $ARGUMENTS$
* <pItem>
*
@@ -2074,4 +2074,3 @@
*
* $END$
*/

View File

@@ -718,12 +718,12 @@ static void FreeParams( DISPPARAMS *pDispParams, PHB_ITEM *aPrgParams )
case VT_BYREF | VT_BSTR:
SysFreeString( *pVariant->n1.n2.n3.pbstrVal );
sString = hb_oleWideToAnsi( *( pVariant->n1.n2.n3.pbstrVal ) );
hb_itemPutCPtr2( pItem, sString );
hb_itemPutCPtr( pItem, sString );
break;
case VT_BSTR:
sString = hb_oleWideToAnsi( pVariant->n1.n2.n3.bstrVal );
hb_itemPutCPtr2( pItem, sString );
hb_itemPutCPtr( pItem, sString );
break;
case VT_BYREF | VT_BOOL:
@@ -1033,7 +1033,7 @@ HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant )
sString = hb_oleWideToAnsi( pVariant->n1.n2.n3.bstrVal );
if( sString )
hb_itemPutCPtr2( pItem, sString );
hb_itemPutCPtr( pItem, sString );
else
hb_itemPutC( pItem, NULL );

View File

@@ -697,7 +697,7 @@ extern HB_EXPORT void hb_retnlllen( LONGLONG lNumber, int iWidth ); /* returns
#define hb_reta( ulLen ) hb_arrayNew( hb_stackReturnItem(), ulLen )
#define hb_retc( szText ) hb_itemPutC( hb_stackReturnItem(), szText )
#define hb_retc_null() hb_itemPutC( hb_stackReturnItem(), NULL )
#define hb_retc_buffer( szText ) hb_itemPutCPtr2( hb_stackReturnItem(), szText )
#define hb_retc_buffer( szText ) hb_itemPutCPtr( hb_stackReturnItem(), szText )
#define hb_retc_const( szText ) hb_itemPutCConst( hb_stackReturnItem(), szText )
#define hb_retclen( szText, ulLen ) hb_itemPutCL( hb_stackReturnItem(), szText, ulLen )
#define hb_retclen_buffer( szText, ulLen ) hb_itemPutCLPtr( hb_stackReturnItem(), szText, ulLen )

View File

@@ -110,8 +110,7 @@ extern HB_EXPORT PHB_ITEM hb_itemPutC ( PHB_ITEM pItem, const char * sz
extern HB_EXPORT PHB_ITEM hb_itemPutCL ( PHB_ITEM pItem, const char * szText, ULONG ulLen );
extern HB_EXPORT PHB_ITEM hb_itemPutCConst ( PHB_ITEM pItem, const char * szText );
extern HB_EXPORT PHB_ITEM hb_itemPutCLConst( PHB_ITEM pItem, const char * szText, ULONG ulLen );
extern HB_EXPORT PHB_ITEM hb_itemPutCPtr2 ( PHB_ITEM pItem, char * szText );
extern HB_EXPORT PHB_ITEM hb_itemPutCPtr ( PHB_ITEM pItem, char * szText, ULONG ulLen );
extern HB_EXPORT PHB_ITEM hb_itemPutCPtr ( PHB_ITEM pItem, char * szText );
extern HB_EXPORT PHB_ITEM hb_itemPutCLPtr ( PHB_ITEM pItem, char * szText, ULONG ulLen );
extern HB_EXPORT void hb_itemSetCMemo ( PHB_ITEM pItem );
extern HB_EXPORT PHB_ITEM hb_itemPutD ( PHB_ITEM pItem, int iYear, int iMonth, int iDay );

View File

@@ -34,11 +34,11 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
if "%HB_DOC_INSTALL%" == "" set HB_DOC_INSTALL=%HB_INSTALL_PREFIX%\doc
rem Create install dirs
if not exist %HB_BIN_INSTALL%\*.* md %HB_BIN_INSTALL%
if not exist %HB_LIB_INSTALL%\*.* md %HB_LIB_INSTALL%
if not exist %HB_INC_INSTALL%\*.* md %HB_INC_INSTALL%
if not exist %HB_DOC_INSTALL%\*.* md %HB_DOC_INSTALL%
if not exist %HB_DOC_INSTALL%\en-EN\*.* md %HB_DOC_INSTALL%\en-EN
if not exist "%HB_BIN_INSTALL%\*.*" md "%HB_BIN_INSTALL%"
if not exist "%HB_LIB_INSTALL%\*.*" md "%HB_LIB_INSTALL%"
if not exist "%HB_INC_INSTALL%\*.*" md "%HB_INC_INSTALL%"
if not exist "%HB_DOC_INSTALL%\*.*" md "%HB_DOC_INSTALL%"
if not exist "%HB_DOC_INSTALL%\en-EN\*.*" md "%HB_DOC_INSTALL%\en-EN"
goto MAKE
@@ -48,6 +48,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
if not "%OS%" == "Windows_NT" goto HELP
rem Order is significant
call :COMP_DET_ONE cygstart.exe cygwin win
call :COMP_DET_ONE gcc.exe mingw win
call :COMP_DET_ONE wpp386.exe watcom win
call :COMP_DET_ONE ml64.exe msvc64 win
@@ -56,7 +57,6 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
call :COMP_DET_ONE bcc32.exe bcc win
call :COMP_DET_ONE porc64.exe pocc64 win
call :COMP_DET_ONE pocc.exe pocc win
call :COMP_DET_ONE cygstart.exe cygwin win
call :COMP_DET_ONE xcc.exe xcc win
call :COMP_DET_ONE x86_64-w64-mingw32-gcc.exe mingw64 win x86_64-w64-mingw32-
call :COMP_DET_ONE arm-wince-mingw32ce-gcc.exe mingwarm wce arm-wince-mingw32ce-
@@ -64,9 +64,9 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
if "%HB_COMPILER%" == "" ( echo HB_COMPILER couldn't be automatically determined. && goto HELP )
echo Autodetected HB_COMPILER: %HB_COMPILER%
echo Autodetected HB_ARCHITECTURE: %HB_ARCHITECTURE%
if not "%HB_CCPREFIX%" == "" echo Autodetected HB_CCPREFIX: %HB_CCPREFIX%
echo Harbour HB_COMPILER autodetected: '%HB_COMPILER%'
echo Harbour HB_ARCHITECTURE autodetected: '%HB_ARCHITECTURE%'
if not "%HB_CCPREFIX%" == "" echo Harbour HB_CCPREFIX autodetected: '%HB_CCPREFIX%'
goto CONTINUE_MAKE
@@ -86,12 +86,12 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
:BAD_ARCH
echo Error: HB_ARCHITECTURE is not set.
echo Harbour: Error: HB_ARCHITECTURE not set.
goto HELP
:BAD_COMP
echo Error: HB_COMPILER is not set.
echo Harbour: Error: HB_COMPILER not set.
goto HELP
:MAKE
@@ -101,6 +101,20 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
set HARBOUR=
set CLIPPER=
rem ---------------------------------------------------------------
rem Setup output log
set _HB_BUILD_LOG=
set HB_BUILD_LOGFILE=
if not "%HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=%HB_BUILD_LOG%
: if "%HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=log-%HB_ARCHITECTURE%-%HB_COMPILER%.txt
if "%_HB_BUILD_LOG%" == "yes" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=log-%HB_ARCHITECTURE%-%HB_COMPILER%.txt
if "%_HB_BUILD_LOG%" == "no" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set HB_BUILD_LOGFILE=%_HB_BUILD_LOG%
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" echo Harbour build output to: '%_HB_BUILD_LOG%'
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" if exist "%_HB_BUILD_LOG%" del "%_HB_BUILD_LOG%"
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=^>^> %_HB_BUILD_LOG% 2^>^&1
rem ---------------------------------------------------------------
rem Detect name of GNU Make
rem
@@ -150,7 +164,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
if "%HB_COMPILER%" == "mingw" goto DO_GCC
if "%HB_COMPILER%" == "mingw64" goto DO_GCC
if "%HB_COMPILER%" == "mingwarm" goto DO_GCC
if "%HB_COMPILER%" == "cygwin" goto DO_GCC
if "%HB_COMPILER%" == "cygwin" goto DO_GCC_CYG
set _HB_CONTRIBLIBS=%HB_CONTRIBLIBS%
set _HB_CONTRIB_ADDONS=%HB_CONTRIB_ADDONS%
@@ -161,8 +175,9 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
set HB_CONTRIB_ADDONS=
set HB_EXTERNALLIBS=no
set HB_EXTERNAL_ADDONS=
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 echo GNU Make returned: %ERRORLEVEL%
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
if errorlevel 1 goto MAKE_DONE
set HB_DYNLIB=no
set HB_CONTRIBLIBS=%_HB_CONTRIBLIBS%
set HB_CONTRIB_ADDONS=%_HB_CONTRIB_ADDONS%
@@ -172,21 +187,36 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
set _HB_CONTRIB_ADDONS=
set _HB_EXTERNALLIBS=
set _HB_EXTERNAL_ADDONS=
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 echo GNU Make returned: %ERRORLEVEL%
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:DO_GCC
set HB_DYNLIB=no
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 echo GNU Make returned: %ERRORLEVEL%
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:DO_GCC_CYG
set HB_DYNLIB=no
sh make_gnu.sh clean install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:SKIP_WINDLL
%_HB_MAKE% %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
if errorlevel 1 echo GNU Make returned: %ERRORLEVEL%
if "%HB_COMPILER%" == "cygwin" goto SKIP_WINDLL_CYG
%_HB_MAKE% %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:SKIP_WINDLL_CYG
sh make_gnu.sh %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:MAKE_DONE
@@ -194,6 +224,7 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
set _HB_MAKE=
set HARBOUR=%_HB_HARBOUR_OLD%
set CLIPPER=%_HB_CLIPPER_OLD%
set _HB_BUILD_LOG=
set _HB_HARBOUR_OLD=
set _HB_CLIPPER_OLD=
goto END

View File

@@ -24,50 +24,59 @@ if not "%OS%" == "Windows_NT" goto END
setlocal
rem ; Basic setup
set HB_VERSION=200
if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=dos
set HB_PKGNAME=hb%HB_VERSION%%HB_COMPILER:~0,2%
set HB_DIRNAME=%HB_PKGNAME%
set HB_VERSION=2b2
rem ; Dir setup
set HB_INSTALL_BASE=%~dp0_hb_inst
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\_pending
set HB_BIN_INSTALL=
set HB_LIB_INSTALL=
set HB_INC_INSTALL=
set HB_DOC_INSTALL=
rem ; Pre-build cleanup
if exist %HB_INSTALL_PREFIX% rmdir /q /s %HB_INSTALL_PREFIX%
if exist "%HB_INSTALL_PREFIX%" rmdir /q /s "%HB_INSTALL_PREFIX%"
rem ; Option setup
set HB_BUILD_LOG=yes
set HB_BUILD_OPTIM=yes
set HB_BUILD_DEBUG=no
rem ; Build Harbour
call make_gnu.bat clean install
call "%~dp0make_gnu.bat" clean install
if errorlevel 1 echo Harbour build returned: %ERRORLEVEL%
rem if errorlevel 1 goto MK_ERROR
rem ; Final name setup
set HB_PKGNAME=hb%HB_VERSION%%HB_COMPILER:~0,2%
set HB_DIRNAME=%HB_PKGNAME%
rem ; Rename temp dir to final name
if exist "%HB_INSTALL_BASE%\%HB_DIRNAME%" rmdir /q /s "%HB_INSTALL_BASE%\%HB_DIRNAME%"
move "%HB_INSTALL_PREFIX%" "%HB_INSTALL_BASE%\%HB_DIRNAME%" > nul
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
rem ; Post-build installation
xcopy /D /Y ChangeLog* "%HB_INSTALL_PREFIX%\"
xcopy /D /Y COPYING "%HB_INSTALL_PREFIX%\"
xcopy /D /Y ERRATA "%HB_INSTALL_PREFIX%\"
xcopy /D /Y INSTALL "%HB_INSTALL_PREFIX%\"
xcopy /D /Y TODO "%HB_INSTALL_PREFIX%\"
copy /Y ChangeLog* "%HB_INSTALL_PREFIX%\" > nul
copy /Y COPYING "%HB_INSTALL_PREFIX%\" > nul
copy /Y ERRATA "%HB_INSTALL_PREFIX%\" > nul
copy /Y INSTALL "%HB_INSTALL_PREFIX%\" > nul
copy /Y TODO "%HB_INSTALL_PREFIX%\" > nul
rem ; Build .zip package
if exist %HB_PKGNAME%.zip del %HB_PKGNAME%.zip
echo Harbour .zip install package creation: '%HB_PKGNAME%.zip'
if exist "%HB_PKGNAME%.zip" del "%HB_PKGNAME%.zip"
pushd
cd %HB_INSTALL_BASE%
zip -9 -X -r -o %~dp0%HB_PKGNAME%.zip . -i %HB_DIRNAME%\*
cd "%HB_INSTALL_BASE%"
zip -q -9 -X -r -o "%~dp0%HB_PKGNAME%.zip" . -i "%HB_DIRNAME%\*"
popd
:MK_ERROR
rem ; Cleanup
if "%1" == "--deltemp" rmdir /q /s %HB_INSTALL_PREFIX%
if "%1" == "--deltemp" rmdir /q %HB_INSTALL_BASE%
if "%1" == "--deltemp" rmdir /q /s "%HB_INSTALL_PREFIX%"
if "%1" == "--deltemp" rmdir /q "%HB_INSTALL_BASE%"
endlocal

View File

@@ -29,59 +29,69 @@ setlocal
rem ; Basic setup
set HB_VERSION=2.0.0beta2
if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=win
set HB_PKGNAME=harbour-%HB_VERSION%-%HB_ARCHITECTURE%-%HB_COMPILER%
set HB_DIRNAME=harbour-%HB_ARCHITECTURE%-%HB_COMPILER%
rem ; Dir setup
set HB_INSTALL_BASE=%~dp0_hb_inst
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\_pending
set HB_BIN_INSTALL=
set HB_LIB_INSTALL=
set HB_INC_INSTALL=
set HB_DOC_INSTALL=
rem ; Pre-build cleanup
if exist %HB_INSTALL_PREFIX% rmdir /q /s %HB_INSTALL_PREFIX%
if exist "%HB_INSTALL_PREFIX%" rmdir /q /s "%HB_INSTALL_PREFIX%"
rem ; Option setup
set HB_BUILD_LOG=yes
set HB_BUILD_DLL=yes
set HB_BUILD_OPTIM=yes
set HB_BUILD_DEBUG=no
set HB_BUILD_IMPLIB=no
rem ; Build Harbour
call make_gnu.bat
call "%~dp0make_gnu.bat"
if errorlevel 1 echo Harbour build returned: %ERRORLEVEL%
rem if errorlevel 1 goto MK_ERROR
rem ; Final name setup
set HB_PKGNAME=harbour-%HB_VERSION%-%HB_ARCHITECTURE%-%HB_COMPILER%
set HB_DIRNAME=harbour-%HB_ARCHITECTURE%-%HB_COMPILER%
rem ; Rename temp dir to final name
if exist "%HB_INSTALL_BASE%\%HB_DIRNAME%" rmdir /q /s "%HB_INSTALL_BASE%\%HB_DIRNAME%"
move "%HB_INSTALL_PREFIX%" "%HB_INSTALL_BASE%\%HB_DIRNAME%" > nul
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
rem ; Post-build cleanup
if exist "%HB_BIN_INSTALL%\*.tds" del "%HB_BIN_INSTALL%\*.tds"
if exist "%HB_BIN_INSTALL%\*.lib" del "%HB_BIN_INSTALL%\*.lib"
if exist "%HB_BIN_INSTALL%\*.exp" del "%HB_BIN_INSTALL%\*.exp"
rem ; Post-build installation
xcopy /D /Y ChangeLog* "%HB_INSTALL_PREFIX%\"
xcopy /D /Y COPYING "%HB_INSTALL_PREFIX%\"
xcopy /D /Y ERRATA "%HB_INSTALL_PREFIX%\"
xcopy /D /Y INSTALL "%HB_INSTALL_PREFIX%\"
xcopy /D /Y TODO "%HB_INSTALL_PREFIX%\"
copy /Y ChangeLog* "%HB_INSTALL_PREFIX%\" > nul
copy /Y COPYING "%HB_INSTALL_PREFIX%\" > nul
copy /Y ERRATA "%HB_INSTALL_PREFIX%\" > nul
copy /Y INSTALL "%HB_INSTALL_PREFIX%\" > nul
copy /Y TODO "%HB_INSTALL_PREFIX%\" > nul
rem ; Build .zip package
if exist %HB_PKGNAME%.zip del %HB_PKGNAME%.zip
echo Harbour .zip install package creation: '%HB_PKGNAME%.zip'
if exist "%HB_PKGNAME%.zip" del "%HB_PKGNAME%.zip"
pushd
cd %HB_INSTALL_BASE%
zip -9 -X -r -o %~dp0%HB_PKGNAME%.zip . -i %HB_DIRNAME%\*
cd "%HB_INSTALL_BASE%"
zip -q -9 -X -r -o "%~dp0%HB_PKGNAME%.zip" . -i "%HB_DIRNAME%\*"
popd
rem ; Build installer package
"%HB_DIR_NSIS%makensis.exe" %~dp0mpkg_win.nsi
echo Harbour .exe install package creation: '%HB_PKGNAME%.exe'
"%HB_DIR_NSIS%makensis.exe" /V2 "%~dp0mpkg_win.nsi"
:MK_ERROR
rem ; Cleanup
if "%1" == "--deltemp" rmdir /q /s %HB_INSTALL_PREFIX%
if "%1" == "--deltemp" rmdir /q %HB_INSTALL_BASE%
if "%1" == "--deltemp" rmdir /q /s "%HB_INSTALL_PREFIX%"
if "%1" == "--deltemp" rmdir /q "%HB_INSTALL_BASE%"
endlocal

View File

@@ -81,16 +81,16 @@ Section "Main components" hb_main
File /nonfatal "$%HB_INSTALL_PREFIX%\ChangeLog*"
SetOutPath $INSTDIR\bin
File "$%HB_BIN_INSTALL%\*.*"
File "$%HB_INSTALL_PREFIX%\bin\*.*"
SetOutPath $INSTDIR\lib
File "$%HB_LIB_INSTALL%\*.*"
File /r "$%HB_INSTALL_PREFIX%\lib\*.*"
SetOutPath $INSTDIR\include
File "$%HB_INC_INSTALL%\*.*"
File "$%HB_INSTALL_PREFIX%\include\*.*"
SetOutPath $INSTDIR\doc
File /r "$%HB_DOC_INSTALL%\*.*"
File /r "$%HB_INSTALL_PREFIX%\doc\*.*"
; Write the installation path into the registry
; WriteRegStr HKLM "Software\Harbour" "Install_Dir" "$INSTDIR"

View File

@@ -2728,7 +2728,7 @@ static HB_ERRCODE hb_dbfClose( DBFAREAP pArea )
SELF_WRITEDBHEADER( ( AREAP ) pArea );
/* It's not Clipper compatible but it reduces the problem with
byggy Windows network setting */
buggy Windows network setting */
if( hb_setGetHardCommit() )
SELF_FLUSH( ( AREAP ) pArea );
}
@@ -5630,7 +5630,7 @@ static HB_ERRCODE hb_dbfRddInfo( LPRDDNODE pRDD, USHORT uiIndex, ULONG ulConnect
}
if( fFree && szTrigger )
hb_itemPutCPtr2( pItem, szTrigger );
hb_itemPutCPtr( pItem, szTrigger );
else
hb_itemPutC( pItem, szTrigger );
@@ -5652,7 +5652,7 @@ static HB_ERRCODE hb_dbfRddInfo( LPRDDNODE pRDD, USHORT uiIndex, ULONG ulConnect
}
else if( pData->szPendingTrigger )
{
hb_itemPutCPtr2( pItem, pData->szPendingTrigger );
hb_itemPutCPtr( pItem, pData->szPendingTrigger );
pData->szPendingTrigger = NULL;
}
else
@@ -5672,7 +5672,7 @@ static HB_ERRCODE hb_dbfRddInfo( LPRDDNODE pRDD, USHORT uiIndex, ULONG ulConnect
}
if( fFree && szPasswd )
hb_itemPutCPtr2( pItem, szPasswd );
hb_itemPutCPtr( pItem, szPasswd );
else
hb_itemPutC( pItem, szPasswd );
@@ -5694,7 +5694,7 @@ static HB_ERRCODE hb_dbfRddInfo( LPRDDNODE pRDD, USHORT uiIndex, ULONG ulConnect
}
else if( pData->szPendingPasswd )
{
hb_itemPutCPtr2( pItem, pData->szPendingPasswd );
hb_itemPutCPtr( pItem, pData->szPendingPasswd );
pData->szPendingPasswd = NULL;
}
else

View File

@@ -727,7 +727,7 @@ static PHB_ITEM hb_nsxKeyGetItem( PHB_ITEM pItem, LPKEYINFO pKey,
pVal[ pTag->KeyLength ] = '\0';
hb_cdpnTranslate( pVal, pTag->pIndex->pArea->cdPage, hb_vmCDP(),
pTag->KeyLength );
pItem = hb_itemPutCPtr( pItem, pVal, pTag->KeyLength );
pItem = hb_itemPutCLPtr( pItem, pVal, pTag->KeyLength );
}
else
#else

View File

@@ -2301,7 +2301,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
char * szTitle = NULL;
if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &szTitle ) )
pInfo->pResult = hb_itemPutCPtr2( pInfo->pResult, szTitle );
pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, szTitle );
else
pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL );
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )

View File

@@ -218,7 +218,7 @@ static PHB_ITEM hb_i18n_pluralexp_compile( PHB_ITEM pExp )
memcpy( &szMacro[ 4 ], hb_itemGetCPtr( pExp ), ulLen );
szMacro[ 4 + ulLen ] = '}';
szMacro[ 5 + ulLen ] = '\0';
pMacro = hb_itemPutCPtr( NULL, szMacro, ulLen );
pMacro = hb_itemPutCLPtr( NULL, szMacro, ulLen );
szType = hb_macroGetType( pMacro );
if( *szType == 'B' )
{

View File

@@ -1262,7 +1262,7 @@ void hb_retc_buffer( char * szText )
HB_TRACE(HB_TR_DEBUG, ("hb_retc_buffer(%s)", szText));
hb_itemPutCPtr2( hb_stackReturnItem(), szText );
hb_itemPutCPtr( hb_stackReturnItem(), szText );
}
#undef hb_retc_const

View File

@@ -63,6 +63,7 @@
* hb_itemGetDL()
* hb_itemGetNI()
* hb_itemGetCPtr()
* hb_itemGetCLPtr()
* hb_itemGetCLen()
* hb_itemGetNLen()
* hb_itemPutCConst()
@@ -347,11 +348,11 @@ PHB_ITEM hb_itemPutCLConst( PHB_ITEM pItem, const char * szText, ULONG ulLen )
return pItem;
}
PHB_ITEM hb_itemPutCPtr2( PHB_ITEM pItem, char * szText )
PHB_ITEM hb_itemPutCPtr( PHB_ITEM pItem, char * szText )
{
ULONG ulLen;
HB_TRACE(HB_TR_DEBUG, ("hb_itemPutCPtr2(%p, %s)", pItem, szText));
HB_TRACE(HB_TR_DEBUG, ("hb_itemPutCPtr(%p, %s)", pItem, szText));
if( pItem )
{
@@ -387,11 +388,6 @@ PHB_ITEM hb_itemPutCPtr2( PHB_ITEM pItem, char * szText )
return pItem;
}
PHB_ITEM hb_itemPutCPtr( PHB_ITEM pItem, char * szText, ULONG ulLen )
{
return hb_itemPutCLPtr( pItem, szText, ulLen );
}
PHB_ITEM hb_itemPutCLPtr( PHB_ITEM pItem, char * szText, ULONG ulLen )
{
HB_TRACE(HB_TR_DEBUG, ("hb_itemPutCLPtr(%p, %s, %lu)", pItem, szText, ulLen));

View File

@@ -1514,6 +1514,13 @@ HB_FUNC( __MVSAVE )
buffer[ 0 ] = '\x1A';
hb_fsWrite( fhnd, buffer, 1 );
/* NOTE: Here, we're not CA-Cl*pper compatible by default settings.
[vszakats] */
#ifndef HB_C52_STRICT
if( hb_setGetHardCommit() )
hb_fsCommit( fhnd );
#endif
hb_fsClose( fhnd );
}

View File

@@ -978,7 +978,8 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
CASE hbmk[ _HBMK_cARCH ] == "win"
/* Order is significant.
watcom also keeps a cl.exe in its binary dir. */
aCOMPDET := { { {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingw" },;
aCOMPDET := { { {|| FindInPath( "cygstart" ) }, "cygwin" },;
{ {|| FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "gcc" ) }, "mingw" },;
{ {|| iif( ! Empty( GetEnv( "WATCOM" ) ),;
FindInPath( "wpp386" ),;
NIL ) }, "watcom" },;
@@ -991,7 +992,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
{ {|| FindInPath( "pocc" ) }, "pocc" },;
{ {|| iif( ( tmp1 := FindInPath( "icl" ) ) != NIL .AND. "itanium" $ Lower( tmp1 ), tmp1, NIL ) }, "iccia64" },;
{ {|| FindInPath( "icl" ) }, "icc" },;
{ {|| FindInPath( "cygstart" ) }, "cygwin" },;
{ {|| FindInPath( "xcc" ) }, "xcc" },;
{ {|| FindInPath( "x86_64-w64-mingw32-gcc" ) }, "mingw64", "x86_64-w64-mingw32-" } }
aCOMPSUP := { "mingw", "msvc", "bcc", "watcom", "icc", "pocc", "xcc", "cygwin",;