* utils/hbmk2/hbmk2.prg
+ --hbrefs option renamed to --hbinfo and now also includes
target type.
+ Extended target detection with 'hbppo' and 'hbhrb' types.
These are automatically detected from Harbour option usage.
+ Added ${hb_outputname} macro. Returns the output name as
specified with -o option, without extension. Returns empty
if there wasn't -o option at the point of usage.
+ Added ${hb_outputdir} macro. Returns the output dir as
specified with -o option. Returns empty if there wasn't
-o option at the point of usage.
+ -p -s options don't require to manually select -hbraw
mode, it will be autodetected.
! Fixed to not interpret -i- Harbour option as include dir.
+ Don't add the same Harbour option twice.
* contrib/Makefile
* contrib/make.hbs
+ contrib/hbpost.hbm
+ contrib/hbpre.hbm
% Cleaned the way build options are passed to hbmk2.
+ Synced much more options and build behavior of hbmk2
based contrib build with GNU Make build (debug, unicode,
warnings, Harbour settings, C settings)
+ Added more projects to hbmk2 build method.
% Deleted MS-DOS specific hack (for now) because the new
cmdlines are very short.
; TODO: Now make.hbs is not self-contained, which would
better be solved somehow.
* contrib/make.hbs
+ It will now detect and show target type in stdalone mode.
+ Synced default build options with GNU Make.
* contrib/hbqt/hbqts.hbp
* contrib/hbqt/hbqtguis.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtnetworks.hbp
+ Added -hblib option to make it easy to detect target type
for 3rd party tools.
* contrib/hbnetio/utils/netiosrv.prg
+ Will now also accept .hbs and .prg files as RPC filters.
- contrib/hbnetio/utils/modules
* contrib/hbnetio/utils/modules.hbp
+ contrib/hbnetio/utils/rpcdemo.hbs
* Renamed RPC demo to .hbs.
* Deleted modules subdir.
- contrib/hbnetio/utils/hbmk.hbm
* contrib/hbnetio/utils/hbnetio.hbp
- Deleted separate hbmk.hbm.
* contrib/hbnetio/utils/netiocmd.prg
! Minor in help screen.
* contrib/hbnetio/tests/netiotst.prg
+ Added some feedback.
* src/rtl/gtsys.c
! Added hack to fix setting default GT in bcc C++ builds.
(please replace this with more elegant solution)
* src/rtl/gtwin/gtwin.c
* static var prefixed with 's_'
* contrib/hbqt/hbqt_common.hbm
* contrib/hbqt/hbqtcore.hbp
* contrib/hbqt/qtwebkit/hbqtwebkit.hbp
* contrib/hbqt/hbqscintilla/hbqscintilla.hbp
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/qtdesigner/hbqtdesigner.hbp
* contrib/hbqt/hbqt.hbp
* contrib/hbqt/hbqtgui.hbp
- -hblib option moved from common part to each .hbp.
It's cleaner and more generic this way plus it helps
tools (make.hbs and hbide) to decide about project type.
* src/compiler/genc.c
* src/compiler/gencc.c
! Fixed format strings to be win64 compatible. Also fixing
mingw64 (4.6.0) reported warnings.
; I'd appreciate a review here. There are explicit lengths
used in some of these format strings, which may need to
be extended.
* src/rdd/dbffpt/dbffpt1.c
! Silenced bcc warning.
* contrib/hbide/idehbprotos.prg
- Deleted references to contribs (and some local projects not
present in SVN).
Pls don't readd them as they break separation of components.
; TOFIX: Remove even Harbour one, because hbide is supposed to
be a separate component, which means HBIDE users shouldn't
be forced to match their HBIDE version with the Harbour
version which they use. F.e. they may even use HBIDE to
develop using multiple versions of Harbour or even xhb,
so hard-wiring language information directly into the
.exe is not good solution. Instead pl rely on doc/en
folder dynamically found in pointed distribution.
* src/rtl/console.c
* src/rtl/hbgtcore.c
* Made internal error codes of "terminal init failure"s
occuring in different situations different. I hope I
left 9998 for the one that happens usually.
* contrib/Makefile
- Deleted hbnetio from list, it's now made by make.hbs.
* config/postinst.hbs
* Minor.
* package/winuni/mpkg_win_uni_extra_copy.bat
+ Include /doc/* tree in binary distro.
This makes code generation and embedding that large amount
of generated code into hbide itself (at build time) unnecessary.
All hbide needs to do is processing these docs at runtime, and
storing the results and index (f.e. as serialized hash into some
local cache dir in its setting area). At startup, periodically,
or by users request it can rescan the docs and regenerate its
caches.
* utils/hbmk2/hbmk2.prg
+ Added nesting level information to --hbrefs output.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Changed: threshhold to activate codec ompletion list from 3 to 1.
+ contrib/hbide/idehbprotos.prg
+ Added: Harbour prototypes generated auto from Harbour documentation
text file spread in harbour/../doc/en folders.
* contrib/hbide/hbide.hbp
+ Added: idehbprotos.prg.
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idesaveload.prg
+ Implemented: in-place Harbour keywords and prototypes as a .prg list.
Now no need to have Harbour installed on the machine to have them.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
+ Implemented: Harbour function definitions which are part of
Harbour documentation files in /doc/en folders viewable in
Documentation Viewer available as code completion lists.
For this to happen, you must have Harbour's root path
provided in Documentation Viewer dialog.
So, as an example, if definitions are loaded ok, you
must see a list of QWeb*() functions as soon as you type "Web"
in an editing instance.
Please provide your input what else is missing.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
! More fix to previous. Now the visibility of source behavior is Ok.
* contrib/hbide/ideeditor.prg
! Changed: numeric to character events notation.
* contrib/hbide/idesaveload.prg
! Minor.
* INSTALL
* contrib/hbqt/hbqts.hbp
* contrib/hbqt/Makefile
* contrib/hbqt/hbqtguis.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtnetworks.hbp
* HB_QT_STATIC renamed to HB_BUILD_QT_STATIC (INCOMPATIBLE)
(may not be final name)
* contrib/hbqt/hbqt.hbc
* Using HB_STATIC_QT envvar to chose to build against static
HBQT/QT components. This makes it in sync with rest of
contribs.
* harbour/include/hbpp.h
* harbour/include/hbmacro.h
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexprb.c
* harbour/src/pp/ppcore.c
* harbour/src/compiler/hbmain.c
* harbour/src/vm/macro.c
! fixed code used to decide about early and late macro
evaluation in codeblocks to be exactly Clipper compatible.
Now if codeblock contains at least one macro variable
(i.e.: &var, any&var, any&var.2) then it's always early
evaluated.
Please remember that codeblocks which contains only simple
macro variable ( &var[.] ), i.e.:
{|| &var }
are modified during compilation by Clipper and Harbour compilers to:
&( "{||" + var + "}" )
and then PCODE is generated. It allows to use LOCALs, STATICs and
FIELDs as 'var' in such expressions. In xHarbour above functionality
was extended to work also with macrotext variables, i.e.:
{|| &var.2 }
If you think it's important extension then I can make the same
in Harbour or I can even implement it for all codeblock expressions
with macros using declared non memvar symbols, i.e.
{|| &var + 1 }
what should effectively eliminate E0047 compile time error
! fixed compile time error E0042 "Macro of declared symbol..."
to be generated with the same conditions as in Clipper.
! fixed compile time error E0047
"Code block contains both macro and declared symbol references..."
to be generated with the same conditions as in Clipper.
Note: -km switch disables macro text evaluation so also above errors
unless macro is not used in codeblock
Warning: above modifications can cause compile time errors in some
code which was not Clipper compatible and in such case they
will have to be updated.
* harbour/utils/hbtest/rt_math.prg
! updated code with Clipper incompatible code exploited by above
modifications
* bin/hbxpatch.hbs
* utils/hbmk2/hbmk2.prg
* contrib/make.hbs
* config/postinst.hbs
* contrib/hbide/idemisc.prg
* contrib/hbide/idefunctions.prg
* hbmk2 rooted filename/path handling functions renamed.
Now they are in sync with hbmk2_*() (plugin) flavour.
With their new names they could even be included in core,
by adding an hb_ prefix to them.
* Renamed one internal constant in hbmk2.
* contrib/hbide/idemisc.prg
- Deleted unused hbmk2 function.
* src/rtl/filesys.c
* src/rtl/filebuf.c
* src/rtl/fssize.c
* HB_FOFFSET vars renamed to have n prefix (instead of ul and ll)
* contrib/make.hbs
! Fixed output dirs in stdalone mode.
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbwin/olecore.c
* contrib/hbwin/win_bmp.c
* HB_SIZE vars renamed.
* utils/hbmk2/hbmk2.prg
% Never delete the same file twice in -hbimplib -clean mode.
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/setup.ui
+ Implemented: application of constructed gradients to hbIDE components.
Now n number of gradients can be defined to be applied to
hbIDE. "Toggle Animation" respects these settings as well.
<Setup Dialog><Themes> provides you with necessary constructs
to define and apply. Still the last applied is not saved: TODO.
So next run will revert to defaults as per animation mode.
* contrib/make.hbs
! Fixed stdalone mode to create target in their usual GNU Make
target dir.
! Fixed HB_BUILD_NAME handling.
* INSTALL
* utils/Makefile
* config/postinst.hbs
% Changed postinst to create .hbl file on its own behalf without
calling hbi18n.
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/setup.ui
+ Implemented: application themes - a work-in-progress yet for
final implementation. Just have a fun to play with it currently.
Next commit will see it to real fruitation.
* INSTALL
* contrib/make.hbs
+ Added standalone mode. The goal is to emulate GNU Make's
nice in-place build feature for contribs hbmk2 make files.
Run with 'hbrun ../make.hbs [clean] [install]'
(install mode's installation phase doesn't work yet)
+ Added contrib type autodetection.
* HB_ADDONS_LIB, HB_ADDONS_BIN merged into HB_BUILD_ADDONS,
now the type is autodetected.
% Move hbmk2 cmdline to HBMK_OPTION only on MS-DOS hosts.
+ Added *nix script header.
+ Updated TODO list.
; NOTE: Most tasks are ready now regarding make system
migration in contrib area from GNU Make to hbmk2.
* config/postinst.hbs
+ Added native .hbl generation logic which doesn't require
hbi18n executable. (not used yet)
* bin/hbxpatch.hbs
* contrib/make.hbs
+ Added svn:executable flag.
* harbour/src/rtl/cdpapi.c
% removed one redundant if() condition
* replaced not working HB_CDP_[UN]LOCK used in hb_cdpList()
function with simple counter as protection against possible
overflow.
* harbour/src/compiler/complex.c
+ added support also for "." as date delimiters in VFP compatible
date[time] constant values.
* harbour/doc/xhb-diff.txt
* updated description of date[time] constant values syntax
to follow current Harbour and xHarbour behavior.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Using hbmk2 to do xMate conversion.
It's now also possible to convert from hbmake (I don't
its standard extension), and xbuild projects (I didn't
add it to the UI though).
Please fix me: I'm still having a hard-time telling
hbide where hbmk2 is. Plus I used hb_processRun(), pls
replace it with any method is fit for hbide.
- Deleted redundant copy-pasted (and outdated) code from
hbmk2 hbide source into hbide. (BTW their licence
was also incompatible, pls don't put it back there)
* utils/hbmk2/hbmk2.prg
+ Added comments to converted .hbp files about the original
source and format.
* INSTALL
* GNU Make 3.81 recommended (without 'or upper')
+ Documented GNU Make 3.81.90 bug.
* contrib/make.hbs
* Minor tweak to avoid line ending spaces in stdout.
* Minor visual cleanup.
* contrib/hbide/hbide.hbp
+ Added instfile option to install .dlls on Windows systems.
* config/postinst.hbs
! Fixes in comment and feedback output.
- Deleted commented .hbl generation stuff based on hbmk2.
* config/postinst.hbs
+ Using hbi18n tool to generate .hbl files to utils.
(currently hbmk2 only)
This fixes missing .hbl after latest changes which dropped
regenerating utils at postinst phase. At the same time it
enables .hbl file generation for all platforms. The logic
will automatically generate .hbl files for all .po files
found under any utils.
* INSTALL
* utils/Makefile
+ Added hbi18 to the list of tools required to build Harbour
in cross-platform situations.
* contrib/hbqt/hbmk2_plugin_qt.hbs
! Fixed QT tools detection on HB_WITH_QT.
+ contrib/hbide/editor.ui
+ Added: to be used a little while.
* contrib/hbide/setup.ui
+ Added: <Selections><Code Completion>
1. Completion List with Arguments ?
2. Complete Code including Arguments ?
* contrib/hbide/hbide.hbp
* contrib/hbide/idebrowse.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/idesaveload.prg
+ Implemented: a better control over code completion feature.
Now completion list can be presented with argument list intact,
i.e., hbide_isValidSource( cSourceFile ) can be presented
either as (default) hbide_isValidSource OR
hbide_isValidSource( cSourceFile )
Similarily, code can also be completed including arguments
list or without it. Please experiment.
* utils/hbmk2/hbmk2.prg
+ -autohbc now has natural defaults, header part will
automatically get .ch extension, .hbc part will automatically
get .hbc extension. If .hbc is not specified, it will become
the same as header name. So f.e. '-autohbc=hbwin.ch:hbwin.hbc'
can be written simply as: '-autohbx=hbwin'.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added new experimental feature:
.hbp: -autohbc=<.ch>:<.hbc>
.hbc: autohbcs=<.ch>:<.hbc>
If such setting is used, f.e. in hbmk.hbc, it's possible
to automatically trigger .hbc files by key headers.
So f.e. if 'autohbcs=hbwin.ch:hbwin.hbc' is added to
hbmk.hbc, every projects where any .prg file references
hbwin.ch will automatically include hbwin.hbc, thus setting
up headers dir, libs and everything else that's required
for hbwin.
% Minor opt to -instfile handling.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Corrected: code completion popup's vertical positioning.
It was not nonoring the visibility of horizintal ruler.