* harbour/src/vm/hvm.c
* harbour/src/vm/harbinit.prg
* renamed Harbour VM initialization function
from CLIPINIT() to __HBVMINIT()
This functions is called when new HVM stack is created at application
startup or in MT mode when new HVM thread is registered to initialize
basic VM settings like public variable GetList and ErrorBlock() by
calling ErrorSys() function.
* include/hbdefs.h
+ HB_SIZE/HB_ISIZ set to 64-bit value on Win64 targets.
This change should finally fix the many casting errors appearing
in Win64 builds of Harbour, plus it enables to use proper 64-bit
sizes for strings and arrays.
; TODO: Test and fix and places where this may cause a problem.
Delete all now unnecessary casting from size_t to HB_SIZE.
(f.e. '( HB_SIZE ) strlen(')
* include/hbdefs.h
+ Rearranged types to first define base Harbour types, then
abstract Harbour types and then legacy types. This removes
some redundancy and contains all legacy handling in one
common block. It also fixes 16-bit legacy types not being
defined in some cases.
+ Changed so that legacy type are referring to Harbour types
instead of replicating them using native C types.
* src/rtl/gtwin/gtwin.c
! Fixed for pocc after: 2010-03-05 19:26 UTC+0100 Viktor Szakats
(looks like pocc isn't very actively used in Harbour)
* config/globsh.mk
+ Added two TODOs to FALSE definitions.
* config/globsh.mk
+ 'FALSE' variable set for 'nt' shells.
* 'FALSE' variable set to a dummy value ($(TRUE)) for 'dos' and 'os2' shells.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Fixed to fail after deleting the library on 'ar' failure.
* src/common/hbfsapi.c
! hb_fsFName*(): Fixed to not GPF when called with NULL parameters.
(this also fixes 'hbpp -c' GPF)
* config/global.mk
+ Will now force HB_BUILD_UNICODE=no on Win9x hosts
(and if HB_BIN_COMPILE is not set to point to a non-UNICODE
Harbour tools to be used. Building UNICODE Harbour on Win9x
is a cross-build situation)
* config/win/bcc.mk
+ Added small trick to make the build work on Win9x host.
; Win9x is able to build properly using win/bcc.
* harbour/src/vm/harbinit.prg
* harbour/src/vm/runner.c
* harbour/src/vm/hvm.c
! fixed the order in which HVM calls __SetHelpK() PRG function.
It should be called after all INIT proc and before main application
entry.
* removed __SetHelpK() from thread initialization code.
! fixed the order in which INIT procedures are executed in single
module - CA-Cl*pper calls INIT PROCEDUREs in the reverted order
(from last to first)
+ added support for undocumented Clipper extension: two execution
levels of INIT PROCEDUREs. When application starts CA-Cl*pper
executes INIT PROCEDUREs called CLIPINIT from all linked PRG
modules. Then it repeats this operation for all modules executing
all other PROCEDUREs.
Now Harbour and Clipper gives the same results for this code:
proc main()
? PROCNAME()
proc errorsys()
? PROCNAME()
init proc INITPROC1()
? PROCNAME()
init proc clipinit()
? PROCNAME()
init proc INITPROC2()
? PROCNAME()
proc __SetHelpK()
? PROCNAME()
proc HELP()
* config/global.mk
% Minor optimization for Windows platform
! At the same time fix for CreateProcess( 'uname' ) error on Win9x.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
! Fix to previous: In multi-command cmdlines, f.e.: '(cmd1 && cmd2)'
$(RM) command _must_ be used as a workaround so that GNU Make
converts it to a batch file. Unfortunately with this, an 'ar'
failure will be masked by a successful $(RM), so the make won't
stop.
* config/globsh.mk
+ Added new command macro $(FALSE) preparing for general solution
to force failure.
* config/beos/gcc.mk
* config/qnx/gcc.mk
* config/bsd/gcc.mk
* config/bsd/clang.mk
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/hpux/gcc.mk
* config/linux/gcc.mk
* config/linux/icc.mk
* config/linux/clang.mk
* config/linux/sunpro.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* config/instsh.mk
* 'false' -> '$(FALSE)' for shell independence.
* config/wce/mingwarm.mk
* config/wce/msvcarm.mk
* config/win/mingw.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
! Removed delete command which was called when $(AR) command failed.
(usually: '|| $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)')
This fixes three issues:
- It won't force GNU Make into using cmd shell (in fact temporary batch file)
to execute these commands, thus it won't hit cmd shell length limitations
on NT and W2K systems (maybe Win9x also? TOCHECK).
- Build process will properly stop in case $(AR) (lib assembly) command
fails, instead of deleting the wrong lib and continuing with the build.
Best would be to delete it and fail, but I found no clean way to do this.
- This incorrect variation is no longer used: '|| $(RM) $(LIB_DIR)/$@'
(pathsep conversion is missing)
NOTE: If someone can recommend a way to fail the build after deleting
the partial lib, all above logic can be reintroduced, but in this
case the lib creation cmds need to be rewritten like mingw to
avoid long cmdline lengths.
IOW I'm looking for a win shell equivalent of this sequence:
AR_RULE = $(AR) ... || ( $(RM) ... && **false** )
where **false** is something which creates no output and returns
non-zero errorlevel.
* ChangeLog
+ More explanation to prev log entry.
* config/wce/mingwarm.mk
* config/win/mingw.mk
* config/win/cygwin.mk
+ Added support for host systems with shorter cmdline limits
(in lib creation command). F.e. on WinW2K or WinNT.
* config/win/cygwin.mk
! Fixed delete command on 'ar' failure to work on native
Windows shell.
* tests/wvtext.prg
* Updates. Formatting. Show msgbox when MT is not present.
* contrib/hbxbp/Makefile
+ Enabled for mingw64.
* contrib/hbxpp/xppop.prg
* contrib/hbxpp/xppopc.c
+ Added Xbase++ compatible operator overloading for $ on arrays.
* harbour/src/vm/harbinit.prg
* harbour/src/vm/runner.c
* harbour/src/vm/hvm.c
! fixed the order in which HVM calls __SetHelpK() PRG function.
It should be called after all INIT proc and before main application
entry.
* removed __SetHelpK() from thread initialization code.
! fixed the order in which INIT procedures are executed in single
module - CA-Cl*pper calls INIT PROCEDUREs in the reverted order
(from last to first)
+ added support for undocumented Clipper extension: two execution
levels of INIT PROCEDUREs. When application starts CA-Cl*pper
executes INIT PROCEDUREs called CLIPINIT from all linked PRG
modules. Then it repeats this operation for all modules executing
all other PROCEDUREs.
Now Harbour and Clipper gives the same results for this code:
proc main()
? PROCNAME()
proc errorsys()
? PROCNAME()
init proc INITPROC1()
? PROCNAME()
init proc clipinit()
? PROCNAME()
init proc INITPROC2()
? PROCNAME()
proc __SetHelpK()
? PROCNAME()
proc HELP()
* tests/wvtext.prg
+ Extended with tests for row resize.
+ Added visual feedback for resize event.
* config/global.mk
! Typo after last changes making HB_BUILD_PKG ineffective.
* INSTALL
* Minor.
* src/rtl/hbzlibgz.c
* src/rtl/fstemp.c
* src/rtl/at.c
* src/rtl/strtran.c
* src/rtl/hbinet.c
* src/rtl/saverest.c
* src/rtl/diskspac.c
* src/rtl/philes.c
* src/rtl/mlcfunc.c
* src/rtl/disksphb.c
* src/rtl/shadow.c
* src/rtl/trace.c
* src/rtl/ati.c
* src/rtl/hbstrsh.c
% Optimized to use hb_parn*def() calls instead of inline-if expression
(where default value is constant or simple variable).
% Optimized out few HB_ISNUM() calls where the default value was zero.
Also added comment to signal the intention.
* src/rtl/inkey.c
+ Added two TOFIXes to LASTKEY() and NEXTKEY() after having discovered
two hidden (dirty) parameter extensions over original Clipper
implementation, both added here in Harbour in year 2001. [ I didn't
test if it's undocumented Clipper function, but there is no such
indication in past log enties, plus even in this case it would have
to be marked with HB_CLP_UNDOC. They are also not Xbase++ extensions. ]
+ Added HB_KEYNEXT(), HB_KEYLAST() functions which implement original
NEXTKEY()/LASTKEY() functionality plus the extension.
Pls correct me if I'm wrong, but after reading all related log entries
I could not find out why the default of the optional parameter is
_SET_EVENTMASK in NEXTKEY(), but INKEY_ALL in LASTKEY(). It was changed
as part of big change, here: 2004-10-11 21:40 UTC+0100 Przemyslaw Czerpak
; I intend to deprecate the dirty extensions and finish adding the two
new Harbour specific function, which we're free to extend.
* contrib/xhb/dumpvar.prg
! Fixed recent typo.
* INSTALL
* Updated tdm website.
* config/win/mingw.mk
+ Added (commented) support for -m32/-m64 options.
This may be useful in the future f.e. for mingw tdm 4.5.0
compiler which can build both 64 and 32-bit targets using
the same compiler binaries.
* config/global.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/cygwin.mk
* config/win/msvc.mk
* config/os2/watcom.mk
+ Changed to init RCFLAGS from global.mk.
* config/global.mk
+ Added support for theoretical QNX cross-builds.
* ChangeLog
* Updated QNX TODO list.
* contrib/hbcurl/hbcurl.c
+ Added all remaining known guards to HB_CURLOPT_* options, so in
theory now f.e. even libcurl version 7.5.0 is supported.
! Fixed HB_CURLOPT_HTTPGET being disabled when building against
libcurl < 7.14.1
! Fixed HB_CURLOPT_FTP_ACCOUNT being enabled at the wrong libcurl
version.
* mpkg_nightly.sh
* Minor.
* package/winuni/RELNOTES
* Versions updated.
+ config/detplat.mk
* config/global.mk
+ Last usage of $(eval) replaced with "quasi-function" call
solution. It's less efficient, but now it should support
GNU Make 3.79.
NOTE: If someone has a better solution, or even a more optimal
version of this one, pls speak up!
+ Two usages of $(eval) replaced with GNU Make version agnostic
solution. (in previous commit)
* config/detfun.mk
* config/global.mk
% Streamlined internal handling of HB_SRC_ROOTPATH value.
+ HB_SRC_ROOTPATH will now be conditioned before use:
ending pathsep added, pathseps converted to forward
slash, double slashes deleted.
! Fixed HB_BIN_COMPILE autodetection in PATH, $(realpath
was not necessary, it only ruined already absolute paths
which are likely to appear in PATH anyway.
% Optimized HB_BIN_COMPILE autodetection in PATH to reuse
function created for this purpose.
! Fixed GNU Make 3.81 version detection to work also with
future GNU Make versions.
+ Added GNU Make 3.80 version detection. (unused, commented)
% Deleted version guards from around $(eval) and $(info) calls:
Unknown function calls will simply be ignored by
GNU Make and empty string returned, so this is safe.
% Force HB_BUILD_PKG off only if HB_SRC_ROOTPATH is not
specified (and running < 3.81 GNU Make version).
+ Show warning when using < 3.81 GNU Make version and
HB_SRC_ROOTPATH was not specified.
+ Falling back to using HB_SRC_ROOTPATH in all places where
$(realpath) or $(abspath) calls are used in 3.81 version.
! Protected one $(realpath) with version guard.
+ Automatized how HB_VER_STATUS_SH is filled for final releases.
; NOTE: HB_SRC_ROOTPATH support is completely untested.
; TODO: If everything works as intended, now "only" $(eval)
calls need some workaround to give full blown
functionality also with 3.79 version of GNU Make.
* config/instsh.mk
! Fixed to not use $(realpath) (and fail to install),
when running under < 3.81 GNU Make.
* utils/hbmk2/hbmk2.prg
* config/global.mk
* Changed to use 'wcc386' executable for watcom detection
(was 'wpp386').
* INSTALL
+ Minor updates regarding QT.
* contrib/hbide/resources/setup.ui
* contrib/hbide/resources/setup.uic
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ Implemented: OS system themes via "Setup" dialog.
Animation mode and system theme ( both settable via "Setup" )
are remembered for next run. Please do not set "macintosh" theme
on windows machines, it GPF's.
% Enhanced: "Setup" dialog with fields to hold settings for
variety of actions. Please have a look into them and propose more.
Currently only Theme and Animation mode, two actions are active
in real-time.
* INSTALL
* config/detfun.mk
* config/global.mk
* HB_ROOT -> HB_SRC_ROOTPATH
Renamed to not have such obvious and short name and not
to collide with build-in hbmk2 macro with the same name.
* INSTALL
* config/global.mk
* config/detfun.mk
* config/detect.mk
* external/sqlite3/Makefile
* external/png/Makefile
* external/jpeg/Makefile
* external/bzip2/Makefile
* external/libhpdf/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbmzip/Makefile
* contrib/hbbz2/Makefile
* contrib/hbhpdf/Makefile
* contrib/sddsqlt3/Makefile
* contrib/hbwin/Makefile
+ Added HB_ROOT variable which can be used to specify Harbour
source tree root as an absolute directory, when using
older than 3.81 GNU Make version (f.e. on QNX).
+ Changed the way locally hosted source directories are
specified for detection function, in order to support
HB_ROOT functionality.
* INSTALL
+ Added Mac OS X QT pkg recommended link.
* ChangeLog
* Updated list of pending issue on QNX system.
* contrib/hbmysql/mysql.c
! Fixed version guard around mysql_get_server_version() call
to check against the documented version number this
function appeared.
* utils/hbmk2/hbmk2.prg
! Fix for *nix filename escaping code.
! Fixed to escape and decorate filename in entry function
detection external call using nm tool.
; Patches by Tamas Tevesz.
* contrib/hbcurl/hbcurl.c
! Fixed to build against very old libcurl versions.
% Using hb_parnldef().
! Fixed few guards being off by one minor version.
* contrib/xhb/xhbfs.c
! Fixed ISDIRECTORY() to work like originally intended.
This effectively reverts breakage caused by this change:
2009-07-06 10:06 UTC+0100 Miguel Angel Marchuet <miguelangel@marchuet.net>
* source/rtl/file.c
* Changed IsDirectory to fix IsDirectory( "\\machine\c" ) style call
under windows platforms.
BTW, in Harbour to achieve above effect, you can use
native HB_DIREXISTS( "\\machine\c" ) function call.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
! Deleted references to hbcc, hbcmp, hblnk. They still work,
and they still can be readded as links if someone finds them
necessary. As a general direction for most users though it's
preferred to use hbmk2 as-is.
* Updated help text. (pls fix it further, it's not perfect)
* contrib/hbcomm/hbcomm.prg
+ OUTCHR() smartened to use a loop until failure or the whole
data is transmitted. As suggested by Mindaugas.
* harbour/contrib/xhb/xhbcomp.prg
* harbour/contrib/xhb/xhbmsgs.c
+ added emulation for some xHarbour extensions in ==, = and !=
operators.
<block> == <block>
<hash> = <hash> // it does not work correctly in xHarbour
<hash> != <hash>
* harbour/include/hbdefs.h
* harbour/include/hbvmpub.h
* harbour/src/common/expropt1.c
* harbour/src/common/expropt2.c
* harbour/src/common/hbstr.c
* harbour/src/compiler/gencc.c
* harbour/src/vm/hvm.c
* harbour/src/vm/itemapi.c
* harbour/src/vm/task.c
* harbour/src/rtl/abs.c
* harbour/src/rtl/hbdyn.c
* harbour/src/rdd/dbsql.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/sddoci/sddoci.c
* harbour/contrib/sddsqlt3/sddsqlt3.c
* renamed HB_LONG_{MIN,MAX} to HB_VMLONG_{MIN,MAX} and
HB_INT_{MIN,MAX} to HB_VMINT_{MIN,MAX} to not confuse users
after renaming HB_LONG to HB_MAXINT and LONG to HB_LONG.
They could expect that HB_LONG_{MIN,MAX} are for HB_LONG type.
* contrib/hbide/idedocks.prg
* contrib/hbide/idestylesheets.prg
% Prepared to apply ideThemes ( upcoming ) if user so defines.
A glimpse can be had from <View><Toggle Animation>.
Current theme is Microsoft Office look and feel, though a
little more work is required. RGB Colors supplied by
Antonio Linares.
* mpkg_deb.sh
* mpkg_rpm.sh
* mpkg_rpm_win.sh
* mpkg_nightly.sh
* mpkg_src.sh
* mpkg_rpm_wce.sh
* mpkg_tgz.sh
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* bin/postinst.sh
- Do not force bash.
(QNX by default doesn't have bash f.e., and now with the
limited amount of .sh code in SVN, we can focus on making
the code POSIX compliant.)
* ChangeLog
! One QNX TODO marked as DONE.
* src/rtl/hbzlib.c
+ Added QNX version number to the comment noting the hack.
* contrib/xhb/xhbfs.c
+ Added ISDIRECTORY() implementation which exactly mimics
current xhb behavior. Current xhb behavior seems wrong
because on Windows platform it works like HB_DIREXISTS()
in Harbour (not allowing wildcards), while on rest of
platforms it accept wildcards. The original intent in
xhb was the latter.
* contrib/xhb/hbcompat.ch
- Deleted ISDIRECTORY() <-> HB_DIREXISTS() mapping.