* make_gnu.bat
+ Now make_gnu.bat will find embedded GNU Make even if it's
started from another directory. F.e. to rebuild only
one contrib or core lib, it's enough to go to that dir
and type:
..\..\make_gnu.bat
! More fixes to make build work on paths containing spaces.
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
* mpkg_win.nsi
* mpkg_gnu.bat
* Formatted header comment.
+ Added reference to INSTALL.
* source/common/hbhash.c
! Fixed error in prev commit.
(strange that MSVC didn't complain)
* mpkg_win.nsi
+ Added comment that this file shouldn't be used directly.
* source/rtl/hbmd5.c
+ HB_MD5(), HB_MD5FILE(): New logical parameter added, which
controls whether to return binary data or hexadecimal string.
The default is .T. which will return hexa string, to stay
compatible. Later we should switch the default to .F..
* mpkg_gnu.bat
* Updated requirement section.
* contrib/hbxbp/tests/demoxbp.prg
! Fixed the same warning again.
* Changed to actually close the window when using close icon
or Alt+F4.
; Thanks Priptal for the close fix, GPF is now gone.
* mpkg_gnu.bat
! Using shorter temp dir names to make DOS command.com happy,
so that it copies all libs with a little more chance.
It's recommended to use a short base dir for DOS builds.
* contrib/hbct/ascpos.c
* contrib/hbct/ctwfunc.c
* contrib/hbct/ctcrypt.c
* contrib/xhb/filestat.c
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbnf/fttext.c
* contrib/hbpgsql/postgres.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* source/rtl/mouse53.c
* 'const' cleanup.
; NOTE: I rather didn't commit BYTE to char in CTWIN.
; TOFIX: Some of these will result in warnings when passing values
to external API calls. I'd like to ask developers to review
what the intent was. Sometimes external API declarations
are missing 'const', so it's safe to pass them these buffers,
but it should be checked in documentation.
---
../../fi_wrp.c: In function 'HB_FUN_FI_LOADFROMMEM':
../../fi_wrp.c:372: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../fi_wrp.c: In function 'HB_FUN_FI_GETFILETYPEFROMMEM':
../../fi_wrp.c:887: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2718: warning: passing argument 4 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2718: warning: passing argument 9 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2809: warning: passing argument 7 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 9 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
---
* contrib/hbgd/gdwrp.c
! Fixed const warnings.
* TOFIX: Remaining:
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2659: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2676: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2794: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2800: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
* harbour/source/rtl/dates.c
! fixed CTOD() to be CA-Cl*pper compatible in decoding dates like:
SET DATE FORMAT TO "YYYY-MM-DD"
? CTOD("000002009.000000012.0000000000000027.1")
? CTOD(" 0002009. 000012. 000028 1")
? CTOD("xx0002009.xxx000012.xxxxxxxxxx000028 1")
? CTOD("000 02009.00 000012.000 000028 1"), "*"
? CTOD("2007 11 29")
? CTOD(" 2007 11 29 ")
? CTOD("2007-1 1-29")
? CTOD("2007- 1 1 - 2 9 ")
! fixed HB_CTOT() to use the same formatting rules as CTOD() in
CA-Cl*pper - now delimiters between values are strictly required.
* INSTALL
+ mpkg_gnu.bat
- mpkg_dos.bat
- mpkg_win.bat
% Windows and DOS package make batches merged into one.
! Deleting of BCC junk files where broken after latest changes.
* make_gnu.bat
! Fixed to ignore HB_BUILD_DLL for dos platforms.
* contrib/hbqt/hbqt_qhttp.cpp
* contrib/hbqt/hbqt_qftp.cpp
! Commented with TOFIX comment two compilation errors
reported on the list, to allow full Harbour build.
; TOFIX: Fix hb_parc() returned buffer passed directly
to QT to return data. This would previously
cause HVM corruption, not with 'const' it's
caught by compiler.
* 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.
* contrib/hbmzip/hbmzip.c
* contrib/hbblat/blatwrp.c
* contrib/hbfbird/firebird.c
* contrib/xpp/dbcmdx.c
* contrib/xpp/philesx.c
* contrib/rddsql/sqlbase.c
* contrib/rddsql/sqlmix.c
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwing.c
* contrib/hbclipsm/time.c
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
* contrib/hbgd/gdwrp.c
* contrib/hbtip/utils.c
* contrib/hbtip/base64x.c
* contrib/hbtip/encmthd.c
* 'const' cleanup.
; NOTE: I've left some warnings which I couldn't fix,
and there were also cases where code modification
will be needed due to existing bugs now revealed.
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
; Started addition of 'const' keywords where applicable.
* First pass:
extern HB_EXPORT const char * hb_parc( int iParam );
extern HB_EXPORT const char * hb_parcx( int iParam );
extern HB_EXPORT const char * hb_itemGetCPtr( PHB_ITEM pItem );
extern HB_EXPORT const char * hb_arrayGetCPtr( PHB_ITEM pArray, ULONG ulIndex );
; NOTE: This modification will break code in most compilers,
especially in C++ mode.
As a next steps source code will have to be modified
according to this change. Be patient, don't report all
errors to the developers. You can join the code cleanup.
* source/vm/dynsym.c
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/memvars.c
* source/vm/extend.c
* source/vm/set.c
* source/vm/classes.c
* 'const's added to caller code.
* source/vm/memvars.c
- Deleted hb_fsCommit() as non CA-Cl*pper compatible.
I'll let others decide what to do with this patch.
* contrib/hbclipsm/date.c
! Changed hb_parnl() calls used to extract dates to hb_pardl().
* harbour/contrib/hbqt/Makefile_gen
* harbour/contrib/hbqt/hbqt_qapplication.cpp
* harbour/contrib/hbqt/qth/QApplication.qth
+ harbour/contrib/hbqt/TQApplication.prg
+ Added QApplication() PRG level class. Only one instance of
application is ever activated but its members can be accessed/assigned
as QApplication():new():setStyle( ... )
* contrib/hbqt/qth/QLatin1String.qth
* contrib/hbqt/qth/QTextStream.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QLatin1Char.qth
* contrib/hbqt/hbqt_qlatin1char.cpp
* contrib/hbqt/hbqt_qapplication.cpp
* contrib/hbqt/hbqt_qlatin1string.cpp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_qtextstream.cpp
! hb_parc() -> hb_parcx(). This may fix GPFs when non-string
parameter was read from C code and NULL pointer was passed
to certain QT methods. I couldn't find any specific mention
that NULL would be an accepted input value for the ones
I've checked.
Please review, and if hb_parc() was intentionally used,
and NULL value intentionally passed to QT, pls revert where
needed.
* source/vm/memvars.c
+ Added hb_fsCommit() to __MVSAVE().
(Change copied from xhb, created by Peter Rees)
* contrib/gtwvg/wvgsink.c
! Fixed BCC warning after recent change.
(BTW, does anyone know a switch to enable such warning:
"'x' is assigned a value that is never used" with *MinGW* ?
It's annoying that BCC catches it, while other compilers
don't. I'm now only using BCC when creating builds.)
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
* Now make_gnu.bat will also install libs to lib/<arch>/<comp>
by default. This will enable default settings to work in
multi-compiler mode.
; NOTE: hbmk script may need to be adapted for this change,
to add lib/<arch>/<comp> to libpath. Only MinGW + msys
users using hbmk *script* are affected though.
* contrib/hbqt/hbqt_slots.cpp
! Fixed QT_QDEBUG() to map to QT function even on Windows.
(no OutputDebugString() here please)
! Fixed wrong hb_itemPutCPtr() usage. Here, only string
allocated by Harbour functions can be used. Attaching
foreign string pointers will produce serious problems.
This fixes one GPF reported by Lorenzo on Linux.
! Renamed static vars to have 's_' prefix.
! Commented unused SlotsExecFocusEvent(). This fixes the
MinGW warning.
! Fixed to use hb_snprintf() instead of unsafe sprintf().
% Events::eventFilter() simplified.
* Formatting.
* source/rtl/gtwvt/gtwvt.c
! Fixed hb_gtInfo( HB_GTI_SCREENSIZE ) called with invalid parameter.
(untested, please test)
* contrib/gtwvg/gtwvg.c
! Fixed hb_gtInfo( HB_GTI_SCREENSIZE ) called with invalid parameter.
! Fixed hb_gtInfo( HB_GTI_SETPOSANDSIZE ) called with invalid parameter.
(untested, please test)
* contrib/hbxbp/tests/demoxbp.prg
! Fixed FUNCTION not returning value.
* utils/hbmk2/hbmk2.prg
* Cleanup to path separator handling in .hbc files found
automatically.
* mpkg_dos.bat
* mpkg_win.bat
* Changed 'lib' location to be lib/<arch>/<comp>.
This way the generated install kits became compatible
with each other and also with the 'unified' build. This
means they can be installed / copied onto each other.
This in turn means that we can provide binaries not
included in the 'unified' build as extra packages,
which "plugs in" into the former.
; Same has already been true for the source packages which
can be copied onto any binary installation without causing
any damage.
* INSTALL
+ Added NOTE to QUICK START, that GNU Make and msys and other
tools are not needed to build Harbour apps.
* utils/hbmk2/hbmk2.prg
! Rewritten PathNormalize().
Previous version had problems with relative paths, didn't
normalize everything possible and always added an ending
backslash. This new one hopefully fixes all these problems.
It also won't touch empty paths.
I'd appreciate if someone could take a reviewers look at
the code, it's now actually much simpler.
; beta2 release delayed a bit because of this change.
* mpkg_win.nsi
* Changed from MUI to MUI2. (no visible changes)
* harbour-win-spec
* harbour-wce-spec
* mpkg_win.bat
* include/hbver.h
* harbour.spec
* Changed version to 2.0.0beta2 (from 2.0.0beta1)
; NOTE: Everyone is encouraged to create binary releases
for various platforms and try this new version with real apps.
We can even upload these binary releases to sf.net.
* utils/hbmk2/hbmk2.prg
* Minor internal cleanup regarding macro marker chars.
% Not including libpaths containing late-evaluation macros in
actual commands.
* Cleaned handling of paths added from .hbc. Now slashes are
properly formed and paths are normalized.
* INSTALL
* Minor in new section.
* source/rtl/hbgtcore.c
! Fixed GPF when using hb_gtInfo( HB_GTI_SETWIN ) without
valid parameter. Thanks to Marek Horodyski for the report.
* contrib/gtwvg/wvgsink.c
! Attempt to fix MinGW warning.
---
../../wvgsink.c: In function 'HB_FUN_WVG_AXSETUPCONNECTIONPOINT':
../../wvgsink.c:519: warning: dereferencing pointer 'hSink.56' does break strict-aliasing rules
../../wvgsink.c:530: note: initialized from here
---
Please review, I'm not at all sure this patch is correct.
- examples/superlib/hbsuper.hbp
+ examples/superlib/superlib.hbc
+ examples/superlib/superlib.dif
- examples/superlib/hbsuper.dif
* examples/superlib/readme.txt
+ examples/superlib/superlib.hbp
* Change make system to have full multiplatform/multicompiler
support. The same all other examples and contribs have.
+ Added one-liner instruction, how to build superlib based
apps using hbmk2.
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
! Fixed hb_parvc() function to return NULL in case an array
is passed as Harbour level parameter. This makes this function
(and _parc()) fully CA-Cl*pper compatible.
; Please review maybe there is a lighter patch to achieve this
goal. I had to add NULL versions for two functions downstream.
* utils/hbmk2/hbmk2.prg
* Formatting.