diff --git a/harbour/ChangeLog b/harbour/ChangeLog index d7cc3bfd88..79e81957a4 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,30 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-07-07 01:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * bin/postinst.bat + * bin/hb-func.sh + + Added libpath= lines to generated hbmk2.cfg files. + - Deleted arch=/comp= lines from generated hbmk.cfg files. + + * include/hbextern.ch + + Added HB_PROCESSRUN(). + + * contrib/hbtip/client.prg + % Minor optimizations. + * Formatting. + + * utils/hbmk2/hbmk2.prg + % Changed to use hb_processRun() natively. + ! Fixed doubly added resource stub when -icon is used. + + * source/rtl/hbproces.c + * Really minor formatting. + + * source/rtl/hbprocfn.c + ! Fixed to free memory of hb_storlen_buffer() returns failure. + % Minor optimization: hb_storclen( "", 0, ... ) -> hb_storc( NULL, ... ) + 2009-07-07 00:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/utils/hbmk2/hbmk2.prg % use hb_processRun() to execute commands diff --git a/harbour/bin/hb-func.sh b/harbour/bin/hb-func.sh index 13aedd1746..464b06cecb 100755 --- a/harbour/bin/hb-func.sh +++ b/harbour/bin/hb-func.sh @@ -242,8 +242,12 @@ mk_hbtools() echo "Generating ${hb_hbmkcfg}... " echo "# Harbour Make configuration"> ${hb_hbmkcfg} echo "# Generated by Harbour build process">> ${hb_hbmkcfg} - echo "arch=${HB_ARCHITECTURE}">> ${hb_hbmkcfg} - echo "comp=${HB_COMPILER}">> ${hb_hbmkcfg} + echo "">> ${hb_hbmkcfg} + echo "libpaths=../contrib/%%{hb_name}">> ${hb_hbmkcfg} + echo "libpaths=../contrib/rddsql/%%{hb_name}">> ${hb_hbmkcfg} + echo "libpaths=../addins/%%{hb_name}">> ${hb_hbmkcfg} + echo "libpaths=../examples/%%{hb_name}">> ${hb_hbmkcfg} + echo "">> ${hb_hbmkcfg} if [ -n "${hb_gt_ori}" ]; then echo "gtdef=${hb_mkdef}${hb_gt_ori}">> ${hb_hbmkcfg} fi diff --git a/harbour/bin/postinst.bat b/harbour/bin/postinst.bat index b58fc9ee73..14d2e793ac 100644 --- a/harbour/bin/postinst.bat +++ b/harbour/bin/postinst.bat @@ -16,8 +16,6 @@ rem --------------------------------------------------------------- echo Generating %HB_BIN_INSTALL%\hbmk.cfg... echo # Harbour Make configuration> %HB_BIN_INSTALL%\hbmk.cfg echo # Generated by Harbour build process>> %HB_BIN_INSTALL%\hbmk.cfg -echo arch=%HB_ARCHITECTURE%>> %HB_BIN_INSTALL%\hbmk.cfg -echo comp=%HB_COMPILER%>> %HB_BIN_INSTALL%\hbmk.cfg echo.>> %HB_BIN_INSTALL%\hbmk.cfg echo libpaths=../contrib/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg echo libpaths=../contrib/rddsql/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg diff --git a/harbour/contrib/hbtip/client.prg b/harbour/contrib/hbtip/client.prg index 72a77c0c30..545ba58d7b 100644 --- a/harbour/contrib/hbtip/client.prg +++ b/harbour/contrib/hbtip/client.prg @@ -7,7 +7,6 @@ * TIP Class oriented Internet protocol library * * Copyright 2003 Giancarlo Niccolai - * * www - http://www.harbour-project.org * * This program is free software; you can redistribute it and/or modify @@ -68,62 +67,60 @@ Added support for proxy connection */ +#include "hbclass.ch" + #include "common.ch" #include "error.ch" #include "fileio.ch" -#include "hbclass.ch" #include "tip.ch" -#DEFINE RCV_BUF_SIZE Int( ::InetRcvBufSize( ::SocketCon ) / 2 ) -#DEFINE SND_BUF_SIZE Int( ::InetSndBufSize( ::SocketCon ) / 2 ) +#define RCV_BUF_SIZE Int( ::InetRcvBufSize( ::SocketCon ) / 2 ) +#define SND_BUF_SIZE Int( ::InetSndBufSize( ::SocketCon ) / 2 ) /** * Inet Client class */ -CLASS tIPClient +CREATE CLASS tIPClient - CLASSDATA bInitSocks INIT .F. - CLASSDATA cCRLF INIT HB_InetCRLF() - DATA oUrl /* url to wich to connect */ - DATA oCredentials /* credential needed to access the service */ - DATA nStatus /* basic status */ - DATA SocketCon - Data lTrace - Data nHandle + CLASS VAR bInitSocks INIT .F. + CLASS VAR cCRLF INIT hb_inetCRLF() - DATA nDefaultRcvBuffSize - DATA nDefaultSndBuffSize + VAR oUrl /* url to wich to connect */ + VAR oCredentials /* credential needed to access the service */ + VAR nStatus /* basic status */ + VAR SocketCon + VAR lTrace + VAR nHandle - /* Input stream length */ - DATA nLength - /* Input stream data read by the app*/ - DATA nRead - /* Last physical read amount */ - DATA nLastRead + VAR nDefaultRcvBuffSize + VAR nDefaultSndBuffSize - DATA nDefaultPort - DATA nConnTimeout - DATA bInitialized + VAR nLength /* Input stream length */ + VAR nRead /* Input stream data read by the app*/ + VAR nLastRead /* Last physical read amount */ - DATA cReply - DATA nAccessMode - DATA nWrite - DATA nLastWrite + VAR nDefaultPort + VAR nConnTimeout + VAR bInitialized - DATA bEof - DATA isOpen INIT .F. + VAR cReply + VAR nAccessMode + VAR nWrite + VAR nLastWrite - /* Gauge control; it can be a codeblock or a function pointer. */ - DATA exGauge + VAR bEof + VAR isOpen INIT .F. - DATA Cargo + VAR exGauge /* Gauge control; it can be a codeblock or a function pointer. */ + + VAR Cargo /* Data for proxy connection */ - DATA cProxyHost - DATA nProxyPort INIT 0 - DATA cProxyUser - DATA cProxyPassword + VAR cProxyHost + VAR nProxyPort INIT 0 + VAR cProxyUser + VAR cProxyPassword METHOD New( oUrl, lTrace, oCredentials ) METHOD Open() @@ -148,7 +145,7 @@ CLASS tIPClient PROTECTED: - DATA nLastError INIT 0 + VAR nLastError INIT 0 METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent ) METHOD ReadHTTPProxyResponse() @@ -167,14 +164,13 @@ CLASS tIPClient ENDCLASS - METHOD New( oUrl, lTrace, oCredentials ) CLASS tIPClient LOCAL oErr DEFAULT lTrace TO .F. IF ! ::bInitSocks - HB_InetInit() + hb_inetInit() ::bInitSocks := .T. ENDIF @@ -190,7 +186,7 @@ METHOD New( oUrl, lTrace, oCredentials ) CLASS tIPClient oErr:CanSubstitute := .T. oErr:Description := "unsupported protocol" oErr:GenCode := EG_UNSUPPORTED - oErr:Operation := ::className()+":new()" + oErr:Operation := ::className() + ":new()" oErr:Severity := ES_ERROR oErr:SubCode := 1081 oErr:SubSystem := "BASE" @@ -209,12 +205,9 @@ METHOD New( oUrl, lTrace, oCredentials ) CLASS tIPClient ::bEof := .F. ::lTrace := lTrace -RETURN self - - + RETURN self METHOD Open( cUrl ) CLASS tIPClient - LOCAL nPort LOCAL cResp @@ -228,9 +221,9 @@ METHOD Open( cUrl ) CLASS tIPClient nPort := ::oUrl:nPort ENDIF - ::SocketCon := HB_InetCreate() + ::SocketCon := hb_inetCreate() - HB_InetTimeout( ::SocketCon, ::nConnTimeout ) + hb_inetTimeout( ::SocketCon, ::nConnTimeout ) IF ! Empty( ::cProxyHost ) cResp := "" IF ! ::OpenProxy( ::oUrl:cServer, nPort, ::cProxyHost, ::nProxyPort, @cResp, ::cProxyUser, ::cProxyPassword, ::nConnTimeout, "Mozilla/3.0 compatible" ) @@ -244,8 +237,7 @@ METHOD Open( cUrl ) CLASS tIPClient ENDIF ENDIF ::isOpen := .T. -RETURN .T. - + RETURN .T. METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent ) CLASS tIPClient LOCAL cRequest := "" @@ -258,7 +250,7 @@ METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWor ::InetConnect( cProxy, nProxyPort, ::SocketCon ) IF ( tmp := ::InetErrorCode( ::SocketCon ) ) == 0 - cRequest += "CONNECT " + cServer + ":" + hb_ntos( nPort ) + " HTTP/1.0" + Chr( 13 ) + Chr( 10 ) + cRequest += "CONNECT " + cServer + ":" + hb_ntos( nPort ) + " HTTP/1.1" + Chr( 13 ) + Chr( 10 ) IF ! Empty( cUserAgent ) cRequest += "User-agent: " + cUserAgent + Chr( 13 ) + Chr( 10 ) ENDIF @@ -286,10 +278,10 @@ METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWor cResp := hb_ntos( tmp ) lRet := .F. ENDIF + RETURN lRet METHOD ReadHTTPProxyResponse( dwTimeout, sResponse ) CLASS tIPClient - LOCAL bMoreDataToRead := .T. LOCAL nLength, nData LOCAL szResponse @@ -314,34 +306,26 @@ METHOD ReadHTTPProxyResponse( dwTimeout, sResponse ) CLASS tIPClient RETURN .T. - METHOD Close() CLASS tIPClient - LOCAL nRet := -1 IF ! Empty( ::SocketCon ) - nRet := HB_InetClose( ::SocketCon ) + nRet := hb_inetClose( ::SocketCon ) ::SocketCon := NIL ::isOpen := .F. ENDIF -RETURN nRet - - + RETURN nRet METHOD Reset() CLASS tIPClient ::bInitialized := .F. ::bEof := .F. -RETURN .T. - - + RETURN .T. METHOD Commit() CLASS tIPClient -RETURN .T. - - + RETURN .T. METHOD Read( nLen ) CLASS tIPClient LOCAL cStr0 @@ -351,7 +335,7 @@ METHOD Read( nLen ) CLASS tIPClient RETURN NIL ENDIF - IF Empty( nLen ) .OR. nLen < 0 .OR.( ::nLength > 0 .AND. nLen > ::nLength - ::nRead ) + IF Empty( nLen ) .OR. nLen < 0 .OR. ( ::nLength > 0 .AND. nLen > ::nLength - ::nRead ) nLen := ::nLength - ::nRead ENDIF @@ -362,7 +346,7 @@ METHOD Read( nLen ) CLASS tIPClient ::nLastRead := ::InetRecv( ::SocketCon, @cStr1, RCV_BUF_SIZE ) DO WHILE ::nLastRead > 0 ::nRead += ::nLastRead - cStr0 += Substr( cStr1, 1, ::nLastRead ) + cStr0 += Left( cStr1, ::nLastRead ) ::nLastRead := ::InetRecv( ::SocketCon, @cStr1, RCV_BUF_SIZE ) ENDDO ::bEof := .T. @@ -370,8 +354,8 @@ METHOD Read( nLen ) CLASS tIPClient // read an amount of data cStr0 := Space( nLen ) - // S.R. if len of file is less than RCV_BUF_SIZE HB_InetRecvAll return 0 - // ::nLastRead := HB_InetRecvAll( ::SocketCon, @cStr0, nLen ) + // S.R. if len of file is less than RCV_BUF_SIZE hb_inetRecvAll return 0 + // ::nLastRead := hb_inetRecvAll( ::SocketCon, @cStr0, nLen ) ::InetRecvAll( ::SocketCon, @cStr0, nLen ) ::nLastRead := ::InetCount( ::SocketCon ) @@ -379,18 +363,16 @@ METHOD Read( nLen ) CLASS tIPClient IF ::nLastRead != nLen ::bEof := .T. - cStr0 := Substr( cStr0, 1, ::nLastRead ) + cStr0 := Left( cStr0, ::nLastRead ) // S.R. RETURN NIL ENDIF IF ::nRead == ::nLength ::bEof := .T. ENDIF - ENDIF -RETURN cStr0 - + RETURN cStr0 METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient LOCAL nFout @@ -416,11 +398,7 @@ METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient IF nFout != NIL FClose( nFout ) ENDIF - IF ::InetErrorCode( ::SocketCon ) > 0 - RETURN .F. - ELSE - RETURN .T. - ENDIF + RETURN ::InetErrorCode( ::SocketCon ) == 0 ENDIF IF nFout == NIL nFout := FCreate( cFile, nMode ) @@ -436,7 +414,7 @@ METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient ENDIF nSent += Len( cData ) - IF !Empty( ::exGauge ) + IF ! Empty( ::exGauge ) HB_ExecFromArray( ::exGauge, { nSent, nSize, Self } ) ENDIF @@ -449,9 +427,7 @@ METHOD ReadToFile( cFile, nMode, nSize ) CLASS tIPClient ::nStatus := 2 FClose( nFout ) -RETURN .T. - - + RETURN .T. METHOD WriteFromFile( cFile ) CLASS tIPClient LOCAL nFin @@ -465,7 +441,7 @@ METHOD WriteFromFile( cFile ) CLASS tIPClient IF nFin < 0 RETURN .F. ENDIF - nSize := FSeek( nFin, 0, 2 ) + nSize := FSeek( nFin, 0, FS_END ) FSeek( nFin, 0 ) nBufSize := SND_BUF_SIZE @@ -473,7 +449,7 @@ METHOD WriteFromFile( cFile ) CLASS tIPClient // allow initialization of the gauge nSent := 0 IF ! Empty( ::exGauge ) - HB_ExecFromArray( ::exGauge, {nSent, nSize, Self} ) + HB_ExecFromArray( ::exGauge, { nSent, nSize, Self } ) ENDIF ::nStatus := 1 @@ -498,11 +474,10 @@ METHOD WriteFromFile( cFile ) CLASS tIPClient ::nStatus := 2 FClose( nFin ) -RETURN .T. - + RETURN .T. /* -HZ: METHOD :getOk() is not declared in TIpClient +HZ: METHOD :getOk() is not declared in tIPClient METHOD Data( cData ) CLASS tIPClient ::InetSendall( ::SocketCon, "DATA" + ::cCRLF ) @@ -510,10 +485,9 @@ METHOD Data( cData ) CLASS tIPClient RETURN .F. ENDIF ::InetSendall(::SocketCon, cData + ::cCRLF + "." + ::cCRLF ) -RETURN ::GetOk() + RETURN ::GetOk() */ - METHOD Write( cData, nLen, bCommit ) CLASS tIPClient IF Empty( nLen ) @@ -528,9 +502,7 @@ METHOD Write( cData, nLen, bCommit ) CLASS tIPClient ::nWrite += ::nLastWrite -RETURN ::nLastWrite - - + RETURN ::nLastWrite METHOD InetSendAll( SocketCon, cData, nLen ) CLASS tIPClient LOCAL nRet @@ -539,79 +511,60 @@ METHOD InetSendAll( SocketCon, cData, nLen ) CLASS tIPClient nLen := Len( cData ) ENDIF - nRet := HB_InetSendAll( SocketCon, cData, nLen ) + nRet := hb_inetSendAll( SocketCon, cData, nLen ) IF ::lTrace ::Log( SocketCon, nlen, cData, nRet ) ENDIF -RETURN nRet - - + RETURN nRet METHOD InetCount( SocketCon ) CLASS tIPClient - LOCAL nRet - - nRet := HB_InetCount( SocketCon ) + LOCAL nRet := hb_inetCount( SocketCon ) IF ::lTrace ::Log( SocketCon, nRet ) ENDIF -RETURN nRet - - + RETURN nRet METHOD InetRecv( SocketCon, cStr1, len ) CLASS tIPClient - LOCAL nRet - - nRet := HB_InetRecv( SocketCon, @cStr1, len ) + LOCAL nRet := hb_inetRecv( SocketCon, @cStr1, len ) IF ::lTrace ::Log( SocketCon, "", len, iif( nRet >= 0, cStr1, nRet ) ) ENDIF -RETURN nRet - - + RETURN nRet METHOD InetRecvLine( SocketCon, nLen, size ) CLASS tIPClient - LOCAL cRet - - cRet := HB_InetRecvLine( SocketCon, @nLen, size ) + LOCAL cRet := hb_inetRecvLine( SocketCon, @nLen, size ) IF ::lTrace ::Log( SocketCon, "", size, cRet ) ENDIF -RETURN cRet - - + RETURN cRet METHOD InetRecvAll( SocketCon, cStr1, len ) CLASS tIPClient - LOCAL nRet - - nRet := HB_InetRecvAll( SocketCon, @cStr1, len ) + LOCAL nRet := hb_inetRecvAll( SocketCon, @cStr1, len ) IF ::lTrace ::Log( SocketCon, "", len, iif( nRet >= 0, cStr1, nRet ) ) ENDIF -RETURN nRet - - + RETURN nRet METHOD InetErrorCode( SocketCon ) CLASS tIPClient - LOCAL nRet + LOCAL nRet := hb_inetErrorCode( SocketCon ) - ::nLastError := nRet := HB_InetErrorCode( SocketCon ) + ::nLastError := nRet IF ::lTrace ::Log( SocketCon, nRet ) ENDIF -RETURN nRet - + RETURN nRet METHOD InetErrorDesc( SocketCon ) CLASS tIPClient LOCAL cMsg := "" @@ -619,16 +572,15 @@ METHOD InetErrorDesc( SocketCon ) CLASS tIPClient DEFAULT SocketCon TO ::SocketCon IF ! Empty( SocketCon ) - cMsg := HB_InetErrorDesc( SocketCon ) + cMsg := hb_inetErrorDesc( SocketCon ) ENDIF -RETURN cMsg - + RETURN cMsg /* BROKEN, should test number of parameters and act accordingly, see doc\inet.txt */ METHOD InetConnect( cServer, nPort, SocketCon ) CLASS tIPClient - HB_InetConnect( cServer, nPort, SocketCon ) + hb_inetConnect( cServer, nPort, SocketCon ) IF ! Empty( ::nDefaultSndBuffSize ) ::InetSndBufSize( SocketCon, ::nDefaultSndBuffSize ) @@ -642,20 +594,20 @@ METHOD InetConnect( cServer, nPort, SocketCon ) CLASS tIPClient ::Log( cServer, nPort, SocketCon ) ENDIF -RETURN NIL + RETURN NIL /* Methods to manage buffers */ METHOD InetRcvBufSize( SocketCon, nSizeBuff ) CLASS tIPClient IF ! Empty( nSizeBuff ) - HB_InetSetRcvBufSize( SocketCon, nSizeBuff ) + hb_inetSetRcvBufSize( SocketCon, nSizeBuff ) ENDIF -RETURN HB_InetGetRcvBufSize( SocketCon ) + RETURN hb_inetGetRcvBufSize( SocketCon ) METHOD InetSndBufSize( SocketCon, nSizeBuff ) CLASS tIPClient IF ! Empty( nSizeBuff ) - HB_InetSetSndBufSize( SocketCon, nSizeBuff ) + hb_inetSetSndBufSize( SocketCon, nSizeBuff ) ENDIF -RETURN HB_InetGetSndBufSize( SocketCon ) + RETURN hb_inetGetSndBufSize( SocketCon ) /* Called from another method with list of parameters and, as last parameter, return code of function being logged. @@ -678,25 +630,24 @@ METHOD Log( ... ) CLASS tIPClient cMsg += hb_CStr( xVar ) ENDIF - cMsg += iif ( xVar:__enumIndex() < PCount() - 1, ", ", "" ) + cMsg += iif( xVar:__enumIndex() < PCount() - 1, ", ", "" ) IF xVar:__enumIndex() == PCount() - 1 - cMsg += " )" + hb_OsNewLine() + ">> " - + cMsg += " )" + hb_osNewLine() + ">> " ELSEIF xVar:__enumIndex() == PCount() - cMsg += " <<" + hb_OsNewLine() + hb_OsNewLine() - + cMsg += " <<" + hb_osNewLine() + hb_osNewLine() ENDIF - NEXT FWrite( ::nHandle, cMsg ) -RETURN Self + RETURN Self METHOD SetProxy( cProxyHost, nProxyPort, cProxyUser, cProxyPassword ) CLASS tIPClient + ::cProxyHost := cProxyHost ::nProxyPort := nProxyPort ::cProxyUser := cProxyUser ::cProxyPassword := cProxyPassword + RETURN Self diff --git a/harbour/include/hbextern.ch b/harbour/include/hbextern.ch index 134ad8508b..fe29772d64 100644 --- a/harbour/include/hbextern.ch +++ b/harbour/include/hbextern.ch @@ -1202,6 +1202,7 @@ EXTERNAL HB_DIRSCAN EXTERNAL HB_PROCESSOPEN EXTERNAL HB_PROCESSVALUE EXTERNAL HB_PROCESSCLOSE +EXTERNAL HB_PROCESSRUN EXTERNAL HB_GCSTEP EXTERNAL HB_GCALL EXTERNAL HB_KEYCLEAR diff --git a/harbour/source/rtl/hbproces.c b/harbour/source/rtl/hbproces.c index 7663ff5328..be9c406ed6 100644 --- a/harbour/source/rtl/hbproces.c +++ b/harbour/source/rtl/hbproces.c @@ -906,7 +906,7 @@ BOOL hb_fsProcessClose( HB_FHANDLE hProcess, BOOL fGentle ) #define HB_STD_BUFFER_SIZE 4096 -int hb_fsProcessRun( const char *pszFilename, +int hb_fsProcessRun( const char * pszFilename, const char * pStdInBuf, ULONG ulStdInLen, char ** pStdOutPtr, ULONG * pulStdOut, char ** pStdErrPtr, ULONG * pulStdErr, diff --git a/harbour/source/rtl/hbprocfn.c b/harbour/source/rtl/hbprocfn.c index 4966fd1a77..955403d98b 100644 --- a/harbour/source/rtl/hbprocfn.c +++ b/harbour/source/rtl/hbprocfn.c @@ -122,8 +122,8 @@ HB_FUNC( HB_PROCESSCLOSE ) [ ] ) -> */ HB_FUNC( HB_PROCESSRUN ) { - const char *szName = hb_parc( 1 ); - const char *szStdIn = hb_parc( 2 ); + const char * szName = hb_parc( 1 ); + const char * szStdIn = hb_parc( 2 ); PHB_ITEM pStdOut = hb_param( 3, HB_IT_BYREF ); PHB_ITEM pStdErr = hb_param( 4, HB_IT_BYREF ); BOOL fDetach = hb_parl( 5 ); @@ -149,14 +149,20 @@ HB_FUNC( HB_PROCESSRUN ) fDetach ); if( pStdOutBuf ) - hb_storclen_buffer( pStdOutBuf, ulStdOut, 3 ); + { + if( ! hb_storclen_buffer( pStdOutBuf, ulStdOut, 3 ) ) + hb_xfree( pStdOutBuf ); + } else if( pStdOut ) - hb_storclen( "", 0, 3 ); + hb_storc( NULL, 3 ); if( pStdErrBuf ) - hb_storclen_buffer( pStdErrBuf, ulStdErr, 4 ); + { + if( ! hb_storclen_buffer( pStdErrBuf, ulStdErr, 4 ) ) + hb_xfree( pStdErrBuf ); + } else if( pStdErr ) - hb_storclen( "", 0, 4 ); + hb_storc( NULL, 4 ); hb_retni( iResult ); } diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index ca7927bd63..c9b0d22b7c 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -417,14 +417,6 @@ PROCEDURE Main( ... ) #endif -STATIC FUNCTION hbmk_run( hbmk, cCmd, cStdOut ) - - HB_SYMBOL_UNUSED( hbmk ) - IF PCount() >= 3 - RETURN hb_processRun( cCmd,, @cStdOut ) - ENDIF - RETURN hb_processRun( cCmd ) - STATIC PROCEDURE hbmk_COMP_Setup( cARCH, cCOMP, cBasePath ) /* TODO: Use HB_CCPREFIX instead of PATH modification, where possible. */ @@ -3222,7 +3214,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) OutStd( cCommand + hb_osNewLine() ) ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running Harbour compiler. %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -3428,7 +3420,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF NEXT ELSE - l_aRESSRC_TODO := hbmk[ _HBMK_aRESSRC ] + l_aRESSRC_TODO := AClone( hbmk[ _HBMK_aRESSRC ] ) ENDIF IF hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C @@ -3511,7 +3503,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) OutStd( cCommand + hb_osNewLine() ) ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running resource compiler. %1$s" ), hb_ntos( tmp1 ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -3550,7 +3542,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running resource compiler. %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -3680,9 +3672,9 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) IF ! hbmk[ _HBMK_lDONTEXEC ] IF hb_mtvm() .AND. Len( aTODO:__enumBase() ) > 1 - AAdd( aThreads, { hb_threadStart( @hbmk_run(), hbmk, cCommand ), cCommand } ) + AAdd( aThreads, { hb_threadStart( @hb_processRun(), cCommand ), cCommand } ) ELSE - IF ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running C compiler. %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -3830,7 +3822,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running linker. %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -3913,7 +3905,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running lib command. %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -3973,7 +3965,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) ENDIF ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running dynamic lib link command. %1$s" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -4031,7 +4023,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) OutStd( cCommand + hb_osNewLine() ) ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Running post processor command. %1$s:" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -4095,7 +4087,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) OutStd( cCommand + hb_osNewLine() ) ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Running compression command. %1$s:" ), hb_ntos( tmp ) ) ) IF ! hbmk[ _HBMK_lQuiet ] OutErr( cCommand + hb_osNewLine() ) @@ -4207,7 +4199,7 @@ STATIC FUNCTION CompileCLoop( hbmk, aTODO, cBin_CompC, cOpt_CompC, cWorkDir, cOb OutStd( cCommand + hb_osNewLine() ) ENDIF - IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hbmk_run( hbmk, cCommand ) ) != 0 + IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp1 := hb_processRun( cCommand ) ) != 0 IF nJobs > 1 hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Running C compiler job #%1$s. %2$s" ), hb_ntos( nJob ), hb_ntos( tmp1 ) ) ) ELSE @@ -5681,7 +5673,9 @@ STATIC FUNCTION MacroProc( hbmk, cString, cFileName, lLateMode ) ( nEnd := hb_At( _CMDSUBST_CLOSE, cString, nStart + Len( _CMDSUBST_OPEN ) ) ) > 0 cMacro := SubStr( cString, nStart + Len( _CMDSUBST_OPEN ), nEnd - nStart - Len( _CMDSUBST_OPEN ) ) cStdOut := "" - hbmk_run( hbmk, cMacro, @cStdOut ) + IF ! Empty( cMacro ) + hb_processRun( cMacro,, @cStdOut ) + ENDIF cString := Left( cString, nStart - 1 ) + cStdOut + SubStr( cString, nEnd + Len( _CMDSUBST_CLOSE ) ) ENDDO @@ -5743,7 +5737,7 @@ STATIC FUNCTION getFirstFunc( hbmk, cFile ) NEXT ELSEIF ! Empty( cExecNM := FindInPath( hbmk[ _HBMK_cCCPREFIX ] + "nm" ) ) cFuncList := "" - hbmk_run( hbmk, cExecNM + " " + cFile + " -g -n --defined-only -C", @cFuncList ) + hb_processRun( cExecNM + " " + cFile + " -g -n --defined-only -C",, @cFuncList ) IF ( n := At( " T HB_FUN_", cFuncList ) ) != 0 n += 10 DO WHILE ( c := SubStr( cFuncList, n++, 1 ) ) == "_" .OR. ;