* 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.
* utils/hbmk2/hbmk2.prg
+ Added filter support for input file types .rc, .res, .o, .obj, .c, .cpp.
! Fixed filter support for some existing cases with input files.
+ Added special support for escaping filenames inside watcom
command script file. Of course this is different from common
command line escaping rules. I didn't try to find out the details,
but for simple spaces, it now works. If someone wants to tweak
them, they go under the name _ESC_SINQUOTE_WATCOM.
* utils/hbrun/hbrun.hbp
* utils/hbrun/hbrun.rc
* Changed the way harbour.ico is referred to. Now the dir of
it is passed as include dir and no dir is used inside the .rc
file. This was needed to make watcom happy, which counts
relative dirs in #include from cwd, rather than from host
file.
* harbour/bin/hb-func.sh
* harbour/utils/hbmk2/hbmk2.prg
* updated automatic first function detection to decode non symbol
characters in C function names
* harbour/source/compiler/genc.c
* convert any function names to unique symbol accepted by C compilers
it resolves problems with compiling without -n .prg files using some
strange characters in file name, i.e.
/*** ^co+d-e.prg ***/
? procname()
* utils/hbmk2/hbmk2.prg
* Changed ${hb_self} macro to ${hb_dir}
+ Added ${hb_name} macro which translates to the container
filename (so f.e. in hbwin.hbc it will be "hbwin")
+ Added "late-evaluation" macros in libpaths= lists,
when looking for .hbc files. Late eval macros are marked
with %{}. This feature means you can setup
'libpaths=contrib/%{hb_name}' and when looking for
'hbwin.hbc', it will look for it in contrib/hbwin dir.
* libpaths/-L values will not be checked for existence before
adding them to internal lib list.
; All this means that it's now possible to setup contrib
libs and headers in their own directory while keeping the
"zero-conf" work environment. IOW contrib libs and directories
don't need to "pollute" central lib/header dir. This also
means that we can lift lots of restrictions regarding
naming, since only lib name needs to be unique, headers
don't (it's still good practice though since one users
may want to use both contribs at the same time), they
also don't bother those users who aren't using them. This
system also makes it very easy to add 3rd party libs to
the contrib dir. So in this sense it's basically a fully
open "plugin" system for any libs.
It's very easily possible to add 'examples', or 'extras'
subtrees to libpath also.
From the user side, it looks like this (without any extra
configuration or any path specs):
> hbmk2 myprogram.prg hbwin.hbc hbct.hbc
; QUESTION: Where such contribs (with libs and headers)
could go on a *nix system? While developing
above stuff I had the unified Windows installer
in mind, but it would be good to adapt these
on *nix systems, too.
+ contrib/xpp/xpp.hbc
+ Added .hbc file for xpp lib.
* examples/hbextern/hbextern.prg
* significant re-implementation
; with no params will work like original version
; processes source files with LF terminators
; params to control: recursion, include 'conditions',
include classes, include class methods/etc
; execute with -? or --help
* utils/hbmk2/hbmk2.prg
! Deleted first empty string parameter passed to HB_COMPILE()
function. AFAIR it seems it was needed so far (or was ignored,
but I've put it there for some reason), but after recent fix,
it's interpreted as empty filename, which seems logical.
* source/rtl/getsys.prg
! GETACTIVE() function fixed to work even if an app
manages getlist on its own. In this case GETACTIVE()
will maintain the GET object in its own STATIC variable.
This should fix the SuperLib problem reported by Bruno Luciani.
* examples/superlib/hbsuper.dif
+ Will now automatically enable CLIPPER53 protected code
if Harbour was built with HB_COMPAT_C53 setting. This
enables SuperLib to use C53's build-in mouse functions.
* INSTALL
! Typo in prev.
* contrib/gtwvg/gtwvg.c
* contrib/hbwin/win_prn2.c
! Suppressed two mingw/C++ warnings.
* examples/superlib/hbsuper.hbp
* lib name changed to 'super' (from 'superlib') to match
the lib name of the Cl*pper version.
* examples/superlib/readme.txt
* Minor text correction.
* harbour/source/rtl/lang.c
% simplified HB_USERLANG() code
* harbour/include/hbdefs.h
* use inline functions for HB_PUT_PTR() and HB_GET_PTR() macros in
GCC builds. It makes GCC builds alignment free and fixes the problem
with broken strict aliasing rules.
* harbour/include/hbwmain.c
* casting
* utils/hbmk2/hbmk2.prg
! Always escape filenames/paths if they contain "-" char.
(on Windows).
(this could recently cause a regression with BCC)
* include/hbapi.h
! Missded change from previous commit.
* bin/postinst.bat
+ hbrun is now built also in non-dll mode at the end of the
build process, so it gets built with the icon.
Probably we should switch to using hbmk2 to build these
extra tools, eventually.
* source/rtl/lang.c
* source/rtl/isprint.c
* contrib/hbwin/win_prn2.c
! Fixed most mingw/C++ warnings:
warning: deprecated conversion from string constant to 'char*'
* Added 'const' to hb_PrinterIsReady() string parameter.
; Please review me.
; TOFIX: These remain of this type of warning:
../../../../../include/hbwmain.c:78: warning: deprecated conversion from string constant to 'char*'
../../ctnet.c:182: warning: deprecated conversion from string constant to 'char*'
../../print.c:204: warning: deprecated conversion from string constant to 'char*'
../../print.c:205: warning: deprecated conversion from string constant to 'char*'
../../win_prn2.c:437: warning: deprecated conversion from string constant to 'CHAR*'
../../../maindllp.c:429: warning: deprecated conversion from string constant to 'char*'
../../../maindllp.c:454: warning: deprecated conversion from string constant to 'char*'
* contrib/gtwvg/wincallb.c
! Added cast to avoid error in mingw/C++ mode.
Thanks Pritpal, it worked.
* contrib/gtwvg/Makefile
+ Reenabled for mingw/C++
* contrib/gtwvg/Makefile
! Typo in prev.
* INSTALL
- config/linux/gpp.cf
- Deleted HB_COMPILER=gpp. Please use HB_BUILD_MODE=cpp
which works with all compilers.
* contrib/gtwvg/Makefile
! Disabled for mingw C++ mode.
Due to fatal errors reported to the dev list.
* contrib/hbwin/hbwinole.h
! Fixed for mingw C++ mode.
+ package
+ package/harbour.ico
+ Added harbour.ico to central place.
* utils/hbmk2/hbmk2.prg
- Deleted support for HB_COMPILET=gpp. Use -cpp switch instead.
- utils/hbrun/hbrun.ico
* utils/hbrun/hbrun.rc
* Using central harbour.ico.
* mpkg_win.nsi
+ Added Harbour icon to the installer executable.
* config/hpux/gcc.cf
* config/sunos/gcc.cf
* config/bsd/gcc.cf
* config/darwin/gcc.cf
* config/dos/djgpp.cf
* config/win/cygwin.cf
* config/win/mingw.cf
* config/win/bcc.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/os2/gcc.cf
* config/wce/mingwarm.cf
* config/win/icc.cf
+ Added support for HB_BUILD_MODE=cpp for all platforms
where it's available.
Now it's about in sync with hbmk2.
* config/linux/gpp.cf
* Changed to set HB_BUILD_MODE=cpp and redirect to gcc.
(retained for compatibility, pls use HB_BUILD_MODE=cpp instead
of HB_COMPILER=gpp)
* config/win/gcc.cf
* Now redirected to mingw (was cygwin).
* utils/hbrun/hbrun.hbp
+ utils/hbrun/hbrun.rc
+ utils/hbrun/hbrun.ico
+ Added Harbour icon to hbrun executable (on Windows).
Thanks to Vailton Renato for the .ico.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* Refreshed from source.
* utils/hbmk2/hbmk2.prg
+ Added support for Blinker commands MAP and NOBELL. (untested)
+ upx.exe is recognized and used if put in directory of hbmk2.exe.
! used upx executable name now depends on host platform rather
than target platform. This may allow using it in cross-platform
situations (I'm not sure if Linux UPX supports compressing Windows
executables).
- Deleted some TOFIX/TODO comments which are no longer relevant.
* contrib/xpp/xpp.ch
+ Added IsPrinter() translation.
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/hbxbp/xbplistbox.prg
* harbour/contrib/hbxbp/xbpmenubar.prg
* harbour/contrib/hbxbp/xbpmle.prg
* harbour/contrib/hbxbp/xbppushbutton.prg
* harbour/contrib/hbxbp/xbptabpage.prg
* harbour/contrib/hbxbp/xbptoolbar.prg
* harbour/contrib/hbxbp/xbptreeview.prg
* harbour/contrib/hbxbp/xbpwindow.prg
! Implemented full blown XbpTreeView().
Now it is near equal to Xbase++ one. Please test.
+ Started to implement Xbase++ concept of
Presentation Parameters the QT's recommended way through
Style Sheets. In the first phase Xbase++ compatible
attributes will be implemented. Next phase will empower
user to design application level Style Sheets.
+ harbour/contrib/hbxbp/xbpstyle.prg
+ Started to build a Style Sheet
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated the extensions to XbpParts the way
GUI components will be managed as per look and feel.
NOTE: Style Sheet implementation is on the concept level yet
and is subject to heavy changes per namespace, class
hirarchy and allied matters. Also it is not Xbase++
compatible. I am trying to implement Presentation
Parameters through this mechanism and so far progress
is quite satisfactory.