* utils/hbrun/hbrun.prg
+ Making available original hbrun location using __HBRUN__DIRBASE
envvar. This information is lost when doing the argshift trick,
pls shout if you see a better solution for it (or any concerns
with this one).
* contrib/make.hbs
+ Will now use unified method for both stdalone and GNU Make to
find out the location of hbmk2. It will look for it in the same
dir as of hbrun's.
* config/postinst.hbs
* Converting bash to .prg in progress.
* INSTALL
+ Documented Mac OS X architecture flags.
* package/harbour-win.spec
* package/harbour-wce.spec
* package/harbour.spec
- Deleted package properties not recommended by RPM docs.
+ Added RPM doc references.
- Deleted commented lines.
% Optimized out seemingly unused temp envvars. (I didn't retest)
* package/winuni/mpkg_win_uni.nsi
+ Added bin/*.hbs files.
* config/postinst.hbs
- Deleted mandrake distro autodetection.
* contrib/hbide/idestylesheets.prg
+ Disabled all UI customizations when "animations" is not enabled.
This makes the UI to look like on normal system UI on all supported
OSes (IOW it now looks like a standard application), it fixes
most reported visual irreguralitites on Linux.
Maybe multiple levels of UI customizations are required, anyway
totally off should always stay an option and only those configs
should be presented on a given platform which were actually tested
on that given platform.
It didn't fix the bugs in highlight position calculation, which
is off on Linux (latest Ubuntu) by almost a line in some occasions.
* package/harbour.spec
! Deleted hbbz2 from lib list. It was not added to contrib list.
; TOFIX: This separately maintained contrib (and target lib) list
should be somehow avoided. It's a permanent maintainence
problem.
Is there a way to automatically include all files in a
given directory when creating rpms?
! Added hbminizip lib to lib list.
! Deleted one of the double hbmzip libs from lib listing.
! Added .hbl and .hbs files in bin dir.
* utils/hbmk2/hbmk2.prg
+ Added -instforce option which will force the target to be
copied to -instpath even if it was up to date. This is to
make it in sync with GNU Make behaviour, where single
'make install' will copy everything regardless of being
up to date or not.
* contrib/hbpost.hbm
+ Added -instforce to make it in sync with old GNU Make
behavior. Such case is exploited by .rpm generation, and
this is the reason why the contrib libs weren't
appearing in target lib dir.
* config/postinst.hbs
+ Added two .so related TOFIXes.
* mpkg_src.sh
+ Changed to always delete temp file bin/hb_flst.tmp containing
a list of all source files. (anyone knows why was it left there?)
* package/harbour.spec
* Minor in comment.
* Temply commented adding .so files in the lib/ root (without harbour postfix)
* contrib/make.hbs
* contrib/hbpost.hbm
+ Added support for HB_MAN_INSTALL, HB_ETC_INSTALL.
* utils/hbmk2/hbmk2.prg
+ Enabled multi-input compilation for *nix gcc family. This means that
all C source files will be now compiled in one gcc invokation, instead
of compiling them one by one.
% PATHNORMALIZE(): delete unused function.
% ISDRIVESPEC() converted to macro _ISDRIVESPEC().
* config/postinst.hbs
+ Added code to create ld config file.
+ Added commented original bash code to create .so links which I cannot
understand. Anyone to jump in?
+ Added PathNormalize() function from hbmk2.
+ Changed back DirBuild() to always normalize path before creating it
(to filter out potential ".." and "." dirs from it). Required for
ld creation.
* config/global.mk
* HB_ETC_INSTALL is now format equally on all *nix platforms to have a
'harbour' subdir. Required to work well with ld creation logic in postinst.hbs.
* contrib/hbxbp/xbplistbox.prg
+ Added: method :setVisible().
* contrib/hbide/ideedit.prg
* contrib/hbide/hbide.prg
+ Implemented: "Functions List" now supports "Sorted" and "Natural Order"
display which is switchable via right-click context menu.
* contrib/hbide/idedocks.prg
% Fixed: a rare bug where if hbIDE is minimized by any other action
than clicking on the "Minimize" title-bar icon on the right,
on restoration it was producing RTE.
* contrib/hbide/idesaveload.prg
+ Added: ::aDictionaries instance variable. Futuristic implementation.
* mpkg_rpm.sh
- Deleted conectiva specific branch which apparently was never run.
* package/harbour-win.spec
* package/harbour-wce.spec
* package/harbour.spec
- Deleted CC_HB_USER_PRGFLAGS.
- Deleted conectiva and aurox (discontinued) distro detection.
! Fixed to delete libbz2.a (I hope it's right)
- Deleted logic installing man and .def files. Now it's done by
postinst.hbs.
! Fixed HB_MAN_INSTALL definition not being included before build.
* contrib/make.hbs
% Cleaned away test/migration modes.
* One STATIC var changed to local.
* contrib/hbpre.hbm
+ It's now possible to get all hbmk2 output along the Harbour
build process by setting HB_BUILD_VERBOSE=yes.
* examples/hbdoc2/gentpl.prg
* examples/hbdoc2/genhtml.prg
* examples/hbdoc2/hbdoc2.prg
% Optimized out another pathsep holder variable.
* mpkg_rpm.sh
* Another shot in the dark.
- contrib/hbdoc2
+ examples/hbdoc2
* Moved back to examples.
; TODO: Should be updated to use core API to load docs and
to generate output from the internal doc hashes.
* mpkg_rpm.sh
! Fix to always copy harbour.spec to SPECS dir.
Shot in the dark.
* package/harbour-win.spec
* package/harbour-wce.spec
* package/harbour.spec
- Deleted RPM specific readme. Similar information is now
found in INSTALL.
* contrib/hbwin/win_regc.c
! WIN_REGQUERYVALUEEX(): Fixed to check return value of
subsequent internal RegQueryValueEx() calls. Return NIL
if failed. (value length will still be reported as
received back from first RegQueryValueEx() call)
* contrib/hbide/hbide.hbp
! Fixed QT .dll copying options. Commented the whole thing.
* contrib/make.hbs
+ Added support for 'clean all' build mode. This is the only
way to clean and rebuild in one pass if someone doesn't
want to install at the same time.
! Fixed to add -inc option in clean sessions.
* contrib/hbide/ideactions.prg
! Fixed menu item text to not contain '&' mark. It's converted
to underscore on Linux.
* config/postinst.hbs
+ Will now install root documents (INSTALL, COPYING, TODO, ChangeLog)
to HB_DOC_INSTALL on *nix systems.
+ Will now create the HB_MAN_INSTALL dir before copying.
* debian/rules
+ Sets HB_MAN_INSTALL.
+ Sets HB_BUILD_SHARED=yes.
% Deleted explicit reference to man files and ChangeLog, these are
now installed by postinst.hbs and picked automatically by debhelper.
This means that now debian/rules doesn't have to be tweaked
if any Harbour files change name or location.
- package/debian
+ debian
* INSTALL
* Moved back to root. Seems like this MUST be in root and there
is no way to tell debhelper tools otherwise.
* debian/rules
% Deleted unnecessary stuff. Pls review me.
* config/global.mk
! Minor in comments.
* config/postinst.hbs
+ Added more feedback.
* Internal cleanups.
+ Changed to always copy to etc if there is target dir defined.
! Fixed typo in man copying.
* config/global.mk
+ Added logic to setup dirs for *nix package creation.
Fixing .tgz creation to work like before.
* Changed to only set HB_MAN_INSTALL if installing to sysloc.
* utils/hbmk2/hbmk2.prg
* config/postinst.hbs
! Fixed DirBuild() function when crearing absolute paths without
a drive letter. It created dir in current dir on non-*nix and
didn't do anything while returning success on *nix.
; Now mpkg_tgz.sh replacement is about finished.
It's pbly not 100% the same still, so pls review it.
* config/postinst.hbs
! Fixed missing EOLs in embedded install bash script.
+ Added Przemek copyright for embedded install bash script.
! Minor fix to uname based *nix system name detection.
* utils/hbmk2/hbmk2.prg
+ Added new plugin APIs:
- hbmk2_AddInput_OBJ()
- hbmk2_PathFromWorkdirToCWD()
- hbmk2_CWD()
+ Changed to not abort processing if there are no input files, but
there are custom plugin input parameter.
+ bin/hbmk_l2d.hbs
+ Added rough plugin to convert static libs to dynamic libs
on platforms supporting 'ar' tool (and of course the notion
of such conversion). This is meant to replace functionality
provided by bash script hb-mkdyn.sh.
Pls find cmdline example in the script header.
* config/postinst.hbs
+ Now installs hbmk_l2d.hbs
- bin/hb-mkdyn.sh
- Deleted hb-mkdyn speciality shell tool to convert static
libs to dynamic ones.
- bin/postinst.sh
- Deleted, it only started hb-mkdyn.sh, which was just deleted.
* Makefile
- Do not run postinst.sh anymore.
* mpkg_rpm_win.sh
- harbour-win-spec
+ harbour-win.spec
* mpkg_rpm_wce.sh
- harbour-wce-spec
+ harbour-wce.spec
* Renamed to have standard extension.
* config/postinst.hbs
- Deleted detection for no longer existing Linux distros.
* external/sqlite3/sqlite3.c
* external/sqlite3/sqlite3.dif
* external/sqlite3/sqlite3.h
* external/sqlite3/Makefile
+ Upgraded to 3.7.0 (from 3.6.23.1)
It was a manual update because hbxpatch created a dif with the
whole content due to fact that the original zip download has
LF EOLs while the one in my local (Windows) sandbox has CRLF.
* config/common/watcom.mk
! Fixed regression after (adding .exe extension to win/watcom $(CC)):
2010-07-21 10:14 UTC+0200
- mpkg_rpm_from_svn.sh
- Deleted.
* contrib/hbide/hbide.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/ideedit.prg
% Fixed: a bug in code completion flush in FIELD-> and ALIAS-> section.
- mpkg_deb.sh
- Deleted wrapper script. Pls use the method documented in
INSTALL to build .deb files.
* utils/hbmk2/hbmk2.prg
* Minor change in output for better clarity.
* debian/rules
* harbour.spec
* config/instsh.mk
* Do not use HB_INST_PKGPREF.
* harbour.spec
+ Use HB_MAN_INSTALL
* config/global.mk
+ Added HB_MAN_INSTALL and HB_ETC_INSTALL
+ PKG_NAME is now filled in little bit different way for
*nix systems to emulate old mpkg_tgz.sh logic.
* bin/postinst.sh
- Deleted no more used subroutines.
- Deleted mk_hblibso() function.
- it maintained loca list of contribs which breaks the
effort of contrib "plug-in" system
- it contained lots of platform dependent build details in
hard to maintain bash shell code.
; If someone needs this functionality pls try to integrate
it in hbmk2 or write a .hbs script in modular fashion
(not contrib names). I cannot tell what exactly was the functionality
implemented there though. Maybe rewriting it locally is also an
option.
! Do not use HB_INST_PKGPREF.
* config/postinst.hbs
+ Rewritten mpkg_tgz.sh logic in .prg code. This logic is
finally in it's proper place.
+ Implemented copying of man files on *nix systems.
; NOTE: Not tested at all, it was hard enough to rewrite it,
pls help on finishing and debugging it. See TODOs in
source. Previous replicated with some differences.
- mpkg_tgz.sh
- Deleted. Now implemented in postinst.sh.
Build Harbour with HB_BUILD_PKG=yes to try it.
* INSTALL
+ Added HB_MAN_INSTALL and HB_ETC_INSTALL
+ Updated .tgz binary instructions (now same on all platforms)
* utils/hbrun/hbrun.prg
* utils/hbrun/hbrun.hbp
* utils/hbrun/Makefile
* Renamed include dir control var.
* Change so that now simple HB_INC_INSTALL value will
trigger burn-in of header location.
+ Added logic to only use burnt-in header location if
it is an absolute path.
! Synced .hbp file with this feature.
; NOTE: This is still non-portable and error
prone solution. Pls see my thought on dev list
about possible solutions to use precompiled
Harbour headers compiled right into the executable.
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbxbp/tests/wvtqt.hbp
! Added missing SVN header.
% Cleanup.
* INSTALL
* contrib/hbpost.hbm
* config/global.mk
* Changed HB_BUILD_IMPLIB to HB_INSTALL_IMPLIB to reflect
new meaning after recent changes. With new build system
the implibs are always created in lib working dir, and
this setting only controls whether to copy it to final
install directory. The default is still 'no'. Setting it
to yes is only recommended if the installation will be
used in local environment (3rd party .dlls) only. IOW
never set this to yes when creating a build for other
users (f.e. for distribution).
INCOMPATIBLE if you used this setting, pls change it now.
* INSTALL
+ Documented HB_STATIC_* options.
* contrib/make.hbs
* Updated TODO list.
* src/debug/debugger.prg
* src/rtl/dirscan.prg
* tests/wcecon.prg
* contrib/xhb/traceprg.prg
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbqt/generator2/hbqtgen2.prg
* contrib/hbxbp/tests/demoxbp.prg
* contrib/hbxbp/tests/dialogqt.prg
* contrib/hbxbp/tests/wvtqt.hbp
* contrib/hbhpdf/tests/harupdf.prg
* contrib/gtwvg/tests/wvgtbrowser.prg
* contrib/gtwvg/tests/wvgwvtclasses.prg
* contrib/hbtip/tests/dbtohtml.prg
* contrib/hbtip/mail.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idetools.prg
* contrib/hbide/idesources.prg
* contrib/hbide/hbide.prg
* examples/uhttpd2/umain.prg
* examples/hbvpdf/tests/pdf_demo.prg
* examples/httpsrv/uhttpd.prg
* examples/httpsrv/cgifunc.prg
* examples/httpsrv/modules/tableservletdb.prg
* examples/httpsrv/session.prg
* HB_OSPATHSEPARATOR() -> HB_PS()
% Delete temp vars along the way.
* utils/hbmk2/hbmk2.prg
+ Generalized internals for support for older Harbour and
xhb versions.
+ Added -hb20 option. (thanks for asking for it so nicely ;)
* contrib/hbqt/tests/dialogqt.prg
% Some refinement.
+ contrib/hbxbp/tests/dialogqt.prg
+ contrib/hbxbp/tests/wvtqt.hbp
+ contrib/hbxbp/tests/wvtqt.prg
+ Presented: how a Windows console application can make use of
powerful Qt capabilities. The key lies in the MT mode.
NOTE: follow previous log entry for details.
+ contrib/hbqt/tests/dialogqt.prg
+ contrib/hbqt/tests/wvtqt.hbp
+ contrib/hbqt/tests/wvtqt.prg
+ Presented: how a Windows console application can make use of
powerful Qt capabilities. The key lies in the MT mode.
1. Issue hbmk2 wvtqt.hbp -run
2. Press F12 to open Qt dialog. It is the same as in demoqt.prg.
3. Navigate in the Qt and console window at will.
4. Remaining in console, press F12 again, another dialog will open.
5. To go further, in any Qt dialog, point to <Dialog> menu option
and click on "Another dialog".
6. Navigate among windows.
7. Close any Qt window. I mean play with the opened windows.
This opens up yet another vast space for Harbour developer.
NEXT: in the process to present same functionality with hbXBP also.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
+ Added: more class methods.
* contrib/hbide/ideedit.prg
% Refined: alias->fieldsList protocol.
+ Implemented: abbreviated code completion usage.
Here is how it works:
1. Create {hbide_resources_path}/hbide_protos_shorthand.txt
2. Include entries ( one for every separate line ) similar to:
zSDB- SET DATE BRITISH
zSAT- SET ALTERNATE TO "myfile"
zCmdD- DEFINE WINDOW oWnd BLAH-BLAH-BLAH
3. Execute hbIDE. Remember that any file prefixed as "hbide_protos_"
will be populated in the code completion lists.
4. In some editing instance, type "z" and you will see
above entries inside completion popup.
5. As usual, select one, say zSAT, and you will see
'SET ALTERNATE TO "myfile"' inserted removing keyword characters.
NOTE: shorthand keyword is case insensitive. So you can use
this feature to the best of visualization.
Keywords demonstrated as above are prefixed with "z",
just because all shorthand(S) will be clubbed together,
but you may use any characters you like.
Keyword must ever be followed by "-" (hyphen) character without
any spaces in between. This tells hbIDE that it is a shorthand word.
Anyhow you can format the value as you like best.
On basis of above theory, we can implement more constructs.
I am looking forward what else you preceive which can be done.
* ChangeLog
! Fixed missing changelog entry for hbmk2.prg. See it right
below.
2010-07-25 10:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
* Changed to fix bcc installations (.cfg files) even if the
.cfg files do exist (so far hbmk2 was only doing this
configuration, if bcc was not configured at all). This
makes it in sync with Harbour GNU Make logic. This issue
seems to be a neverending problem with (for) bcc users.
Pls note that Harbour will do a minimal bcc configuration
only, to make it possible to create Harbour apps. If hbmk2
is used to create other bcc apps, users will pbly have
to configure bcc properly, in accordance with its own
readme/install docs.
[...]
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
+ Added: one more method call.
* contrib/hbide/idebrowse.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
+ Implemented: <intellisense><code completion> for
FIELD-> and someAlias-> table fields for tables opened in ideDBU.
How it Works:
1. Open few tables in ideDBU.
2. In some editor instance type "FIELD->"
It will set the field completion mode ON.
3. type some letter starting a field, say, "a"
Code completion dialog will open with all fields
starting with "a" contained in all the tables opened.
4. To get list of all fields in all tables,
after typing FIELD-> type "x" and then press back space.
5. To get field completions for a particular alias,
type "that_Particular_alias->" and then some letter.
6. To get all fields in an alias type "alias" then "->" then "x" then press "backspace".
Presentation:
FIELD-> FieldName ( TableName ) FieldsOrdinalNumber, FieldType, FieldLength, DecPlaces
=>
SaleAmount ( Invoice ) 13, N, 12, 2
Invoice-> FieldName FieldsOrdinalNumber, FieldType, FieldLength, DecPlaces
=>
SaleAmount 13, N, 12, 2
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* HB_CONTRIBLIBS -> HB_BUILD_CONTRIBS
* contrib/make.hbs
! Adjusted wording in log output.
* utils/hbmk2/hbmk2.prg
! Fixed bad regression caused by extending filters to
all options. I reverted it. It has a killer effect
without huge benefit. Maybe it will be implemented
differently in the future.
The user effect of the regression was that libs were
created in bin dir.
* Cleaned some variable names passed to plugins.
* utils/hbmk2/examples/plug_tpl.hbs
+ Added comment about requirement of reentrancy.