* harbour/contrib/hbole/olecore.c
* harbour/contrib/hbole/oleauto.prg
+ implemented FOR EACH enumeration. The code was proposed by
Przemyslaw on mailing list. Some fixes applied.
* harbour/include/hbapi.h
* harbour/source/common/hbprintf.c
* harbour/source/common/hbstr.c
+ added hb_vsnprintf() - vsnprintf() replacement
* synced type of parameters in hb_snprintf() used for builds with and
without HB__USE_OWN_SNPRINTF
* bin/postinst.bat
+ Added support for HB_BUILD_IMPLIB for mingw.
(only when using Windows shell to build it, which is now the
preferred method.)
ace32 implib method was applied to most other libs, too. I didn't
test it, it may need further tweaks. I'll tweak it gradually, with
hbmk2 it is probably better to use implibs from native locations
where possible (like we do for QT on all platforms and like we do
for all non-Win platforms), so even other compilers may get
further changes.
* INSTALL
* Changed QT examples according to 4.5.1 new default dir layout.
* contrib/gtqtc/tests/demoqtc.prg
! Removed zip dependency.
* contrib/gtqtc/tests/wvtext.prg
! Fixed non-lower case filename.
! Fixed wrong reference to test .ico file.
BTW, is .ico portable? I doubt, so we should probably
switch to .png in context of QT.
! Fixed wrong reference to test.dbf.
* contrib/hbqt/tests/hbqt.hbp
* contrib/gtqtc/tests/gtqtc.hbp
+ Added support for HB_QT_DIR envvar to find QT libs.
This is the same envvar which is needed for Harbour
builds, so you may already have it set up.
; TODO: If this works out well, I'll add the same method
for other contribs too.
* utils/hbmk2/hbmk2.prg
+ libpaths will now be checked for existance before being
added to the list.
* harbour/include/hbapiitm.h
* harbour/source/vm/itemapi.c
* declared return value of hb_itemTypeStr() as const
* harbour/harbour.spec
* removed hbsqlite3 from default builds - it has to be optional due
to external dependencies in current version
* harbour/source/vm/hvm.c
% optimized memory allocation in cloned symbol tables to store
whole symbol table with all symbol names in single memory block
* contrib/hbqt/tests/hbqt.hbp
* Minor adjustment to supc++ lib inclusion filter.
- contrib/gtqtc/tests/hbqt.hbp
+ contrib/gtqtc/tests/gtqtc.hbp
- Removed .hbp with wrong name. This file also contained
local, environment dependent QT libpath.
Please don't add such lines to SVN !!
Instead use a local .hbp file which points to the QT path
in your environment:
--- qt_path.hbp
{win}libpaths=C:\devl\Qt\2009.01\qt\lib
--- (don't commit this file, keep it local !)
or, add the same line to your local hbmk.cfg file.
+ Added new .hbp file with multiplatform content.
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/moc_gtqtc.cpp
! IMPLEMENTED : MT protocol. GTQTC now responds to it but
there are still glitches. I think this is the
result of improper implementation of C++ code
and QT's underlying SIGNAL/SLOT mechanism.
! FIXED : SetMode()
Resizing behavior, now it is acceptable.
Cursor blinking rate, now responds quickly.
Code cleanup.
* harbour/contrib/gtqtc/tests/hbqt.hbp
! Updated for MT compilation.
* harbour/contrib/gtqtc/tests/demoqtc.prg
* harbour/contrib/gtqtc/tests/wvtext.prg
! GTQTC is now MT compliant. You may experience bumps
as QT event loop has not been adapted to Harbour's completely.
There are glitches which are under investigations, but
proof of fruitation is there. Play with wvtext.exe, Press F10
for new window, please copy /tests/tests.dbf to this folder first.
Try to open many windows.
NOTE: You will have to click main window twice to make it
respond to key events. Still I do not know why it does not
get the keyboard focus with one click.
Try to close the windows with ESC or clicking on the X button.
/* I NEED YOUR INTEREST AND EFFORTS TO MAKE THIS PROJECT A SUCCESS */
/* */
/* Przemek, please review the code and guide me what way it should go */
* utils/hbmk2/hbmk2.prg
* Finished to .pot support (changed po to pot).
* Renamed po= .hbp setting to pots=.
! Few minor fixes in error cases in .hbl generation.
* utils/hbi18n/hbi18n.prg
! Typo in header.
* utils/hbmk2/hbmk2.prg
* Changed to not try to create an .hbl automatically if no
explicit .hbl file is passed or -hbl option used. Instead
now -hbl= or -hbl option will force creation of an .hbl
file with an automatic name.
+ Implemented .po to .hbl conversion inside hbmk2, with
incremental feature (.hbl will only be regenerated if any
.po file dependencies are newer). This is currently the
default, no -inc switch is needed for that.
You can specify .po files in the command line, in po=
lines in .hbp files, output file is passed via -hbl= option.
To handle multiple languages without hassle, you can use
${lng} macro in .po and .hbl filenames, plus pass the list
of languages in -lng=<lang comma list> option:
app_${lng}.po -hbl=lang/${lng}.hbl -lng=en,hu,sk,pl
[ Actual .po -> .hbl conversion code was taken from hbi18n
tool made by Przemek, with little modifications. ]
! Fixed to check included .res file timestamp, but not parse it.
+ Added macro support in libs= .hbp lines.
* utils/hbmk2/hbmk2.prg
+ Added new CPU architecture filters: x86, x86_64, ia64, arm
+ Added new CPU macro: ${hb_cpu} (returning values above)
! Fixed filter keyword detection on darwin due to typo.
* utils/hbmk2/hbmk2.prg
+ Added filter support to -o option.
+ Added macro support to -o option.
! Fixed missing win system libs from bcc linker command.
IMPORTANT: bcc users will have to make sure they add bcc PSDK
lib to their bcc32.cfg and ilink32.cfg files,
otherwise hbmk2 won't work for them:
--- bcc32.cfg
-I"C:\devl\BCC55\Include"
-L"C:\devl\BCC55\Lib";"C:\devl\BCC55\Lib\PSDK"
--- ilink32.cfg
/L"C:\devl\BCC55\Lib";"C:\devl\BCC55\Lib\PSDK"
---
(or manually pass that with -L option to hbmk2)
* -i option moved to main help screen.
* utils/hbmk2/examples/fwh.hbp
+ Added odbc32 lib.
* harbour/include/hbrddcdx.h
* harbour/source/rdd/dbfcdx/dbfcdx1.c
+ added support for numeric indexes which store keys as modified
32bit big endian integer values - undocumented VFP hack.
* harbour/source/common/hbdate.c
! fixed decoding fractional part of seconds in timestamp expressions
when less the 3 digits were used.
* harbour/source/rtl/dateshb.c
+ added optional logical parameter to hb_TSToStr() function to enabled
packed/stripped form
* harbour/source/rtl/valtoexp.prg
% use hb_TSToStr() with new pack parameter in hb_ValToExp() and hb_CStr()
* utils/hbmk2/hbmk2.prg
! Fixed to find headers in originating file directory.
This may need further tweaking. This works a little
differently in Harbour and C compilers and hbmk2 tries
to mimic both. Possible that it's still not fully
compatible, if you know something pls speak up.
+ Added -incpath= option and incpaths= .hbp option. This
is now the preferred method to add headers paths. All
path will be added to both Harbour and C compiler.
Important: a synonym for this switch is simply -i, just
like before, but now the path will be also added to
C compiler command line.
* From now on Harbour include dir will always be the first
one on the include path list passed to compilers. Before
in Harbour it was always first, in C compilers it was
always last. (disregarding include dirs passed directly
to compiler, which will always come first, but isn't
recommended). The ordering is thus this:
compiler ... flags harbourincludedir incpaths ...
- Deleted include path option detection, from now on
only those paths will be scanned wich were passed to
hbmk2 via -incpath/-i options.
% Added -kmo optimization for hbmk2 source.
+ -info and -quiet will now work in .hbm files.
(they will not control some close-to-startup messages
if specified this way though)
* external/libhpdf/Makefile
* external/libpng/Makefile
+ Enabled for darwin.
* contrib/hbqt/generator/hbqtgen.prg
! Recent fix to hbqt.h applied to generator.
* utils/hbmk2/hbmk2.hbm
- Removed no longer needed -km switch.
* utils/hbmk2/examples/hmg.hbp
* utils/hbmk2/examples/hwgui.hbp
* utils/hbmk2/examples/fwh.hbp
% Updated to use -incpaths=
* utils/hbmk2/examples/fwh.hbp
* Updated to work like similar hwgui and hmg files.
; QUESTION: Is hbwin lib required for FWH?
* harbour/contrib/hbqt/hbqt.h
! fixed QT directory names in #include directives for case sensitive
file systems
* harbour/source/vm/cmdarg.c
! fixed HB_CMDLINE() to work with linear not square cost.
* utils/hbmk2/hbmk2.prg
+ -quiet will now suppress command output in case of error.
This is useful when the commands are large and it makes
valuable tool output visible.
! Fixed recent typos in help code causing RTE.
* utils/hbmk2/hbmk2.prg
+ Using hb_process*() functions instead of hb_run() to elminiate
some bad side effects of the former (like command line limits
on Windows). hb_run() is now only used in DOS builds.
* harbour/include/hbcomp.h
* harbour/source/common/hbdate.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
* enabled some POSIX function added to 1.8 Linux OpenWatcom builds
and cleaned some workarounds not longer necessary
* harbour/source/rtl/hbproces.c
+ added hack with small sysconf() implementation which is still missing
in OpenWatcom 1.8. Now it's possible to build Harbour in Linux using
officially distributed OpenWatcom 1.8
* harbour/source/rtl/disksphb.c
* added TODO warning message
* harbour/source/compiler/cmdcheck.c
! fixed typo in memory freeing in repeated -p<path> options
* utils/hbmk2/hbmk2.prg
! Fixed to inherit .hbm dir before doing wildcard expansion.
This makes wildcarded input files work in .hbm files
located in different than current dirs.
* utils/hbmk2/hbmk2.prg
+ .c header detection now takes place before doing anything.
Also compiler setup got moved to the beginning of the
process.
This allows to make a stop if something is missing. Some
more steps are needed to exploit that in practice.
Please test, this may cause regressions, I didn't test
all combinations.
* Generalized internal support for header location detection.
(now can support any C compiler and it's also possible to
add this feature for .prg files if needed)
+ Added new filter keywords: allgcc, allwin, allmingw, allmsvc,
allpocc, allicc.
+ Added support for include dirs with spaces for msvc and mingw.
* utils/hbmk2/hbmk2.prg
+ Added experimental support for header directory autodetection.
This means that you can pass a list of possible dirs to use
when a .c header cannot be found in explicitly passed locations.
! Fixed to always disable -shared with -hbdyn.
! Added hbmaindllp in -hbdyn mode on win|wce.
! Fix in -nohbp parameter handling.
+ Added support for macros in -L, -*flag=, -workdir=
+ Added -stop command line parameter which stops execution.
Can be used in conjunction with arch/comp filters to stop
execution on certain platforms/compilers.
! Fixed to not create workdir in some unlikely combination of options.
! Fixed typo causing newer headers not being detected in resource files.
+ Now 'unix' can also be used in filters to check for any *nix platform.
% Excluding some well-known headers from parsing (windows.h, ole2, os2.h
currently)
; Above changes makes it possible to use hbmk2 to build our contribs.
The only missing feature is 'install', what is a simple copy.
---
-ohbpgsql
# just for the sake of an example, not needed for real hbpgsql.
-stop{dos}
-inctrypath=${HB_INC_PGSQL}
-inctrypath={unix}/usr/include
-inctrypath={unix}/usr/local/pgsql/include
-inctrypath={unix}/usr/local/pgsql/include/libpq
-inctrypath={unix}/usr/include/pgsql
-inctrypath={unix}/usr/include/postgresql
-inctrypath={unix}/postgres/include
-inctrypath={unix}/opt/local/include/postgresql83
postgres.c
pgrdd.prg
tpostgre.prg
---
* contrib/hbole/oleinit.c
* contrib/hbole/hbwinole.h
* Cleanups in header usage and content. This should fix
missing hb_oleInit() symbol on some compilers.
* contrib/examples/pp/hbpptbl.c
- Removed HB_EXTENSION protected two lines.
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
* harbour/contrib/gtqtc/tests/hbqt.hbp
+ IMPLEMENTED : Resizing - Though some more refinement is necessary
but as a proof of concept it is working.
Window is now centered upon startup.
* harbour/contrib/gtqtc/Makefile
! Adopted along hbqt/Makefile pattern.
+ harbour/contrib/gtqtc/tests/wvtext.prg
+ Added harbour/tests/wvtext.prg here also.
Change in only HB_GT_QTC_DEFAULT.
This facilitates the comparison between GTWVT and GTQTC
+ Added harbour/tests/tests.ico
Used as hb_gtInfo( HB_GTI_ICONFILE, 'tests.ico' )
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
+ IMPLEMENTED :
Fired Events : HB_GTE_SETFOCUS | HB_GTE_KILLFOCUS | HB_GTE_RESIZE
Cursor : SC_NONE | SC_NORMAL | SC_SPECIAL1 | SC_SPECIAL2
! IMPROVED : Many artifacts.
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Modified to demonstarte above changes.
NOTE: GTQTC is complete on base level. Only few gliches remain for
cursor management under certain circumstances. The lib is
tested on Winsow XP and QT 4.5 (2009.01). I am sure there
may be few issues coming up more you test on different
platforms.
So I am looking for feedback especially from *nix users.
(::) At this point I will request Przemek to review gtqtc.c.h
and point me to optimization it may require.
* harbour/contrib/gtqtc/gtqtc.h
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/moc_gtqtc.cpp
! Fixed more Windows specific contents. It should compile
on *nixes now [ Qt::WindowCloseButtonHint could be the exception ]
+ Implemented timer event.
+ Implemented PALETTE functionality of GTWVT.
+ Implemented drawing console output to an image first and then
rendered onto the screen. This requirement is initiated because
nowhere I found a way to mimic blinking CARET.
The proof of concept is implemened through part of image
rendering in a timer event. It may introduce some overhead
but please be noted that we have to live with it until we
reach a proper solution.
Rendered to image and then flushed to screen is a powerful
feature of QT and we may take use of it in many ways in future.
Probably QTWVG will exploit it to maximum if we do not
plan some extenstions in GTQTC.
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Demonstrated implemented facts as above.
Note the BLINKING block on the console, may be,
implemented as a replacement to windows caret.