+ contrib/hbide/resources/dbf_p1.png
+ contrib/hbide/resources/dbf_p10.png
+ contrib/hbide/resources/dbf_p2.png
+ contrib/hbide/resources/dbf_p3.png
+ contrib/hbide/resources/dbf_p4.png
+ contrib/hbide/resources/dbf_p5.png
+ contrib/hbide/resources/dbf_p6.png
+ contrib/hbide/resources/dbf_p7.png
+ contrib/hbide/resources/dbf_p8.png
+ contrib/hbide/resources/dbf_p9.png
* contrib/hbide/resources/formview.png
* contrib/hbide/resources/home3.png
* contrib/hbide/resources/new.png
* contrib/hbide/resources/print.png
* contrib/hbide/resources/statistics.png
* contrib/hbide/resources/view_organized.png
* contrib/hbide/resources/view_tiled.png
* contrib/hbide/resources/view_vertstacked.png
* contrib/hbide/resources/view_zoomin.png
* contrib/hbide/resources/view_zoomout.png
+ contrib/hbide/resources/zoomin3.png
+ contrib/hbide/resources/zoomout3.png
* contrib/hbide/hbide.qrc
+ Added and refined above images.
* contrib/hbide/idedocks.prg
+ Assigned: "statistics" icon to "Welcome" tab.
! Reworked: many artifacts.
* contrib/hbide/idebrowse.prg
+ Implemented: Edits MDI area icons equivilent functionality
in ideDBU panels also. Now you can view browsers in
organized, cascaded, tiled, maximized, vertically tiled,
horizontally tiled, mode. Verically|Horizontally tiled
modes can be zoomed to fit the user requirements.
However the last close mode is not retained. Next run
always open the "Main" panel with "Organized" view.
+ Assigned: color-differentiated icons to every open browser
window. Now the view is more attractive and allows one to
memorize a browser by color.
With this commit, rounds of beutification for this session ends.
Now concentrating on a really-useful implementation you will
know by the end of next-week.
* contrib/hbxbp/xbp.ch
+ Added: few more constants with HBP* prefix to be used
for upcoming HbpMdiArea() class to manage MDI areas containing
sub-windows.
* contrib/hbxbp/xbpwindow.prg
+ Implemented: ERROR HANDLER OnError( ... ) method.
Now it is possible to call Qt object methods directly
with Xbp* objects. For example,
oXbp:oWidget:setLayout( ... )
=>
oXbp:setLayout( ... )
It is a very useful extension and empowers the developer
more freedom.
* contrib/gtalleg/gtalleg.hbc
! Fixed allegro-config command to not contain output redirection.
* contrib/hbcurl/hbcurl.hbc
! Fixed lib name on non-win platforms.
* contrib/hbgd/hbgd.hbc
! Fixed gd lib name on Linux.
* contrib/hbodbc/hbodbc.hbp
* contrib/sddodbc/sddodbc.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbcurl/hbcurl.hbc
* contrib/hbcurl/hbcurls.hbp
% Using allwin instead of win|wce.
* utils/hbmk2/hbmk2.prg
+ Added trick to not corrupt version numbers in libnames when
adding extension. (it will check for extensions beginning
with numeric and add instead of replace extension in such case)
! Fixed pkg-config/*-config parser when result contained LF chars.
* config/postinst.hbs
* Do not create dynlib symlink on non-*nix platforms.
; Now HB_BUILD_CONTRIB_DYN works for all contribs also on Linux.
; TODO: Shouldn't harbour-2.1.0.so be called harbour.so.2.1.0 ?
; TODO: Creating versionless links for contribs.
* contrib/make.hbs
+ Generalized the way dynamic lib dependencies are found
to make it work on *nix systems, too.
* include/harbour.hbx
+ src/rtl/libnamec.c
* src/rtl/libname.prg
* src/rtl/Makefile
+ Added HB_LIBEXT() and HB_LIBPREFIX() functions.
* utils/hbmk2/hbmk2.prg
+ Added "platform", "compiler", "cpu", "buildname", "dynsuffix"
to --hbinfo returned data.
* INSTALL
+ Documented HB_BUILD_CONTRIB_DYN setting. The default is
'no', and if set to 'yes', the build system will create
dynamic lib versions of the contribs.
* src/Makefile
* utils/hbformat/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* config/global.mk
* config/dos/watcom.mk
* config/dos/djgpp.mk
* config/dyn.mk
* config/rules.mk
* INSTALL
* Renamed HB_BUILD_DLL to HB_BUILD_DYN.
* debian/rules
+ Added LD_LIBRARY_PATH.
(it's needed here because the called make process won't
pass back any envvars to caller process)
* config/global.mk
+ Shows LD_LIBRARY_PATH in log.
- Do not clear HB_SYSLOC to allow override (from package makers).
+ Export HB_DYNLIB_PREF (for postinst.hbs).
* config/postinst.hbs
+ Creating Harbour dynamic lib symlinks, like the old postinst.sh
did. This fixes Debian build problems, and probably more.
; TODO: I didn't implement one scenario, I'd appreciate if someone
with bash and *nix skill could decipher the old code
and create the few .prg lines for this functionality.
! Fixed .hbx creation for core dynlibs on *nix systems.
* ChangeLog
* include/harbour.hbx
* src/rtl/Makefile
+ src/rtl/libname.prg
+ tests/libname.prg
+ Added HB_LIBNAME( <cDynLibName>[, <cDynLibDir> ] ) -> <cOSDynLibName>
Serves to convert a raw dynlib name, f.e. "hbct" to OS specific
notation, by adding platform specific extension, lib name prefix and
optional directory
* utils/hbmk2/hbmk2.prg
! Fixed dynlib prefix for symbian
* harbour/include/hbcomp.h
! fixed description of HB_VS_CBLOCAL_VAR macro
* harbour/src/compiler/hbmain.c
! fixed wrongly generated E0047 compile time error for
codeblocks with early evaluated macros accessing local
parameters. It should fix problem reported by Itamar.
* harbour/src/vm/hvm.c
* modified one #if condition to pacify ICC warning
reported by Andi
* INSTALL
* win-make.exe
* w64-make.exe
+ Update included GNU Make to 3.82 (from 3.81)
(locally built from CVS using msvc2010).
* contrib/hbpost.hbm
% Minor opt/cleanup.
* utils/hbmk2/hbmk2.prg
! Fixed to not propagate _ERRLEV_STOP from sub-projects.
% -stop will not stop processing any further cmdline options.
* Avoided one dangerous IF instruction.
* contrib/hbqt/hbqt_commons.hbm
% If static mode is not requested stop before loading plugins.
* config/global.mk
! Always set HB_REBUILD_* options to 'no' when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed setting LD_LIBRARY_PATH under pre-3.81 GNU Makes.
+ Will now set HB_SYSLOC=yes when creating .tgz packages which
are meant to be installed to system locations. (didn't test
this one)
+ Will now set HB_INSTALL_DOC to /share/doc/harbour on *nix systems.
! Fixed to set HB_INSTALL_MAN to /share/man (instead of /man) on
*nix systems.
; Please test/review these.
* config/postinst.hbs
+ Create directory for "root documents". They are now stored
in /share/doc/harbour for *nix.
! Fixed to store proper directory in ld.so.conf.d setting by
removing HB_INSTALL_PKG_TOP from the beginning of full dynlib
path.
* debian/rules
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
! Use HB_INSTALL_PKG_TOP to denote the root of package dir structure.
; TODO: Change the name to HB_INSTALL_PKG_ROOT
; TODO: Optimize variable usage.
; TOFIX: Use HB_INSTALL_DYN instead HB_INSTALL_LIB in context of
dynamic libs in postinst.hbs and package scripts.
* package/harbour.spec
! Fixed to honor HB_BUILD_NAME in local LD_LIBRARY_PATH setting.
(is it needed?)
* INSTALL
- Deleted note about GNU Make 3.81.90
3.82 is out and the bug was fixed.
! Updated mpkg_src.sh location.
* contrib/make.hbs
* Do not create dynlib, .hbd, .hbx if the main build process
returned with non-zero errorlevel.
* utils/hbmk2/hbmk2.prg
+ Return errorlevel when -stop is used in project.
+ Use manifest constants for errorlevels.
* config/hbextern.hbs
* Local function renamed.
* contrib/xhb/xhb.hbx
* contrib/hbxpp/hbxpp.hbx
* Regenerated.
* src/vm/pvaluehb.c
! Typo in comment.
+ contrib/hbide/resources/view_refresh.png
* contrib/hbide/hbide.qrc
+ Added: one more image.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
+ Added: "Reload Source" icon on the MDI area top-toolbar.
This facilitates to reload the source from disk. If the source
in the editor in modified state, a confirmation dialog is presented.
! Rearranged: MDI area left-toolbar icons to break them
in more logical units.
! Fixed: under MDI editing mode "Find" icon had stopped to work.
! Fixed: "Horizontal/Vertical" split option was not refreshed
under context menu after first activation.
* utils/hbmk2/hbmk2.prg
% Implemented optimized header parser code created by Przemek.
With these additions/modifications from previous algorithm:
+ Use FindHeader() to locate the referenced headers.
+ Use different algorithm to find C vc PRG headers.
% Completely skip known standard system headers.
% Do not go down to headers included as system (using <>)
IOW Check their timestamp but don't parse it for sub-headers.
Please review it, it was quite a tough task, so I may have
missed something. Here my reference build time went down
from ~4 to ~2.5secs.
! Above implementation had the nice side effect that it fixed
-autohbc feature in -inc mode.
! Fixed header finder code to always look in parent dir
(and don't look in current dir in such case).
I'd appreciate if this function (FindHeader() would be peer-reviewed
to verify if it really matches the way how Harbour and C compilers
try to find headers.
* config/postinst.hbs
! Fixed typo in a recent commit causing RTE.
* config/hbextern.hbs
* Hide stderr in lib listing call.
* contrib/hbcurl/hbcurl.c
% Use '#include <>' to refer to curl header.
* config/hbextern.hbs
% Synced extern extractor regex queries between compilers.
+ Added NOTE that non-gcc extractors don't support dynamic lib
as input, so they cannot be used to generate core .hbx files.
* contrib/make.hbs
% Deleted unused code that's really not needed anymore.
* config/hbextern.hbs
+ Added HB_REBUILD_EXTERN support for msvc, pocc, watcom and bcc
compilers.
* contrib/make.hbs
* config/postinst.hbs
! Fixed to convert input file for extern generation to native format.
* utils/hbmk2/hbmk2.prg
+ Added ${hb_dynsuffix} macro which returns a dynlib suffix
value compatible with the naming system used for Harbour core
dynlib (-x64, -wce-arm, -bcc, etc..)
% Internals optimized to use dynsuffix value when calculating
harbour core dynlib name.
! Fixed to not require macros inside filters to be uppercases.
(as a side effect now unknown macro names will be passed
as is to getenv() to check for possible envvar value)
* contrib/hbpost.hbm
+ Will now use ${hb_dynsuffix} when forming output name in
-hbdyn mode. So f.e. for x64 targets an '-x64' suffix will
be used, which matches with the one used with core harbour
dynlib. Also bcc targets will get -bcc postfix.
+ Will now use ${hb_dynsuffix) when forming implib output name
if it's not empty (for x86, ia64, wce and bcc in practice).
* contrib/make.hbs
* config/postinst.hbs
! Display msg about extern generation only if it was really started.
* config/hbextern.hbs
! Fixed to check for the presence of input file.
* contrib/make.hbs
* config/postinst.hbs
* config/hbextern.hbs
+ Implemented manual include/exclude filter in extern header
generation process. Include filters can be specified
using '// HB_FUNC_INCLUDE <func>', exclude filters using
'// HB_FUNC_EXCLUDE <func>'. By default everything is
included, this can be overridden using HB_FUNC_INCLUDE,
and exceptions made using HB_FUNC_EXCLUDE. <func> can
contain wildcards, so it's very flexible.
NOTE: - By default the functions are declared using DYNAMIC
so these generated can be directly used when the goal
is to load pcode dynamic libs dynamically.
- By #defining '__HBEXTERN__<libname>__REQUEST' the
generated headers will switch to EXTERNAL declaration,
so they can be used when building dynamic libs or when
user wants to explicitly pull all functions into lib
code. Do not use this from app code.
- When __HBEXTERN__<libname>__REQUEST is defined, the
generated headers will also ANNOUNCE __HBEXTERN__<libname>,
which means that application can simply pull all functions
into app code, using:
'REQUEST __HBEXTERN__<libname>__' command.
- Names are not necessarily finalized yet. ("extern", ".hbx")
- Deleted hard-coded exceptions from generator code.
; TODO: Clean core generated headers to behave like before.
; TODO: Adapt hbextern lib to these changes.
; TODO: Add generated headers to SVN for contrib libs.
; TODO: Add stubs which include generated headers to all libs.
; TODO: Long term TODO: make it easy to generate such headers
for 3rd party projects.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextcdp.ch
* include/hbextlng.ch
* include/hbextern.ch
* contrib/hbct/hbct.hbx
+ Filled HB_FUNC_INCLUDE, HB_FUNC_EXCLUDE exceptions to
achieve the previous hard-coded results.
* Regenerated.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
* config/postinst.hbs
* config/hbextern.hbs
* bin/hbmk2l2d.hbs
* bin/hbxpatch.hbs
+ Added -km, -ko options.
* config/postinst.hbs
! Fixed to only do install tasks in install build phase.
* Changed to only regenerate headers in non-install phase.
* Makefile
+ Passing build phase to postinst.hbs.
* INSTALL
+ Elaborating a bit more on the meaning of 'local' in HB_WITH_*
settings.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextern.ch
* config/postinst.hbs
! Fixed to exclude HB_GT_ symbols, put HBSYMBOL to hbextsca.ch,
put USRRDD_* to hbextudd.ch.
; NOTE: May I ask to review the new headers compared to old
one to see what else have to be filtered out or moved
to different header?
* utils/hbrun/hbrun.prg
+ Will now add the script's home directory to the header dir list.
* contrib/make.hbs
* config/postinst.hbs
+ config/hbextern.hbs
+ Moved extern header generation low level logic to separate script.
+ Added feedback about extern generation.
+ Moved core extern header generation logic to postinst.hbs.
! Minor fix to output when postinst is used in non-install phase.
* contrib/global.mk
+ Displays HB_REBUILD_EXTERN setting.
* Makefile
* Changed to always execute config/postinst.hbs, not just in
install phase.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextcdp.ch
* include/hbextlng.ch
* include/hbextern.ch
+ Replaced content with automatically generated one.
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
* Deleted "just" functions and replaced them with HB_SYMBOL_UNUSED()
macro, which has no runtime overhead.
* contrib/hbide/hbide.hbp
- contrib/hbide/iderequests.prg
- Deleted requesting HBQT component via "just" function. Now it's
done by EXTERNAL statements. BTW this function was not called,
so it was ineffective. Pls correct me if I missed the point
of the old solution.
* contrib/hbide/ideprojmanager.prg
! Populated: Project Properties dialog with properties of project
set as the current one. It necessarily activates the dialog window.
Reported by Parteciepe.
* contrib/hbide/ideprojmanager.prg
% Fixed: ( hopefully ) the OS path syndrome when a .hbp from
Windows is ported to *nixes.
* contrib/hbide/ideedit.prg
! Minor.
* contrib/hbide/idedocks.prg
+ Implemented: MDI Editing Area - LeftToolbar - Actions:
1. Show Maximized: turns all panels in maximized mode.
In this mode MDI and Stacked protocols are almost the same,
though, MDI mode has many other advantages than Stacked one.
2. Show Stacked Vertically: viewport is distributed in equal
parts vertically and each panel is assigned this much height.
Width of the panel is limited to viewport width. In this
mode "Stats" panel is not considered.
3. Show Stacked Horizontally: viewport is distributed in
equal parts horizontally and each panel is assigned this
much width. Height of the panels equals viewport height.
4. Zoom-in: If view mode is "Stacked Vertically | Horizontally",
then per zoom-in increases the height|width of the panel by
25% more than the current. Zoom-in and zoom-out are never in the
same ratio.
If hbIDE is closed in maximized state, it is presented the same
at next run. This is not true for Vertical|Horizontal stacked view.
The reason is size of the viewport is not determined at the time
of panel creation.
Icons on the toolbar are not representing the actions properly,
and hence are subject to change.