* 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.
* INSTALL
+ Added iccia64 build example.
* source/vm/fm.c
+ Added C++ new/delete operator override to hb_xgrab()/hb_xfree().
Thanks to Xavi.
Please make any required correction, I didn't do tests with it.
* utils/hbmk2/hbmk2.prg
+ Added support for linux/icc compiler. (untested)
; Tested win/icc support (static exe, shared exe, lib, dll).
It worked, except that in shared mode it will display this,
when the MinGW built .dll is used (instead of its own):
Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'
* INSTALL
* make_gnu.bat
* utils/hbmk2/hbmk2.prg
* Updated to reflect new mingw w64 CCPREFIX. It's now in
"prerelease" state (formerly "experimental")
* INSTALL
! Added missing HB_CCPREFIX for mingw64 and mingwarm examples.
* contrib/hbxbp/xbp.ch
+ Fixed non-debug branch to work in both normal code and codeblocks.
Thanks Przemek.
* Changed debug macro to generate portable HB_TRACESTRING() calls
by default. This is very easy to use in default Harbour builds.
To enable it's enough to set HB_TR_OUTPUT to the output filename
to be used by trace calls:
set HB_TR_OUTPUT=trace.log
NOTE to Pritpal: To keep using special Windows debug output you
need to also add -D__HB_WINDEBUG__ to HB_USER_PRGFLAGS.
; TODO: Would it be possible to add timestamp to our HB_TRACE()
calls? At least the user level (HB_TRACESTRING()) ones,
if that would make low level too slow.
* contrib/hbxbp/tests/demoxbp.prg
+ Readded HB_OUTDEBUG() calls.
* contrib/hbxbp/xbp.ch
! Restored non-debug behavior due to other problems.
Now it won't work in codeblock though.
* contrib/hbxbp/tests/demoxbp.prg
! Deleted debug calls from codeblocks in the meantime.
* contrib/hbxbp/xbp.ch
! Fixed for non-debug. Currently it's suboptimal as non-debug
mode will generate extra code in binaries.
; TOFIX
+ Added non-Windows specific debug mode by enabling __HB_NOWINDEBUG__
macro. This may change in the future to the default, also
names may change in the future.
* contrib/hbqt/hbqt_utils.cpp
* hb_par*() -> hb_parv*()
* utils/hbmk2/hbmk2.prg
% Minor opt to prev.
* source/vm/extend.c
* Minor formatting.
* source/rtl/mlcfunc.c
! Fixed warning in HB_C52_STRICT mode.
* contrib/hbxbp/xbp.ch
! Fixed HB_OUTDEBUG() macro to work also in codeblocks when
not in debug mode, and also to better handle the case when
parameter is a variable.
* ChangeLog
+ Added incompat NOTE to hb_par*/hb_stor*() change.
* harbour/source/rtl/mlcfunc.c
! fixed missing ulLen declaration in if() branch
% restored a little bit optimized Viktor's code - now it's safe to
call hb_par*() expecting default value on wrong type even if given
parameter is array
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/hbxbp/xbp.ch
+ harbour/contrib/hbxbp/xbpcombobox.prg
* harbour/contrib/hbxbp/xbpdataref.prg
* harbour/contrib/hbxbp/xbpsle.prg
+ harbour/contrib/hbxbp/xbptreeview.prg
* harbour/contrib/hbxbp/xbpwindow.prg
+ Implemented XbpComboBox() class.
+ Added XbpTreeView() class skelton.
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated XbpComboBox() implementation.
NOTE: I am not sure about the way I am simulating Xbase++
class behavior. Can someone review xbpcombobox.prg
and see if this can be improved. I am not well equipped
as far as classes can be exploited to full extent.
* harbour/include/hbapi.h
* harbour/source/vm/extend.c
* renamed existing hb_par*() and hb_stor*() functions which supports
variable number of parameters (...) into hb_parv*() and hb_storv*()
* added new hb_par*() and hb_stor*() functions which use strict number
of parameters. New hb_par*() functions do not make hidden conversion
between types, f.e. hb_parl() returns 1 only for logical parameters
which contain .T.
* harbour/include/extend.api
* map Clipper _par*() functions to hb_parv*()
* map Clipper _stor*() functions to hb_storv*()
* harbour/source/vm/dynsym.c
* harbour/source/vm/hvm.c
* harbour/source/vm/maindllp.c
* harbour/source/vm/thread.c
* harbour/source/vm/classes.c
* harbour/source/rtl/cdpapi.c
* harbour/source/rtl/mlcfunc.c
* harbour/contrib/hbnf/dispc.c
* harbour/contrib/hbnf/mouse.c
* harbour/contrib/hbnf/getenvrn.c
* harbour/contrib/hbhpdf/harupdf.c
* harbour/contrib/gtwvg/wvgcuig.c
* harbour/contrib/gtwvg/wvgwin.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgwing.c
* harbour/contrib/rddads/adsfunc.c
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsmgmnt.c
* harbour/contrib/hbmisc/hb_f.c
* harbour/contrib/hbwin/wapi_commctrl.c
* replaced hb_par*() and hb_stor*() calls used with additional parameters
by hb_parv*() and hb_storv*()
TODO: update examples/hbwhat/*.c files
* harbour/examples/uhttpd2/socket.c
* harbour/examples/httpsrv/socket.c
* changed hb_parni() to hb_parnidef()
* harbour/source/vm/itemapi.c
* removed some conversion which are not necessary for CA-Cl*pper
compatibility
* harbour/source/macro/macrolex.c
* replaced HB_LEX_IS*() macros by by HB_IS*() ones
* source/vm/fm.c
! Renamed s_fInited to s_fInitedFM to avoid collision
with similarly named variable in estack.c when using
HB_FM_STATISTICS and HB_HVM_ALL at the same time.
Thanks Xavi for the find.
* utils/hbmk2/hbmk2.prg
+ Added experimental filename escaping for *nix systems.
Currently only space is escaped. I'd like to ask *nix
users to make that complete.
TODO: For speed and completeness, maybe such escaping (quoting)
function would come handy in RTL. Przemek, it would be
great if you could add one if you agree.
TODO: It should also be enabled for linux/watcom, but
I cannot test this.
! Minor addition to Windows escaping in ArrayToList().
* utils/hbmk2/hbmk2.prg
% Reworked space in filename support to be generic. Now all
Windows compilers have it turned on, and this is the only
mode of escaping currently implemented (it may also need
to be revised).
For MinGW it's only turned on when host and target are
both Windows. Notice that MinGW has a few bugs regarding
filename handling, which means you cannot use spaces
in Harbour install path when also using input resource
files and you cannot use spaces as input lib names.
+ Added space in filename support for external Harbour
compiler.
! Fixed not to create working dir, if it's set empty.
* Minor formatting/cleanup.
* utils/hbmk2/hbmk2.prg
+ Added support for input/output filenames containing spaces.
Only for msvc and bcc so far.
! Fixed to always delete target lib in -hblib + non-incremental mode
before creating it.
+ Small miracles of life: Microsoft finally added /nologo switch to
resource compiler in MSVC 2010. Hard to believe, but true. Now
I'll have to find out what method to use to detect C compiler
version to enable it.
+ Support for HB_COMPILER_VER envvar to tell hbmk2 what C compiler
version is expected. Currently only used with MSVC targets.
Use values like:
- 710 (for MSVC .NET 2003)
- 800 (for MSVC 2005)
- 900 (for MSVC 2008)
- 1000 (for MSVC 2010)
The generic format is <99><99>[.<99>] as <major><minor>[.<revision>].
That makes BCC 5.5.1 '505.1' or shortly '505'.
Currently the only situation where such switch is necessary is when
using pre-8.0 MSVC versions, so most users don't have to bother with
this for now.
NOTE: Harbour GNU Make compatible HB_VISUALC_VER_PRE80 envvar still
supported to stay uniform.
+ Added /nologo switch to MSVC lib command.
! Protect against adding internally inherited C compiler switches,
if they are already on the switch list.
* tests/testhrb.prg
! Adapted to latest hbhrb.ch changes.
* tests/setkeys.prg
* Minor formatting.
* contrib/hbxbp/xbp.ch
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpsle.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpradiobutton.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbxbp/xbpstatusbar.prg
* contrib/hbxbp/xbppushbutton.prg
* Moved these constants to HBXBP_ namespace as they
don't seem to be defined by Xbase++:
- EVENT_HANDELLED -> HBXBP_EVENT_HANDLED
- EVENT_UNHANDELLED -> HBXBP_EVENT_UNHANDLED
! Using manifest constants instead of literals.
; TOFIX: AFAICS these macros and headers are also not Xbase++ ones:
- apig.ch
- DA_MODE
- objType*
If so, these should be resolved.
* contrib/hbqt/hbqt_slots.cpp
! Deleted readded windows.h.
; QUESTION: Is there any way to enforce such headers aren't
included in these portable sources?
* contrib/hbxbp/hbxbp.hbc
! Deleted hbwin lib.
; Pritpal, please use some other means to add hbwin.
hbxbp is a portable lib, so it mustn't depend on hbwin.
Use HB_USER_LIBS envvar, or pass it via command line,
use a local batch file, or add a local .hbc file in
your test dir with 'libs=hbwin' line only. These
will not cause problems for other users and will add
hbwin lib in your local environment.
* harbour/contrib/hbxbp/hbxbp.hbc
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/hbxbp/xbpdataref.prg
* harbour/contrib/hbxbp/xbpgeneric.prg
+ harbour/contrib/hbxbp/xbpsle.prg
* harbour/contrib/hbxbp/xbpwindow.prg
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Implemented XbpSLE() class. This implementation is almost
95% identical to Xbase++. One or two features remain to be implemented.
Please test and report back the differences.
* utils/hbmk2/hbmk2.prg
+ .hbl files will be created relative to target executable
directory if it was specified. If not, it will be created
relative to .hbm file dir, or hbmk2 launch dir (as before).