diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index 9ef043ac90..b240daa4bd 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -17,6 +17,26 @@
past entries belonging to author(s): Viktor Szakats.
*/
+2009-07-06 14:05 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
+ * bin/postinst.bat
+ + Added .hbc search paths: /contrib, /contrib/rddsql, /addins, /examples.
+ NOTE: addins will be the directory where 3rd party addins
+ can be added.
+
+ * utils/hbmk2/hbmk2.prg
+ * Refinements to path handling of -icon= parameter.
+
+ - utils/hbrun/hbrun.rc
+ * utils/hbrun/hbrun.hbp
+ * Switched to use -icon option instead of .rc file.
+
+ * contrib/hbtip/client.prg
+ ! Minor cleanups and fixes to proxy handling.
+ % Deleted second parameter from HB_BASE64() calls.
+
+ * contrib/hbtip/smtpcln.prg
+ % Deleted second parameter from HB_BASE64() calls.
+
2009-07-06 13:09 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gttrm/gttrm.c
* reset default color index on exit
@@ -29,21 +49,21 @@
+ harbour/contrib/hbqt/doc/html
+ Added this folder to hold auto generated pure .htm documentation files.
These files can be used by any decent tool to form a useful compiled help
- manual. You can visit
+ manual. You can visit
http://www.vouch.info/harbour-qt/
to have first impressions. This on-line help source
seemlessly links with Qt's online help system, so it can be a very useful
reference source for developers.
* harbour/contrib/hbqt/generator/hbqtgen.prg
- + Implemented section of a .qth header. This section
+ + Implemented section of a .qth header. This section
is placed as is in TQ*.txt and html/Q*.htm at appropriate place.
+ Re-implemented :new() method of TQ*.prg classes. If section
- contains "Type = PlainObject" entry, it generates this method as
+ contains "Type = PlainObject" entry, it generates this method as
METHOD New( ... )
LOCAL aP, nParams
-
+
aP := hb_aParams()
nParams := len( aP )
@@ -59,11 +79,11 @@
RETURN Self
- This construct was necessary for those classes which are not inherited from
+ This construct was necessary for those classes which are not inherited from
QWidget and which do not have parent and their contructors are either complex
or cannot be supplied later after creation. Moreover, it simplifies .prg
code considerably.
-
+
* harbour/contrib/hbqt/qth/QFont.qth
* harbour/contrib/hbqt/hbqt_qfont.cpp
* harbour/contrib/hbqt/TQFont.prg
@@ -176,7 +196,7 @@
2009-07-04 10:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Added app bundle generation for OS X targets in -gui mode.
- It's experimental yet. (f.e. clean will not clean it f.e.)
+ It's experimental yet. (f.e. clean will not clean it)
Thanks to Teo Fonrouge for the hints.
* Using escapting function (instead of manual escaping) when
launching Windows apps on NT.
@@ -188,7 +208,7 @@
* source/rtl/copyfile.c
* Minor formatting.
- ; TODO: Add generic app icon support. Possible?
+ ; TODO: Add generic app icon support. Possible? [DONE]
2009-07-04 09:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
@@ -255,7 +275,7 @@
+ Added support for `` type of macro
in all options where regular macros are accepted.
It's now possible to use this in an .hbp file:
- -cflag={unix&gcc}"`wx-config --cflags`"
+ "-cflag={unix&gcc}`wx-config --cflags`"
2009-07-03 18:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/fscopy.c
diff --git a/harbour/bin/postinst.bat b/harbour/bin/postinst.bat
index 9f9fa56763..b58fc9ee73 100644
--- a/harbour/bin/postinst.bat
+++ b/harbour/bin/postinst.bat
@@ -18,6 +18,11 @@ 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
+echo libpaths=../addins/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg
+echo libpaths=../examples/%%{hb_name}>> %HB_BIN_INSTALL%\hbmk.cfg
rem ; Post-build installation
set _HB_COPYCMD=%COPYCMD%
diff --git a/harbour/contrib/hbtip/client.prg b/harbour/contrib/hbtip/client.prg
index 2d7f411332..72a77c0c30 100644
--- a/harbour/contrib/hbtip/client.prg
+++ b/harbour/contrib/hbtip/client.prg
@@ -119,14 +119,11 @@ CLASS tIPClient
DATA Cargo
- /* Data For proxy connection */
+ /* Data for proxy connection */
DATA cProxyHost
- DATA nProxyPort
+ DATA nProxyPort INIT 0
DATA cProxyUser
DATA cProxyPassword
- METHOD SetProxy()
- METHOD Openproxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent )
- METHOD ReadHTTPProxyResponse()
METHOD New( oUrl, lTrace, oCredentials )
METHOD Open()
@@ -138,7 +135,10 @@ CLASS tIPClient
METHOD WriteFromFile( cFile )
METHOD Reset()
METHOD Close()
-/* METHOD Data( cData ) */ // commented: calls undeclared METHOD :getOk
+
+/* METHOD Data( cData ) */ // commented: calls undeclared METHOD :getOk
+
+ METHOD SetProxy( cProxyHost, nProxyPort, cProxyUser, cProxyPassword )
METHOD lastErrorCode() INLINE ::nLastError
METHOD lastErrorMessage(SocketCon) INLINE ::INetErrorDesc(SocketCon)
@@ -147,8 +147,12 @@ CLASS tIPClient
METHOD InetSndBufSize( SocketCon, nSizeBuff )
PROTECTED:
+
DATA nLastError INIT 0
+ METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent )
+ METHOD ReadHTTPProxyResponse()
+
/* Methods to log data if needed */
METHOD InetRecv( SocketCon, cStr1, len)
METHOD InetRecvLine( SocketCon, nLen, size )
@@ -212,7 +216,7 @@ RETURN self
METHOD Open( cUrl ) CLASS tIPClient
LOCAL nPort
- Local cResp
+ LOCAL cResp
IF ISCHARACTER( cUrl )
::oUrl := tUrl():New( cUrl )
@@ -229,7 +233,7 @@ METHOD Open( cUrl ) CLASS tIPClient
HB_InetTimeout( ::SocketCon, ::nConnTimeout )
IF ! Empty( ::cProxyHost )
cResp := ""
- IF ! ::openProxy( ::oUrl:cServer, nPort, ::cProxyHost, ::nProxyPort, @cResp, ::cProxyUser, ::cProxyPassword, ::nConnTimeout, "" )
+ IF ! ::OpenProxy( ::oUrl:cServer, nPort, ::cProxyHost, ::nProxyPort, @cResp, ::cProxyUser, ::cProxyPassword, ::nConnTimeout, "Mozilla/3.0 compatible" )
RETURN .F.
ENDIF
ELSE
@@ -243,6 +247,73 @@ METHOD Open( cUrl ) CLASS tIPClient
RETURN .T.
+METHOD OpenProxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent ) CLASS tIPClient
+ LOCAL cRequest := ""
+ LOCAL tmp
+ LOCAL lRet := .T.
+
+ LOCAL nResponseCode
+ LOCAL sResponseCode, nFirstSpace
+
+ ::InetConnect( cProxy, nProxyPort, ::SocketCon )
+
+ IF ( tmp := ::InetErrorCode( ::SocketCon ) ) == 0
+ cRequest += "CONNECT " + cServer + ":" + hb_ntos( nPort ) + " HTTP/1.0" + Chr( 13 ) + Chr( 10 )
+ IF ! Empty( cUserAgent )
+ cRequest += "User-agent: " + cUserAgent + Chr( 13 ) + Chr( 10 )
+ ENDIF
+ IF ! Empty( cUserName )
+ cRequest += "Proxy-authorization: Basic " + hb_base64( cUserName + ":" + cPassWord ) + Chr( 13 ) + Chr( 10 )
+ ENDIF
+ cRequest += Chr( 13 ) + Chr( 10 )
+ ::InetSendAll( ::SocketCon, cRequest )
+ cResp := ""
+ IF ::ReadHTTPProxyResponse( nTimeOut, @cResp )
+ nFirstSpace := At( " ", cResp )
+ IF nFirstSpace != 0
+ sResponseCode := Right( cResp, Len( cResp ) - nFirstSpace )
+ nResponseCode := Val( sResponseCode )
+ IF nResponseCode != 200
+ ::close()
+ lRet := .F.
+ ENDIF
+ ENDIF
+ ELSE
+ ::close()
+ lRet := .F.
+ ENDIF
+ ELSE
+ cResp := hb_ntos( tmp )
+ lRet := .F.
+ ENDIF
+ RETURN lRet
+
+METHOD ReadHTTPProxyResponse( dwTimeout, sResponse ) CLASS tIPClient
+
+ LOCAL bMoreDataToRead := .T.
+ LOCAL nLength, nData
+ LOCAL szResponse
+
+ HB_SYMBOL_UNUSED( dwTimeout )
+
+ DO WHILE bMoreDataToRead
+
+ szResponse := Space( 1 )
+ nData := hb_inetRecv( ::SocketCon, @szResponse, Len( szResponse ) )
+ IF nData == 0
+ RETURN .F.
+ ENDIF
+ sResponse += szResponse
+
+ nLength := Len( sResponse )
+ IF nLength >= 4
+ bMoreDataToRead := !( ( SubStr( sResponse, nLength - 3, 1 ) == Chr( 13 ) ) .AND. ( SubStr( sResponse, nLength - 2, 1 ) == Chr( 10 ) ) .AND. ;
+ ( SubStr( sResponse, nLength - 1, 1 ) == Chr( 13 ) ) .AND. ( SubStr( sResponse, nLength, 1 ) == Chr( 10 ) ) )
+ ENDIF
+ ENDDO
+
+ RETURN .T.
+
METHOD Close() CLASS tIPClient
@@ -252,11 +323,11 @@ METHOD Close() CLASS tIPClient
nRet := HB_InetClose( ::SocketCon )
- ::SocketCon:=nil
+ ::SocketCon := NIL
::isOpen := .F.
ENDIF
-RETURN(nRet)
+RETURN nRet
@@ -449,7 +520,7 @@ METHOD Write( cData, nLen, bCommit ) CLASS tIPClient
nLen := Len( cData )
ENDIF
- ::nLastWrite := ::InetSendall( ::SocketCon, cData , nLen )
+ ::nLastWrite := ::InetSendall( ::SocketCon, cData, nLen )
IF ! Empty( bCommit ) .AND. bCommit
::Commit()
@@ -623,81 +694,9 @@ METHOD Log( ... ) CLASS tIPClient
RETURN Self
-
METHOD SetProxy( cProxyHost, nProxyPort, cProxyUser, cProxyPassword ) CLASS tIPClient
::cProxyHost := cProxyHost
::nProxyPort := nProxyPort
::cProxyUser := cProxyUser
::cProxyPassword := cProxyPassword
RETURN Self
-
-METHOD Openproxy( cServer, nPort, cProxy, nProxyPort, cResp, cUserName, cPassWord, nTimeOut, cUserAgent ) CLASS tIPClient
- LOCAL cLine
- LOCAL cRequest := ""
- LOCAL cEncoded
- LOCAL cPass
- LOCAL lRet := .T.
-
- LOCAL nResponseCode
- LOCAL sResponseCode, nFirstSpace
-
- ::InetConnect( cProxy, nProxyPort, ::SocketCon )
-
- IF ::InetErrorCode( ::SocketCon ) == 0
- cLine := "CONNECT " + cServer + ":" + hb_ntos( nPort ) + " HTTP/1" + Chr( 13 ) + Chr( 10 )
- cRequest += cLine
- IF ! Empty( cUserName )
- cPass := cUserName + ":" + cPassWord
- cEncoded := hb_base64( cPass, Len( cPass ) )
- cLine := "Proxy-authorization: Basic " + cEncoded + Chr( 13 ) + Chr( 10 )
- cRequest += cLine
- ENDIF
- IF ! Empty( cUserAgent )
- cLine := "User-Agent: " + cUserAgent + Chr( 13 ) + Chr( 10 )
- cRequest += cLine
- ENDIF
- cRequest += Chr( 13 ) + Chr( 10 )
- ::InetSendAll( ::SocketCon, cRequest )
- cResp := ""
- IF ::ReadHTTPProxyResponse( nTimeOut, @cResp )
- nFirstSpace := At( " ", cResp )
- IF nFirstSpace != 0
- sResponseCode := Right( cResp, Len( cResp ) - nFirstSpace )
- nResponseCode := Val( sResponseCode )
- IF nResponseCode != 200
- ::close()
- lRet := .F.
- ENDIF
- ENDIF
- ELSE
- ::close()
- lRet := .F.
- ENDIF
- ENDIF
- RETURN lRet
-
-METHOD ReadHTTPProxyResponse( dwTimeout, sResponse ) CLASS tIPClient
-
- LOCAL bMoreDataToRead := .T.
- LOCAL nLength, nData
- LOCAL szResponse
-
- HB_SYMBOL_UNUSED( dwTimeout )
-
- DO WHILE bMoreDataToRead
-
- szResponse := Space( 1 )
- nData := hb_inetRecv( ::SocketCon, @szResponse, Len( szResponse ) )
- IF nData == 0
- RETURN .F.
- ENDIF
- sResponse += szResponse
-
- nLength := Len( sResponse )
- IF nLength >= 4
- bMoreDataToRead := !( ( SubStr( sResponse, nLength - 3, 1 ) == Chr( 13 ) ) .AND. ( SubStr( sResponse, nLength - 2, 1 ) == Chr( 10 ) ) .AND. ;
- ( SubStr( sResponse, nLength - 1, 1 ) == Chr( 13 ) ) .AND. ( SubStr( sResponse, nLength, 1 ) == Chr( 10 ) ) )
- ENDIF
- ENDDO
-
- RETURN .T.
diff --git a/harbour/contrib/hbtip/smtpcln.prg b/harbour/contrib/hbtip/smtpcln.prg
index 3eda518b9b..88fb42ff79 100644
--- a/harbour/contrib/hbtip/smtpcln.prg
+++ b/harbour/contrib/hbtip/smtpcln.prg
@@ -196,8 +196,8 @@ METHOD AUTH( cUser, cPass ) CLASS tIPClientSMTP
cUser := StrTran( cUser, "&at;", "@" )
- cEncodedUser := AllTrim( HB_BASE64( cUser, Len( cUser ) ) )
- cEncodedPAss := AllTrim( HB_BASE64( cPass, Len( cPass ) ) )
+ cEncodedUser := AllTrim( HB_BASE64( cUser ) )
+ cEncodedPAss := AllTrim( HB_BASE64( cPass ) )
::InetSendall( ::SocketCon, "AUTH LOGIN" + ::ccrlf )
diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg
index 6816b6e7c3..4b5bb60bfb 100644
--- a/harbour/utils/hbmk2/hbmk2.prg
+++ b/harbour/utils/hbmk2/hbmk2.prg
@@ -1690,7 +1690,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
CASE Left( cParamL, Len( "-icon=" ) ) == "-icon="
- cParam := MacroProc( hbmk, ArchCompFilter( hbmk, SubStr( cParam, Len( "-icon=" ) + 1 ) ), aParam[ _PAR_cFileName ] )
+ cParam := PathNormalize( PathProc( PathSepToSelf( MacroProc( hbmk, ArchCompFilter( hbmk, SubStr( cParam, Len( "-icon=" ) + 1 ) ), aParam[ _PAR_cFileName ] ) ), aParam[ _PAR_cFileName ] ) )
IF ! Empty( cParam )
AAdd( hbmk[ _HBMK_aICON ], cParam )
ENDIF
diff --git a/harbour/utils/hbrun/hbrun.hbp b/harbour/utils/hbrun/hbrun.hbp
index 688ff96274..a0e11b4921 100644
--- a/harbour/utils/hbrun/hbrun.hbp
+++ b/harbour/utils/hbrun/hbrun.hbp
@@ -3,11 +3,9 @@
#
hbrun.prg
-hbrun.rc
-
-# for harbour.ico
--incpath=../../package
-lhbcplr
-lhbpp
-lhbcommon
+
+-icon={allwin|os2}../../package/harbour.ico
diff --git a/harbour/utils/hbrun/hbrun.rc b/harbour/utils/hbrun/hbrun.rc
deleted file mode 100644
index 42596bda46..0000000000
--- a/harbour/utils/hbrun/hbrun.rc
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- */
-
-/*
- * Harbour Project source code:
- * hbrun Windows resource file
- *
- * Copyright 2009 Viktor Szakats (harbour.01 syenar.hu)
- * www - http://www.harbour-project.org
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this software; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
- *
- * As a special exception, the Harbour Project gives permission for
- * additional uses of the text contained in its release of Harbour.
- *
- * The exception is that, if you link the Harbour libraries with other
- * files to produce an executable, this does not by itself cause the
- * resulting executable to be covered by the GNU General Public License.
- * Your use of that executable is in no way restricted on account of
- * linking the Harbour library code into it.
- *
- * This exception does not however invalidate any other reasons why
- * the executable file might be covered by the GNU General Public License.
- *
- * This exception applies only to the code released by the Harbour
- * Project under the name Harbour. If you copy code from other
- * Harbour Project or Free Software Foundation releases into a copy of
- * Harbour, as the General Public License permits, the exception does
- * not apply to the code that you add in this way. To avoid misleading
- * anyone as to the status of such modified files, you must delete
- * this exception notice from them.
- *
- * If you write modifications of your own for Harbour, it is your choice
- * whether to permit this exception to apply to your modifications.
- * If you do not wish that, delete this exception notice.
- *
- */
-
-ICON1 ICON DISCARDABLE "harbour.ico"