* contrib/hbmisc/Makefile
* contrib/hbmisc/blinker.prg
+ contrib/hbmisc/blinker.ch
! Fixed BLICPUREL().
+ Added blinker.ch header. This contains some stuff missing
from original Blinker and some runtime mockup/emulation for
following linker commands:
BLINKER EXECUTABLE SERIAL <"String"> /* Harbour needs double quotes around the string */
BLINKER DEMONSTRATION DATE <YYYYDDMM>
BLINKER DEMONSTRATION MINUTES <minute>
* src/rtl/tgetlist.prg
* Minor formatting.
* harbour/src/vm/hvmall.c
* harbour/include/hbstack.h
* reactivated for tests inline ASM code which can be used to access
HVM stack pointer in MT HVM builds. It can be enabled in 32bit
desktop windows Harbour builds by setting HB_ASM_TLS build time macro.
* harbour/src/vm/hvmall.c
! added missing HB_STACK_PRELOAD - the performance of MT HVM
on C compilers/platforms which do not support C thread local
variables was hardly reduce due to missing above macro, i.e.
MinGW builds
* harbour/include/hbsetup.h
+ use FORCEINLINE defined in compiler header files
* harbour/src/vm/fm.c
* do not redefine FORCEINLINE if it's already defined in compiler
header files
* harbour/include/hbsetup.h
+ added HB_FORCEINLINE macro
* harbour/include/hbatomic.h
* use HB_FORCEINLINE instead of _HB_INLINE_
* harbour/src/vm/fm.c
* define for DLMALLOC FORCEINLINE macro as HB_FORCEINLINE
* harbour/src/vm/dlmalloc.c
* removed some cleanup in FORCEINLINE declaration and _HB_INLINE_
usage reducing number of local Harbour modifications.
* harbour/include/hbatomic.h
* removed unnecessary parenthesis
* renamed HB_SPINLOCK_INIT_R macro to HB_SPINLOCK_INITVAL_R
+ added HB_SPINLOCK_INIT_R(l) macro
* harbour/src/vm/fm.c
* harbour/src/vm/dlmalloc.c
+ updated to DLMALLOC 2.8.4
* added OS2 support from our previous DLMALLOC version
+ updated to use our own recursive locks when available
* disabled hack which breaks strict aliasing
! added some fixes to new DLMALLOC code
TODO: Test it with MSVC win and wince builds and add _MSC_VER
based protection for __forceinline usage (I do not know
in which MSVC version it was added).
Test it with OS2 GCC and OpenWatcom builds.
Test it Darwin and some other *nixes.
* harbour/contrib/sddfb/sddfb.c
! fixed missing reference operator in isc_detach_database()
! fixed NULL used to clear connection handles
* keep references to connection handlers passed to isc_*() functions
* minor formatting
* harbour/src/rtl/teditor.prg
! Fixing MemoEdit parameter calculation: nTextBuffRow, nWindowColumn.
Procedure Main()
Cls
// Put 5 in the 5 position and next BS to change.
? MemoEdit( "123",,, MaxRow(), MaxCol(),,,,,, 5 )
Wait
* harbour/src/macro/macro.y
+ added support for
<alias> -> &( <exp> )
in macrocompiler
* harbour/src/macro/macro.yyc
* regenerated for new grammar rules
* src/common/hbverdsp.c
* Deleted an empty line in build information.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/gtwvg/wvgcore.c
- Deleted local (and unmaintained) hacks to make OLE work.
* .c source changed to use hbwinole.h instead.
* contrib/gtwvg/wvgcore.c
! Fixed to build properly in mingw C++ mode.
(build errors found with mingw64 4.5.0)
* harbour/contrib/hbwin/axcore.c
* use hb_parstr_u16() instead of hb_mbtowc(hb_parc(n))
* harbour/src/rtl/hbzlib.c
* modified HB_ZUNCOMPRESSLEN(), current syntax is:
HB_ZUNCOMPRESSLEN( <cCompressedData>, [<@nResult>] )
-> <nUnCompressedDataLen> or -1 on error
* harbour/contrib/hbbzip2/hbbzip2.c
* modified HB_BZ2_UNCOMPRESSLEN(), current syntax is:
HB_BZ2_UNCOMPRESSLEN( <cCompressedData>, [<@nResult>] )
-> <nUnCompressedDataLen> or -1 on error
* harbour/src/rdd/dbfcdx/dbfcdx1.c
! fixed bad copy and past typo which could cause internal error when
new index using existing order (subindex) was created without ADDITIVE
clause. Bug reported by Mindaugas - many thanks for the information.
* contrib/hbct/ctnet.c
* contrib/hbtpathy/tpwin.c
* contrib/hbnf/getenvrn.c
! Fixed to disable some functionality on all WinCE platforms.
These were WinCE API functions wrongly declared in
mingwarm/poccarm headers. (thus causing link-time errors
for final apps trying to use these functions)
* contrib/hbwin/win_dlg.c
! Enabled more functionality for WinCE. mingwarm builds
will probably crash due to buggy commdlg.h header.
* src/vm/fm.c
! Fixed to redefine ABORT for all wce/msvcarm targets.
* utils/hbmk2/hbmk2.prg
! Minor typo in recently added help item.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/win_dlg.c
* contrib/hbodbc/odbc.c
* contrib/rddsql/sddodbc/sddodbc.c
! Fixed to compile with -DWIN32_LEAN_AND_MEAN.
* src/vm/extrap.c
! Fixed to do UNICODE to "ANSI" conversion in module listing
code for WinCE platform. It'd be nice if a WinCE user
could test it.
* src/rtl/filesys.c
! Silenced warning on newer mingwarm compilers about
unused function.
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
% declare hb_stack TLS pointer in MT HVM as static when HVM is compiled
with HB_HVM_ALL=yes
* harbour/src/compiler/hbcomp.c
! added protection against multiple freeing the same expression on
some errors in compiled code. It's necessary after removing reference
counters which made such protection indirectly. It fixed bug reported
by Teo.
* harbour/include/hbsetup.h
! check GCC version for hot and cold function attribute macros
* src/rtl/filesys.c
! Fixed fs_win_get_drive() to return zero (instead of -1)
when drive letter wasn't returned by Windows API.
(it's not clear what is the proper error behavior here)
! Fixed fs_win_set_drive() to apply upper limit on input
parameter.
* contrib/rddsql/sddfb/sddfb.c
* Minor formatting.
* src/rtl/filesys.c
+ Using direct Windows API instead of compiler specific
C RTL functions to get/set current disk.
; Please review.
- Deleted one Windows TODO: setmode() to be convered to
direct Windows API call. This translation is done in
C RTL, so Windows API cannot be used.
; There is no remaining non-standard (compiler specific)
C RTL function usage on the Windows platform AFAICT.
* contrib/hbmysql/tmysql.prg
* Formatting.
* src/vm/estack.c
* include/hbstack.h
% hb_stackDispLocal() internal debug function made static,
and guarded with HB_VM_DEBUG (pls change it to something
better if there is one), so it's not included in every
regular build and final executable.
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* use hb_compGetFuncID() to detect reserved function names
* harbour/include/hbapi.h
* harbour/src/common/Makefile
- harbour/src/common/reserved.c
- removed not longer used hb_compReservedName() function
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/src/common/expropt1.c
* harbour/src/compiler/hbcomp.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyc
* harbour/src/macro/macro.yyh
+ added new type of expression: SETGET
% eliminated reference counter in expressions
(this code was never fully safe because expression optimizer was not
respecting multiple references)
% replaced all HB_COMP_EXPR_DELETE() macro usage with HB_COMP_EXPR_FREE()
and deleted HB_COMP_EXPR_DELETE() macro
- removed not longer used hb_compExprClone()
Above modifications reduce a little bit total memory consumed by
compiler and macrocompiler giving also some minor speed improvement.
* harbour/ChangeLog
* marked TODO for above modification as DONE.
* src/rtl/hbini.prg
* Deleted several unnecessary empty lines at EOF.
* INSTALL
* Minor.
* include/dbinfo.ch
* Formatting.
+ include/hb.ch
* include/Makefile
+ Added Harbour header which #includes commonly used in
applications.
It also enables us to easily extend standard set of macros
and constants.
* contrib/hbide/idesaveload.prg
* "hbide.set" -> "hbidewnd.ini". At least it uses standard
extension. Still wrong solution and a remaining TOFIX.
* harbour/src/vm/macro.c
! fixed buffer overflow caused by wrong pointer type
( 'HB_ULONG*' instead of 'int *' )
* harbour/src/vm/set.c
! fixed bug in MT mode - when new thread was created then _SET_PATH
setting was not cloned but wrongly shared with parent thread - many
thanks to Rossine for the information
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* contrib/hbwin/wapi_winbase.c
+ Added trick to make dynamic calls to WIDE API functions via
UNICOWS.DLL in UNICODE (default) builds when running on Win9x
systems. This fixes DISKSPACE(), HB_DISKSPACE() and
WAPI_GETLONGPATHNAME() in this scenario. (IOW this patch
makes these calls work in UNICOWS situations)
* src/rtl/hbsocket.c
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
+ Restored to work with ws2_32.dll. (instead of wsock32)
* INSTALL
+ Added information on Win9x/ME support.
* src/rtl/diskspac.c
* src/rtl/disksphb.c
+ Added comment about the reason why GetDiskFreeSpaceEx()
is called dynamically (win95 first edition support).
+ Added support for HB_NO_WIN95 build-time flag to drop
Win95 compatibility. Unfortunately current dynamic load
trick fails with UNICOWS, returning zero for disk
space related calls in this scenario. If we drop the
dynamic call, we lose support for Win95 first edition,
but these functions will work properly on Win95b/98/ME
in return. I'm still thinking about it, but maybe it's
better to drop Win95 first edition support altogether
and make newer versions work properly. Any opinions?
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
! Fixed to use WIDE/ANSI versions of dynamically executed
functions according to UNICODE setting.
* bin/hb-mkdyn.sh
* bin/hb-func.sh
* utils/hbmk2/hbmk2.prg
* config/win/global.mk
! Stepping back to link against wsock32 instead of ws2_32.
The only reason is Win95 (even OSR2) compatibility.
This is a little bit less efficient unfortunately.
* src/rtl/hbsocket.c
! Fixed to use WSAioctl via dynamic call for non WinCE
builds, and if HB_NO_WIN95 macro is no defined.
WSAioctl is present in ws2_32.dll, which .dll isn't
available on Win95.
; Not tested since I don't know how to test it, pls
review and test.
; NOTE: There seem to exist a package which add ws2_32
support for Win95, but I couldn't find it, if
someone has, we can drop this ugly trick and
simply document the requirement.
* src/rtl/gtwin/gtwin.c
* Formatting.
* src/rtl/gtwin/gtwin.c
! Added workaround for MS confirmed (but forever unfixed)
UNICOWS ReadConsoleInput() bug, which caused reported
dead keyboard when running UNICODE+UNICOWS apps on Win9x.
% Optimized to cache Win9x detection flag.
* include/hbapi.h
* src/common/hbver.c
+ Added hb_iswin2k() low-level function to detect
if running under Windows 2000 or newer.
* include/hbextern.ch
* src/rtl/version.c
+ Added HB_OSISWIN2K() .prg level function.
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* examples/gtwvw/gtwvw.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
% Changed to use hb_iswin*() API instead of implementing
version detection locally.
* contrib/hbmysql/mysql.c
* contrib/hbpgsql/postgres.c
+ Added my partial copyright.
* contrib/hbpgsql/tests/tstpgrdd.prg
* Formatting.
* contrib/hbpgsql/postgres.c
! Fixed to define all .prg level functions regardless
of pgsql lib it's built against. They return
permanent failure in this case.
! Fixed PQCREATETRACE() to return NULL pointer instead
of NIL for static builds.
! PQFREECANCEL() marked with HB_LEGACY_LEVEL3.
* contrib/hbwin/win_os.prg
+ Using HB_OSISWIN2K() core API.
* contrib/hbide/ideprojmanager.prg
* Minor alignment.
* contrib/hbtip/encmthd.c
* contrib/hbtip/encurl.prg
* contrib/hbtip/encb64.prg
! Cleaned this quite strange and dangerous hack which made the
exact nature of the logic fully hidden for anyone expecting
regular programming techniques. I even reimplemented QP
encoding not knowing about it.
Now the class/function interface is completely standard
without any hidden interdependencies and internal logic
to access class vars from C level function and mapping C
level functions as methods.
Now it's possible to replace these TIP specific encoder/decoder
functions with core ones, or move these ones to core.
INCOMPATIBLE: Old function names have been changed from
TIPENCODER*_[DECODE|ENCODE]() to __TIP_*_[ENCODE|DECODE]().
; TOFIX: Old C implementation of QP encoding/decoding doesn't
seem to work.
; TODO: Try eliminating redundancy in base64 encoding/decoding
between hbtip and core.
* contrib/hbtip/cgi.prg
* contrib/hbtip/url.prg
* contrib/hbtip/httpcli.prg
* Changed to use new internal function names for encoding/decoding.
* src/rdd/dbf1.c
* Minor formatting.
* src/vm/hvm.c
* include/hbapi.h
* Marked hb_synEval public symbol with HB_LEGACY_LEVEL3
* src/rtl/gtwin/gtwin.c
! Copyright header update.
* src/rtl/objfunc.prg
* include/hboo.ch
* Minor cleanup and formatting.
* INSTALL
* Minor refinement in wording.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
! "Codec" -> "Encoding" in a few more places.
! "..." added to some more menu items.
! Double "(.ext)" text in filetypes in open project dialog.
; Please review me.