* contrib/gtwvg/make_b32.bat
* contrib/gtwvg/make_vc.bat
* contrib/gtwvg/Makefile
* Trying new method to point to hbwin, so that
we're not relying on hbwin headers being installed.
; Please test.
* contrib/Makefile
+ Added hbblat.
* contrib/make_vc_all.bat
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/hbblat/Makefile
* contrib/hbblat/common.mak
* contrib/hbblat/make_b32.bat
* contrib/hbblat/make_vc.bat
* contrib/hbblat/blatwrp.c
* contrib/hbblat/tests/hbmk.bat
* contrib/hbblat/tests/blatcmd.prg
+ Added support for HB_INC_BLAT (needed for releases).
* Some EOLs added.
* Minor correction to .ch name in make files.
% Replaced command line retrieval with hb_cmdline() call.
* Cleaned some headers/#defines.
* GNU make file got protection to only compile for win,
and to install headers.
* make_gnu.bat
* contrib/hbct/Makefile
* contrib/hbwin/Makefile
* Minor formatting.
* ChangeLog
! Restored last non-UNICODE version, and readded
all entries and reapplied all changes since then.
; NOTE: Please never save any Harbour files in
UNICODE mode. Thank you.
* contrib/make_gcc_all.sh
* contrib/Makefile
- Removed hbdbgfx.
* source/pp/hbpp.c
* source/main/harbour.c
* Excluded hbwmain for __POCC__ WinCE.
; TOFIX: Warning: Not proper fix.
This way it won't link but at least it compiles.
* source/compiler/gencc.c
* Switched to hexadecimal format for high chars, because
octal was tried to be converted to Windows codepage, by
PellesC.
* config/w32/poccce.cf
- Removed -DSTRSAFE_NO_DEPRECATE switch.
* config/w32/pocc.cf
+ Added -MT switch.
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_dll.c
* source/rtl/hbhex.c
* source/rdd/hbsix/sxcompat.prg
* Minor formatting.
* source/rtl/hbi18n.c
% Removed 'comment' field from language file header. Any text
can be added simply by adding it to the translation table.
* contrib/Makefile
! Missing hbdbgfx added here, too.
; BTW, I've intentionally left this lib out from the liblist
until we decide where to put these functions. There is
not much point maintaining for the sake of just a few functions.
If there are no objections, I'll be moving these functions
to hbwin (until someone updates the code to work outside
Windows).
* doc/whatsnew.txt
+ Updated.
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
- contrib/hbwhat32
+ contrib/hbwhat
* Renamed to not contain '32'.
; NOTE: I plan to do this with a couple of other
names too in the future.
* contrib/hbwhat/Makefile
* contrib/hbwhat/common.mak
- contrib/hbwhat/what32.ch
+ contrib/hbwhat/hbwhat.ch
* Renamed what32.ch to not contain '32' (and added
hb for consistency if it got renamed anyway).
* utils/hbmake/hbmake.prg
* Updated by Bill Robertson to fix too many things to
mention here. (cleaned up lots of stuff, using hb_run()s
return values, cleaned to not call main() function
recursively (!), display output cleanups, etcetc)
* hbwhat32, hbziparch lib name changes.
* contrib/examples/pp/hbppcore.c
* contrib/examples/pp/hbppcomp.c
* contrib/rddads/ads1.c
* source/pp/ppcore.c
* source/vm/asort.c
* source/vm/hvm.c
* source/rtl/disksphb.c
* source/rdd/dbfntx/dbfntx1.c
* source/rdd/workarea.c
* contrib/hbct/screen2.c
* contrib/hbct/token2.c
* while( TRUE ) -> for( ;; )
* do {} while( TRUE ) -> for( ;; ) {}
; To avoid warnings about conditions being constant.
* contrib/hbwhat32/whthead.c
* contrib/hbwhat32/whtmmcap.c
* contrib/hbwhat32/whtshell.c
* contrib/hbwhat32/whtdir.c
! Fixed a few problems when compiling with MinGW.
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
+ Readded hbwhat32 to default build lists.
; This doesn't mean this lib works, but the amount of
warnings are now on a manageable level on both 32 and
64 bit on BCC/MSVC/MINGW, we can gradually fix the
remaining ones, and maybe if we have this lib
built, someone will try to use it and maybe fix it.
[ We may temply as well disable it again, if it turns
out to be a showstopper for 1.0.1 release. ]
; If there is anything against the above, I'd suggest
to remove the whole contrib altogether.
* harbour-ce-spec
* make_deb.sh
* harbour-w32-spec
* harbour.spec
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
+ contrib/hbziparc
- contrib/hbziparch
+ hbziparc readded to default contrib list, as it
creates no more harm now.
; NOTE: And now that this is about ready, we might
step forward to develop a .7z interface ;)
- contrib/hbw32ddr
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
- Removed contrib hbw32ddr.
For those wanting to peek into this code, or
pick up development, the exact source can be
found in Harbour 1.0.0 release.
- source/rtl/gtalleg
+ contrib/gtalleg
* TODO
* doc/dirstruc.txt
* include/hbgtcore.h
* contrib/gtalleg/Makefile
* contrib/gtalleg/make_b32.bat
* contrib/gtalleg/make_vc.bat
* contrib/gtalleg/make_gcc.sh
* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* contrib/make_gcc_all.sh
* contrib/Makefile
* config/hpux/gcc.cf
* config/hpux/global.cf
* config/darwin/gcc.cf
* config/darwin/global.cf
* config/dos/global.cf
* config/linux/gcc.cf
* config/linux/global.cf
* config/sunos/gcc.cf
* config/sunos/global.cf
* config/bsd/gcc.cf
* config/bsd/global.cf
* config/w32/global.cf
* harbour-ce-spec
* harbour-w32-spec
* harbour.spec
* GTALLEG moved to contrib to make it possible to build
using the non-GNU make system, also to align the build
process with other 3rd party package dependent parts
of Harbour.
HB_INC_ALLEGRO or HB_DIR_ALLEGRO may be used to point
to Allegro package directory. This is generally necessary
on non-*nix systems.
; NOTE: Review and test build processes and modified files,
and unmodified, but potentially related files:
bin/hb-func.sh
make_gnu.sh
make_rpm.sh
make_rpmce.sh
make_rpmw32.sh
* contrib/make_gcc_all.sh
+ Added darwin autodetection.
* contrib/Makefile
+ Added HB_CONTRIB_ADDONS envvar which enables building
local custom contribs stored in the contrib dir.
A separate dir may be better, but we will see.
* utils/hbtest/hbtest.prg
* Changed test .dbf filename casing to lowercase.
+ tests/rddtest
+ tests/rddtest/rddmktst.prg
+ tests/rddtest/adscl52.prg
+ tests/rddtest/adscl53.prg
+ tests/rddtest/ntxcl52.prg
+ tests/rddtest/ntxcl53.prg
+ tests/rddtest/cdxcl52.prg
+ tests/rddtest/rddtst.prg
+ tests/rddtest/make_c52.bat
+ tests/rddtest/cdxcl53.prg
+ tests/rddtest/make_c53.bat
+ Added RDD tests from xhb.
* contrib/hbsqlit2/Makefile
* contrib/hbsqlit3/Makefile
! Excluded from DOS builds.
* contrib/Makefile
- Commented following contribs from GNU-make default builds
until different platform/compiler issues and excessive
warnings are resolved:
hbsqlit2, hbsqlit3, hbw32ddr, hbwhat32, hbziparch
* contrib/Makefile
* After this change, HB_CONTRIBLIBS will _override_ the
default list of contribs, rather than adding them to
the default list (which BTW contains everything since
this week, so there's no much point anyway, besides if
someone was hosting local contribs in the Harbour contrib
dir).
* include/hbver.h
- Removed recenly added HB_VERSION 0x010000.
* Instead I've changed both .prg level and .c level __HARBOUR__
to contain this more granular (full) version number.
; NOTE: If someone is relying on the value of __HARBOUR__ in
.prg code, the values should be multiplied by 256.
* contrib/Makefile
- contrib/hbgf/gtk
- contrib/hbgf/os2pm
- contrib/hbgf/win32
+ contrib/hbgf/hbgfw32
+ contrib/hbgf/hbgfos2
+ contrib/hbgf/hbgfgtk
+ contrib/hbgf/Makefile
* contrib/hbgf/hbgfos2/Makefile
+ Decentralized GNU make for these contribs.
* Renamed according to stds.
! Fix to be built under Linux/Win32.
(if they don't work they should be fixed/disabled locally)
* contrib/Makefile
* contrib/hbodbc/Makefile
* contrib/hbw32/Makefile
* contrib/rddado/Makefile
* Further decentralization of contrib building decisions.
+ Added all existing contribs to the list. Separated into
two sections: standalone contribs, and ones with external
dependencies.
; TODO: Refine this by some clever commenting.
This is a multiplatform issue, so we need to
work together.
* contrib/examples/Makefile
! Fixed to include newly added examples.
* contrib/hbapollo/make_b32.bat
* contrib/hbapollo/make_vc.bat
* contrib/hbcurl/make_b32.bat
* contrib/hbcurl/make_vc.bat
* contrib/hbfbird/make_b32.bat
* contrib/hbfbird/make_vc.bat
* contrib/hbfimage/make_b32.bat
* contrib/hbfimage/make_vc.bat
* contrib/hbgd/make_b32.bat
* contrib/hbgd/make_vc.bat
* contrib/hbhpdf/make_b32.bat
* contrib/hbhpdf/make_vc.bat
* contrib/hbmysql/make_b32.bat
* contrib/hbmysql/make_vc.bat
* contrib/hbpgsql/make_b32.bat
* contrib/hbpgsql/make_vc.bat
* contrib/rddads/make_b32.bat
* contrib/rddads/make_vc.bat
+ Some steps made to make it possible to disable
any messings with .dlls. This is not yet complete,
and the goal is to be able to use HB_INC_* to
specify include dirs for external packages on
all make systems (GNU, non-GNU .bat, non-GNU .sh)
[TOMERGE 1.0.0RC1]
* contrib/hbw32ddr/Makefile
! Fixed to compile with GNU make.
! Found a way to compile with MingW.
[TOMERGE 1.0.0RC1]
* contrib/hbtpathy/Makefile
! Fixed to work at all.
[TOMERGE 1.0.0RC1]
* contrib/Makefile
* contrib/gtwvg/Makefile
* contrib/hbbmcdx/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtip/Makefile
* contrib/hbw32/Makefile
* contrib/hbw32ddr/Makefile
* contrib/hbwhat32/Makefile
* contrib/rddads/Makefile
+ Platform/compiler checks moved to the contrib level
Makefiles instead of being in /contrib/Makefile.
This way it's modular, anyone can easily find out
any platform/compiler dependencies and the central
Makefile is easier to manage since it's global for all
platforms/compilers.
As a side effect HB_WITHOUT_ODBC, HB_WITHOUT_ADS now
behaves similarly on all platforms.
; Work in progress. The goal is to be safe to include
all contribs in /contrib/Makefile.
- contrib/hbw32ddr/w32_ddrw.h
* contrib/hbw32ddr/w32_ddrw.cpp
* Cleanups, removing unneeded fluffs.
[TOMERGE 1.0.0RC1]
* contrib/hbziparch/make_b32_dll.mak
- Removed many unneeded command line switches.
; This make file should better be standardized.
* contrib/hbziparch/Makefile
- Removed many unneeded command line switches.
* harbour/contrib/Makefile
* respect HB_WITHOUT_ODBC and HB_WITHOUT_ADS envvars
* harbour/debian/control
* harbour/make_deb.sh
* removed libncurses5-dev, libslang2-dev, libgpmg1-dev, libx11-dev and
unixodbc-dev from dependences list.
+ added support for HB_COMMERCE=yes envvar
+ added automatic detection for curses, slang, gpm, x11 and odbc
devel packages
+ added test for ACESDK detection - it tests if ach.h file exists
in default user or system wide installation
The above modifications are not tested and I would like to ask
Debian/Ubuntu users to make necessary tests.
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* harbour/harbour.spec
* harbour/make_rpmce.sh
* harbour/make_rpmw32.sh
* harbour/make_rpm.sh
* removed --with zlib switch - now zlib will be created in all builds
* added hbzlib library
* added hbmzip library - MiniZIP wrapper to manage ZIP files
* harbour/contrib/Makefile
* added hbmzip library to default builds
* harbour/include/hbzlib.h
! changed \ in include path
! added relative paths for LCC and XCC
* harbour/bin/hb-func.sh
* updated for hbzlib library in core code and hbmzip in contrib
* harbour/utils/hbdot/Makefile
* harbour/utils/hbrun/Makefile
* added hbzlib library to linked library list
* harbour/include/hbzlib.h
* harbour/bin/hb-func.sh
* harbour/make_gcc.mak
* harbour/config/darwin/gcc.cf
* harbour/config/hpux/gcc.cf
* harbour/config/linux/gcc.cf
* harbour/config/sunos/gcc.cf
* harbour/config/bsd/gcc.cf
* harbour/utils/hbdot/Makefile
* harbour/utils/hbrun/Makefile
+ added support for compilation with HB_EXT_ZLIB macro
It forces using external (OS) ZLIB library instead of hbzlib.
Still some other make files should be updated to respect it.
+ contrib/hbvpdf
+ contrib/hbvpdf/common.mak
+ contrib/hbvpdf/hbvpdf.prg
+ contrib/hbvpdf/hbvpdf.ch
+ contrib/hbvpdf/make_gcc.sh
+ contrib/hbvpdf/tests
+ contrib/hbvpdf/tests/fonts.dat
+ contrib/hbvpdf/tests/files
+ contrib/hbvpdf/tests/files/color.tif
+ contrib/hbvpdf/tests/files/test.txt
+ contrib/hbvpdf/tests/files/color.jpg
+ contrib/hbvpdf/tests/pdf_demo.prg
+ contrib/hbvpdf/tests/tstpdf.prg
+ contrib/hbvpdf/tests/bld_b32.bat
+ contrib/hbvpdf/tests/bld_vc.bat
+ contrib/hbvpdf/hbvpdft.prg
+ contrib/hbvpdf/make_b32.bat
+ contrib/hbvpdf/make_vc.bat
+ contrib/hbvpdf/Makefile
+ Added Viktor K's pure Clipper pdf lib.
+ Added Pritpal's OOP version.
+ Added make files, reorged dir layout, named
files to avoid collision.
+ Added minor #define tweak to compile as-is.
* Renamed pdf.ch to hbvpdf.ch for above reasons,
if this hurts anybody, I will correct it.
! Fixed unused vars and a few other things.
; TOFIX: - ShellExecute(), GetDeskTopWindow()
dependencies commented out.
- fonts.dat dependency is a PITA, so
this file should be moved inside
the .prg somehow.
- There are some hard-wired non porable
things like acrobat executable path.
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
+ hbvpdf added to make systems.
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* updated for new library names
* harbour/ChangeLog
* harbour/include/hbexprb.c
* formatting
* harbour/source/rtl/net.c
! fixed casting
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* harbour/contrib/Makefile
* removed hbzlib - it cannot be longer part of default build
because Viktor removed zlib header files. Viktor sorry but
IMHO you should revert it and also restore ace.h - it creates
serious problems without any valuable addition. Now we will
have to rebuild Harbour on many different platforms and often
it will not be possible to install some libraries. We cannot
force installing additional libs by people who will create
binaries for incoming releases so it's important to revert
it. Please do it.
* harbour/config/bsd/install.cf
* harbour/config/darwin/install.cf
* harbour/config/hpux/install.cf
* harbour/config/linux/install.cf
* harbour/config/sunos/install.cf
* harbour/config/dos/install.cf
* harbour/config/os2/install.cf
* harbour/config/w32/install.cf
* redirected echo error messages to stderr when *sh shell is used
* harbour/config/lib.cf
* harbour/config/bin.cf
* harbour/config/global.cf
* harbour/config/hpux/gcc.cf
* harbour/config/hpux/global.cf
* harbour/config/darwin/gcc.cf
* harbour/config/darwin/global.cf
* harbour/config/dos/owatcom.cf
* harbour/config/dos/global.cf
* harbour/config/dos/rsx32.cf
* harbour/config/global.cf
* harbour/config/linux/owatcom.cf
* harbour/config/linux/global.cf
* harbour/config/os2/gcc.cf
* harbour/config/os2/global.cf
* harbour/config/sunos/gcc.cf
* harbour/config/sunos/global.cf
* harbour/config/bsd/global.cf
* harbour/config/w32/owatcom.cf
* harbour/config/w32/bcc32.cf
* harbour/config/w32/gcc.cf
* harbour/config/w32/rsxnt.cf
* harbour/config/w32/global.cf
! fixed build process. DOS and WINDOWS users should make tests for
different compilers. I tested only DOS-OpenWatcom, DOS-DJGPP,
W32-BCC32, W32-OpenWatcom, W32-POCC, W32-XCC and corss builds
W32-MinGW, W32-MinGW-CE. OS2 version not testes at all - I hope
it will work. LINUX-GCC, LINUX-G++, LINUX-OpenWatcom, BSD-GCC,
HPUX-GCC tested and they are working. I hope that SunOS version
also works though I do not have any solaris installation where
I can make real tests.
* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* contrib/Makefile
+ contrib/rddado
* contrib/rddado/common.mak
* contrib/rddado/Makefile
+ contrib/gtwvg
* contrib/gtwvg/common.mak
* contrib/gtwvg/Makefile
+ contrib/rddads
* contrib/rddads/common.mak
* contrib/rddads/Makefile
- contrib/hbrddado
- contrib/hbgtwvg
- contrib/hbrddads
* utils/hbmake/hbmutils.prg
! Done some final renames in contrib to be consistent
with the core names where some new rules had to be
made for DJGPP compatibility.
Old name New name
-------- --------
hbgtwvg -> gtwvg
hbrddado -> rddado
hbrddads -> rddads
* harbour/contrib/hbzlib/ioapi.c
* harbour/contrib/hbzlib/zip.c
* harbour/contrib/hbzlib/unzip.c
* harbour/contrib/hbzlib/crypt.h
* harbour/contrib/hbzlib/hbzlib.c
* harbour/contrib/hbzlib/hbmzip.c
* casting for C++ compilation
* changed function declaration for C++ compilation
* removed #include "errno.h" - some platforms do not have it
* updated WIN32 API for WinCE and UNICODE builds
* use localtime_r() only for Linux builds - TODO: create our own
API for it and remove all #if... from core code so we will have
it only in one place easy to update for different platforms
* harbour/contrib/hbzlib/common.mak
* replaced TABs with SPACEs
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* harbour/harbour.spec
* harbour/bin/hb-func.sh
* harbour/contrib/Makefile
+ added hbzlib to contrib libraries compiled by default
* harbour/include/hbapigt.h
* removed declaration for not existing function: hb_inkeyGet()
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* moved all static variables used by core GT code to HB_GT_BASE
structure
* harbour/source/rtl/inkey.c
* cleanup
* harbour/contrib/Makefile
* moved HB_CONTRIBLIBS to the end build library list because they may
need some other contrib libraries in dependences list
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* harbour/make_rpmce.sh
* harbour/make_rpmw32.sh
* updated for removed ace.h
* harbour/bin/pack_src.sh
* updated for some recent modifications in contrib/pgsql
TOFIX: it should be updated for all recent modifications in
contrib and MS-Windows build scripts.
* harbour/bin/hb-func.sh
+ added gtwvg to -gt* parameters in hb* scripts
* harbour/contrib/Makefile
+ added gtwvg in W32 builds
* harbour/contrib/xhb/hbcomprs.c
* harbour/contrib/xhb/hbcomprs.h
* cleaned some warnings
* harbour/contrib/gtwvg/gtwvt.h
* harbour/contrib/gtwvg/wvtutils.c
* harbour/contrib/gtwvg/wvtpaint.prg
* harbour/contrib/gtwvg/wvtwin.ch
* harbour/contrib/gtwvg/wvtcore.c
* harbour/contrib/gtwvg/gtwvt.c
* harbour/contrib/gtwvg/Makefile
* harbour/contrib/gtwvg/wvtclass.prg
* set svn attributes:
svn ps svn:eol-style native
svn ps svn:keywords Id
Pritpal please remember about it before you commit new files.
For .bat files use
svn ps svn:eol-style CRLF
or better set default attribute in your SVN config file so you will
not have to set it manually each time you are adding new file.
+ contrib/win32
+ contrib/win32/test
+ contrib/win32/test/testw32p.prg
+ contrib/win32/test/oleenum.prg
- test/oleenum.prg
+ contrib/win32/Makefile
+ contrib/win32/makefile.bc
+ contrib/win32/makefile.vc
+ contrib/win32/make_b32.bat
+ contrib/win32/make_vc.bat
+ contrib/win32/w32_tole.prg
+ contrib/win32/w32_tprn.prg
+ contrib/win32/tprinter.c
+ contrib/win32/w32_ole.c
+ contrib/win32/w32_prn.c
+ Added a Win32 contrib lib by merging win32prn and ole2
libs. The name of the new library is "hbwin32".
; directx was not added for now.
+ harbour/tests/oleenum.prg
+ added Enrico example and test code for enumerators and OLE objects
* harbour/contrib/Makefile
* enabled hbole, ado_rdd, hybodbc in most of Windows builds
* harbour/contrib/ole2/win32ole.prg
* harbour/contrib/ole2/w32ole.c
* synced with recent Ron's modifications in xHarbour
I'd like to ask Windows users to make tests with above
oleenum.prg and example sent by Luis
* harbour/source/rtl/gttrm/gttrm.c
* disable ACS mode before sending BEL on Linux compatibile terminals
- some of them may try to display chr(7) instead of generating
sound when ACSC is enabled
* harbour/source/vm/proc.c
+ added support for character parameter in PROCFILE() - now it can
accept <nLevel> | <sFuncSym> | <cFuncName> as first parameter
* harbour/source/vm/dynsym.c
* added support for detecting not cleanly overloaded by linker .prg
functions.
In such case hb_dynsymNew() checks if linker updated function
addresses and if yes then remove unnecessary HB_FS_LOCAL flag.
In such case works GCC (but not MinGW and DJGPP), OpwenWatcom
for Linux, DOS, Windows (and probably for OS2), POCC, XCC (with
/FORCE:MULTIPLE linker switch) and some other linkers I haven't
tested.
Otherwise (two different functions with the same name linked and
each accessible from different symbol, f.e. BCC32, MinGW, DJGPP)
it accept multiple HB_FS_LOCAL for dynamically loaded modules
(.hrb, .dll, .so, .dyn, ...) if HVM also accepted it (for future
KEEP_LOCAL_FUNC HB_LIBLOAD()/__HBRLOAD() parameter).
For statically linked modules it overloads one of the functions when
HB_OVERLOAD_MULTIPLE_FUNC macro is set (now by default to make tests
with different linkers). I left detail description in source code of
hb_dynsymNew() in source/vm/dynsym.c.
I hope it will also help Ron in recent xHarbour modifications - AFAIK
it's sth what he tires to do.
Anyhow please remember that that dirty overloading any symbols by
linker is very bad idea and in such case you have big chance that
wrong binaries will be created so the most preferable choice is
eliminating such situations and not using linker switches like
-Wl,--allow-multiple-definition or /FORCE:MULTIPLE
+ harbour/tests/multifnc
+ harbour/tests/multifnc/t0.prg
+ harbour/tests/multifnc/t1.prg
+ harbour/tests/multifnc/t2.prg
+ harbour/tests/multifnc/Makefile
+ added test code for results of dirty overloaded functions.
With recent modifications expected results are:
main t0.prg t0.prg
alert t1.prg t1.prg [ALERT]
p0 t0.prg t0.prg P0:t0.prg P0:t0.prg OK
p1 t0.prg t0.prg P1:t0.prg P1:t0.prg OK
p2 t1.prg t1.prg P2:t1.prg P2:t1.prg OK
p3 t0.prg t0.prg P3:t0.prg P3:t0.prg OK
p4 t1.prg t1.prg P4:t1.prg P4:t1.prg OK
p5 t2.prg t2.prg P5:t2.prg P5:t2.prg OK
===
main2 t1.prg t1.prg
alert t1.prg t1.prg [ALERT]
p0 t0.prg t0.prg P0:t0.prg P0:t0.prg OK
p1 t0.prg t0.prg P1:t0.prg P1:t0.prg OK
p2 t1.prg t1.prg P2:t1.prg P2:t1.prg OK
p3 t0.prg t0.prg P3:t0.prg P3:t0.prg OK
p4 t1.prg t1.prg P4:t1.prg P4:t1.prg OK
p5 t2.prg t2.prg P5:t2.prg P5:t2.prg OK
===
main3 t2.prg t2.prg
alert t1.prg t1.prg [ALERT]
p0 t0.prg t0.prg P0:t0.prg P0:t0.prg OK
p1 t0.prg t0.prg P1:t0.prg P1:t0.prg OK
p2 t1.prg t1.prg P2:t1.prg P2:t1.prg OK
p3 t0.prg t0.prg P3:t0.prg P3:t0.prg OK
p4 t1.prg t1.prg P4:t1.prg P4:t1.prg OK
p5 t2.prg t2.prg P5:t2.prg P5:t2.prg OK
I've tested only few compilers: GCC/G++ (Linux) MinGW (WINE-W32),
DJGPP (DOSEMU), OpenWatcom (Linux, WINE-W32, DOSEMU), XCC/POCC
(WINE-W32) and I'm interesting in results from other compiler/
platforms, f.e. from M[V]SC.
* harbour/source/rtl/errorapi.c
+ added protection against possible GPF when some assign methods
were called without parameters
* harbour/source/rdd/workarea.c
* initialize uiFalgs also when DBS_FLAGS is not set
* harbour/contrib/bmdbfcdx/bmdbfcdx1.c
* fixed hb_cdxSkipFilter() declaration - it should be 'static' function
* harbour/source/pp/ppcore.c
* harbour/source/compiler/ppcomp.c
+ added support for changing all -k? switches by #pragma, f.e.;
#pragma -ks+
#pragma -kM-
#pragma -kx1
#pragma -kJ0
* harbour/source/compiler/hbusage.c
* changed -ks description
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* do not generate error message for negative indexes and
[] operators are used for simple types when -ks option
is used
* harbour/include/hbvmpub.h
* harbour/include/hbapi.h
* harbour/source/vm/hvm.c
* harbour/source/vm/extend.c
* harbour/source/vm/itemapi.c
* harbour/source/vm/memvars.c
+ added HB_IT_DEFAULT flags - it allows to check if item was changed
* harbour/source/vm/memvars.c
* harbour/include/hbvm.h
! fixed HB_IT_MEMOFLAG updating to be Clipper compatible. Here we are
not Clipper compatible in one place: in clodeblock local parameters
with memo values are marked as MEMO but if you leave function where
codeblock were created then Clipper during detaching removes MEMO
flag. In Harbour memo flag is kept.
* harbour/include/hbvm.h
* harbour/source/vm/classes.c
* harbour/source/vm/hvm.c
% improved speed of extended references used for SETGET methods
and overloaded [] operators
* harbour/include/hbapi.h
* harbour/include/hbsetup.ch
* harbour/source/compiler/hbcomp.c
* harbour/source/vm/hvm.c
* harbour/source/vm/macro.c
* harbour/source/vm/cmdarg.c
* removed HB_COMPAT_XHB flags - only one HB_COMPAT_XHB still exist
in HVM in hashes.c - it will be removed soon.
* harbour/source/common/hbverdsp.c
* removed information about xHarbour compatibility mode - it's not
longer used. We are emulating xHarbour behavior using external
XHB library and standard compiler/HVM features
* harbour/contrib/xhb/xhb.ch
* harbour/contrib/xhb/xhbfunc.c
* harbour/source/vm/arrayshb.c
* moved XHB_AINS(), XHB_ADEL() from XHB lib to HVM as HB_AINS(), HB_ADEL()
* harbour/contrib/xhb/xhb.ch
+ added #pragma -ks+
+ added transaltion for hb_enumindex( <enumvar> )
+ harbour/contrib/xhb/xhbenum.c
+ added emulation for HB_EUMMINDEX()
* harbour/contrib/xhb/xhbfunc.c
* do not add INET*() function wrappers for DOS builds or when
HB_NO_DEFAULT_INET macro is set
* harbour/contrib/xhb/xhbmsgs.c
* added comment
* harbour/contrib/Makefile
+ added TIP and XHB
* harbour/make_rpm.sh
* harbour/harbour.spec
* removed HB_COMPAT_XHB, --with tip, --with xhb
they are not longer necessary
* harbour/harbour.spec
* harbour/make_rpm.sh
* harbour/contrib/Makefile
* cleanup and added HB_CONTRIBLIBS to set additional contrib libraries
+ added -with xhb switch to build Harbour RPMs with HB_COMPAT_XHB
macro
* harbour/contrib/mysql/Makefile
+ added -I/usr/include/mysql -I/usr/local/include/mysql to C compiler
flags
* harbour/contrib/mysql/tmysql.prg
* harbour/contrib/mysql/tsqlbrw.prg
* cleaned -w2 warnings - in few places I added HB_SYMBOL_UNUSED()
which should be replace sin the future by valid code
* harbour/makefile.vc
* synced with BETA branch
* harbour/contrib/Makefile
* disable BMDBFCDX for DOS builds due to long names which do not
pass 8.3 convention
* use OLE2 instead of OLE
* harbour/contrib/ole2/w32ole.c
* warning fixes
* harbour/include/hbregex.h
+ added REGEX support for DJGPP build
* harbour/source/rtl/net.c
* warning cleanup
* harbour/contrib/Makefile
+ harbour/contrib/adordd/Makefile
+ added ADORDD to default windows GNU make builds
* harbour/contrib/adordd/makefile.bc
+ added -w2 to harbour compoiler switches
* harbour/contrib/adordd/adordd.prg
+ added HB_SYMBOL_UNUSED() for some methods
+ harbour/contrib/ole2/Makefile
+ added GNU make file
* harbour/include/common.ch
* changed HB_HASH_AUTOADD_* to HB_HAUTOADD_*
* harbour/contrib/Makefile
* harbour/contrib/bmdbfcdx/Makefile
* harbour/source/rdd/Makefile
! fixed GNU make compilation
* harbour/include/hbapifs.h
* harbour/source/rtl/filesys.c
+ added support for DOS/Windows DENY_* flag emulation in POSIX
systems using BSD locks. So far such emulatin was done with
standard POSIX locks. The new emulation can be enabled by setting
HB_USE_BSDLOCKS and disabled by HB_USE_BSDLOCKS_OFF. By default
it's enabled in Linux and BSD* based systems.
Please not that it BSD locks work in differ way then POSIX ones.
They are bound with file handle and process ID not i-node and PID.
It will allow to synchronize even single process but it will not
work in NFS and some old BSD and Linux kernels. This synchronization
cannot be used also between different platforms. If someone needs
such synchronization then he should build Harbour on all platforms
with HB_USE_BSDLOCKS_OFF and HB_USE_SHARELOCKS with valid multi
platform lock offset
* harbour/source/rdd/dbcmd.c
* removed all explicit NETERR setting - now it can be set only
by NETERR() function (executed by default errorsys)
* changed ordListAdd()/dbSetIndex() - now they return logical value
with information about success
* harbour/source/rdd/wafunc.c
* changed hb_rddOpenTable()/hb_rddCreateTable() to make dbUseArea()/
dbCreate() more Clipper compatible - it's not exact Clipper behavior
but I intentionally do not want to replicate some strange for me
things, f.e. I do not know why Clipper ignores RDDNAME when it has
only one character
+ harbour/tests/tstuse.prg
+ test code for dbUseArea()
+ contrib/bmdbfcdx/Makefile
+ contrib/bmdbfcdx/bmdbfcdx1.c
+ contrib/bmdbfcdx/bmsixcdx1.c
+ contrib/bmdbfcdx/hbrddbmcdx.h
+ contrib/bmdbfcdx/make_b32.bat
+ contrib/bmdbfcdx/makefile.bc
+ contrib/bmdbfcdx/readme.txt
+ BMDBFCDX RDD:
Is a DBFCDX RDD compatible with clipper 5.3, use SET OPTIMIZE ON to make a
static bitmap filters, with SET OPTIMIZE OFF works as harbour DBFCDX.
Addons:
BM_DbSeekWild( uKey, [lSoftSeek], [lFindLast], [lNext], [lAll] ) => .T./.F. or aSeekRec when lAll clause
BM_Turbo( lOnOff ) // Is only recomendable to use it on creating FILTERS
BM_DbGetFilterArray() => aFilterRec
BM_DbSetFilterArray( aFilterRec )
BM_DbSetFilterArrayAdd( aFilterRec )
BM_DbSetFilterArrayDel( aFilterRec )
Respecting command:
SET OPTIMIZE
Change the setting that determines whether to optimize using the open orders
when processing a filtered database file
------------------------------------------------------------------------------
Syntax
SET OPTIMIZE ON | OFF | (<lToggle>)
Arguments
ON enables optimization.
OFF disables optimization.
<lToggle> is a logical expression that must be enclosed in
parentheses. A value of true (.T.) is the same as ON, and a value of
false (.F.) is the same as OFF.
Note: The initial default of this setting depends on the RDD.
Description
For RDDs that support optimization, such as BMDBFCDX, SET OPTIMIZE
determines whether to optimize filters based on the orders open in the
current work area. If this flag is ON, the RDD will optimize the search
for records that meet the filter condition to the fullest extent
possible, minimizing the need to read the actual data from the database
file.
If this flag is OFF, the RDD will not optimize.
Examples
¦ The following example enables optimization for the Inventor
database file using the SET OPTIMIZE command:
USE Inventor NEW VIA "BMDBFCDX"
SET OPTIMIZE ON
* harbour/common.mak
* updated for new files - please check
* harbour/harbour.spec
* added compiler library
* harbour/bin/pack_src.sh
* harbour/bin/hb-func.sh
* updated for new files and libraries
* harbour/config/w32/mingw32.cf
* harbour/config/w32/watcom.cf
* harbour/config/w32/xcc.cf
* added winsock libraries
* harbour/include/hbapicdp.h
* harbour/source/rtl/cdpapi.c
+ added hb_cdpicmp() - not case sensitive version of hb_cdpcmp()
* harbour/include/hbapiitm.h
* harbour/source/vm/itemapi.c
+ hb_itemStrICmp(), hb_itemCopyFromRef(), hb_itemMoveFromRef()
* harbour/include/hbapi.h
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/include/hbexprop.h
* harbour/include/hbmacro.h
* harbour/include/hbpcode.h
* harbour/include/hbvmpub.h
* harbour/include/hbxvm.h
* harbour/source/common/expropt1.c
* harbour/source/compiler/complex.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencc.c
* harbour/source/compiler/gencli.c
* harbour/source/compiler/genhrb.c
* harbour/source/compiler/genobj32.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.yyh
* harbour/source/compiler/hbdead.c
* harbour/source/compiler/hbfix.c
* harbour/source/compiler/hblbl.c
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbopt.c
* harbour/source/compiler/hbpcode.c
* harbour/source/compiler/hbstripl.c
* harbour/source/macro/macro.y
* harbour/source/macro/macro.yyc
* harbour/source/macro/macro.yyh
* harbour/source/macro/macrolex.c
* harbour/source/vm/Makefile
* harbour/source/vm/arrays.c
* harbour/source/vm/asort.c
* harbour/source/vm/classes.c
* harbour/source/vm/eval.c
* harbour/source/vm/garbage.c
* harbour/source/vm/hvm.c
* harbour/source/vm/itemapi.c
* harbour/source/vm/macro.c
+ harbour/source/vm/hashes.c
+ harbour/source/vm/hashfunc.c
+ added hash items, f.e.:
local h1 := {=>}, h2 := { "a"=>1.234, "b"=>2.345 }
? h2[ "a" ], h2[ "b ]
+ added support for DYNAMIC function declaration - it allow to define
functions which are lately bound at runtime, f.e.:
/*** t01.prg ***/
dynamic func1
proc main()
local h:=__hrbload("t02.hrb")
? func1()
return
/*** t02.prg ***/
func func1
return "Hello!!!"
% use new FUNCALL structure to hold EXTERNAL and DYNAMIC functions,
it reduce memory usage, FUNCALL is much smaller then FUNCTION
% use symbol scope bits when possible instead of making some linear scan
+ added new enumarator message: __ENUMKEY - it allow to access
key value when hash item is base enumerator value, f.e.:
proc main()
local v, h:={"a"=>1.000,"b"=>2.000,"c"=>3.000}
heval( h, { |k,v,i| qout( k, v, i ) } ); ?
for each v in h
? v, "=>", v:__enumKey(), v:__enumValue(), v:__enumIndex(), ;
valtype(v:__enumBase())
v += 0.123
next
? ;heval( h, { |k,v,i| qout( k, v, i ) } )
return
+ added C level hb_hash*() functions
+ added support for full HASH item cloning and updated array cloning
to also clone nested hashes - please note that xHarbour does not do
that, in xHarbour ACLONE() clones _ONLY_ nested arrays and HCLONE()
_DOES_NOT_ clone _ANY_ nested items.
* harbour/include/hbextern.ch
+ added hash functions HB_H*()
* changed INET*() functions to HB_INET*()
+ added hash functions H*() and socket functions INET*() when
HB_COMPAT_XHB is set
* harbour/include/hbtypes.h
+ added missing HB_EXTERN_BEGIN / HB_EXTERN_END
* harbour/include/hbpp.h
* harbour/source/pp/ppcore.c
! added protection against automatic word concatenation in some cases
! fixed preprocessing expressions when match marker matches ';' token
* harbour/source/rtl/Makefile
+ harbour/source/rtl/itemseri.c
+ added functions for item serialization: HB_SERIALIZE() and
HB_DESERIALIZE() - these function are not binary compatible
with xHarbour functions with the same names but make very
similar job with the exception to serialization of codeblock
and object variables - Harbour does not allow to serialize
codeblocks and serialize objects as arrays.
In most cases these functions can replace the xHarbour ones
+ added HB_DESERIALBEGIN() and HB_DESERIALIZE() functions covered
by HB_COMPAT_XHB macro - this functions are only for compatibility
with existing xHarbour code, In Harbour HB_DESERIALBEGIN() is
dummy function which returns first parameter and HB_DESERIALNEXT()
is a simple wrapper to HB_DESERIALIZE() so it's not necessary to
use them.
* harbour/source/rtl/hbinet.c
* changed INET*() functions to HB_INET*() and enable them for default
build
+ added INET*() functions wrappers covered by HB_COMPAT_XHB macro
* harbour/source/rtl/hbrandom.c
+ added HB_RANDOMINT() - xHarbour compatible
* harbour/source/rtl/len.c
+ added support for HASHes
* harbour/source/rtl/valtype.c
+ added support for HASHes
+ added set of HB_IS*() functions - they are a little bit faster then
calling VALTYPE( v ) == <cVal>
- removed HB_ISBYREF() - this function cannot longer work, it was using
a Clipper incompatible anomalies in passing variables by reference I
fixed so it has to stop to work. If it will be realy necessary to
implement HB_ISBYREF() function then please inform me - it will have
to be done at compiler level or with some much deeper HVM stack
checking.
* harbour/source/vm/extend.c
! fixed hb_extIsArray() and hb_extIsObject() to work well with
parameters passed by reference.
Please note that now hb_extIsArray() return TRUE only for pure arrays
not object values.
* harbour/contrib/Makefile
+ harbour/contrib/tip/Changelog
+ harbour/contrib/tip/Makefile
+ harbour/contrib/tip/atokens.c
+ harbour/contrib/tip/base64x.c
+ harbour/contrib/tip/cgi.prg
+ harbour/contrib/tip/client.prg
+ harbour/contrib/tip/credent.prg
+ harbour/contrib/tip/cstr.prg
+ harbour/contrib/tip/encb64.prg
+ harbour/contrib/tip/encmthd.c
+ harbour/contrib/tip/encoder.prg
+ harbour/contrib/tip/encqp.prg
+ harbour/contrib/tip/encurl.prg
+ harbour/contrib/tip/ftpcln.prg
+ harbour/contrib/tip/hbhex2n.c
+ harbour/contrib/tip/httpcln.prg
+ harbour/contrib/tip/mail.prg
+ harbour/contrib/tip/popcln.prg
+ harbour/contrib/tip/smtpcln.prg
+ harbour/contrib/tip/tip.ch
+ harbour/contrib/tip/url.prg
+ harbour/contrib/tip/utils.c
+ added TIP library - code borrowed from xHarbour
Please test - a lot of above code is not well tested, also some peaces
were written over year ago for different things (f.e. serialization for
NETRDD) and now I collected them and committed.
The TIP library was not tested at all. It can be compiled but I cannot
say if it works - I hope that people familiar with it can make necessary
test and fixes.
It's also not the final version of low level HASH item code. I'm working
on more efficient structure which uses binary tries but I cannot say when
I'll finish it (maybe in this weekend or maybe in next year) so I committed
working version now even if I'm not happy with overall performance (BTW
not worser then in xHarbour)