* harbour/contrib/hbw32/dllcall.c
* minor cleanup in return values
* harbour/contrib/hbole/ole2.c
* cleaned casting in UNICODE conversions
* harbour/source/common/expropt2.c
* replicate CA-Cl*pper compile time optimization bugs:
"" $ <literString> => .T.
AT( "", <literString> ) => 1
CHR( 256 ) => ""
only when Harbour extensions (-kh) are not enabled, f.e.
in strict Clipper compatibility mode (-kc)
* harbour/utils/hbtest/rt_hvma.prg
* harbour/utils/hbtest/rt_str.prg
* updated to test Clipper and Harbour compile time modes in
the above situations
* harbour/common.mak
* harbour/source/rtl/Makefile
- harbour/source/rtl/strings.c
* harbour/source/common/hbstr.c
* moved hb_strEmpty() from RTL to COMMON library
* harbour/include/hbexprb.c
* harbour/include/hbexprop.h
* harbour/source/common/expropt2.c
+ added compile time optimization for EMPTY() function
; removed 'TODO: empty optimization' note
* harbour/source/rtl/itemseri.c
% compress trailing spaces during string item serialization
* harbour/include/hbapi.h
* harbour/source/vm/hashes.c
+ added hb_hashAddNew() - works like hb_hashAdd() but it adds item
only if new key is used
* harbour/source/vm/hvm.c
* use hb_hashAddNew() instead of hb_hashAdd() for HB_P_HASHGEN
I cannot revert the order of hash item during compilation because
it will also change the order of user expression evaluation.
* harbour/include/dbedit.ch
* harbour/source/rtl/dbedit.prg
+ added support for undocumented Clipper DE_APPEND mode - code
covered by HB_C52_UNDOC
% ignore K_MOUSEMOVE events to avoid flickering just like CA-Cl*pper
does
+ added support for cell positioning with mouse left key - CL53
compatible behavior covered by HB_COMPAT_C53 macro
* changed static function name dbEditCallUser() to CallUser() for
strict Clipper compatibility - some user function code may check
PROCNAME()
* some minor optimizations and fixes
* harbour/contrib/hbmzip/hbmzip.c
* indenting
* harbour/source/vm/hvm.c
* formatting
* harbour/include/hbdate.h
* harbour/source/common/hbdate.c
+ added hb_timeStampEncode()
* harbour/include/hbapifs.h
* harbour/source/rtl/filesys.c
+ added hb_fsSetFileTime()
+ added POSIX file attributes with some macros to convert Harbour
definitions into OS ones.
+ added initial version of hb_fsSetAttr() - work in progress, I should
finish it in the evening.
* harbour/contrib/hbmzip/hbmzip.c
* added setting file attribute in DJGPP builds
! fixed some small typos in OS2 builds reported by David
* harbour/source/vm/fm.c
* changed hb_xrealloc() to be ANSI-C realloc() compatible
* harbour/source/vm/runner.c
+ added support for passing non string parameters to .HRB INIT/<main>
procedures/function
+ added automatic destructors for .HRB modules
; TOFIX: add protection against possible double executing of
EXIT procedures in .HRB modules in HVM quit phase
* source/vm/arrayshb.c
* contrib/xhb/xhbfunc.c
! Moved hb_ArrayID() Harbour level function to xhb.lib.
; NOTE: This function is not compatible with x64 architecture.
* source/vm/extrap.c
! Warning fixed.
* contrib/hbmysql/mysql.c
* contrib/hbmysql/tmysql.prg
! sqlListF() return value changed to pointer from numeric.
Now compatible with Win64.
INCOMPATIBLE.
* contrib/hbw32/w32_prn.c
! Warning suppressed (pointer to BOOL conversion).
* contrib/hbw32/dllcall.c
* contrib/hbhpdf/harupdf.c
* contrib/hbfimage/fi_winfu.c
* contrib/hbgf/hbgfw32/win32.c
! Fixed several pointer (handle) passings to be 64bit compatible.
* contrib/hbw32/w32_reg.prg
* Minor formatting.
; TOFIX: There are still some PellesC 64bit warnings to be fixed.
(posted separately)
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* define whole contrib library list for new contrib/Makefile
+ added header files to respect differences between platform
native and Windows only headers
* harbour/harbour.spec
* define whole contrib library list for new contrib/Makefile
* divided libraries which needs external references into
separated packages
! removed unnecessary dependences in binaries rebuild in shared
mode
* harbour/contrib/hbodbc/odbc.c
* pacified warnings
% minor optimization
* harbour/contrib/hbcurl/hbcurl.c
* harbour/contrib/hbfbird/firebird.c
* harbour/source/vm/extrap.c
* casting to pacify warnings
* harbour/contrib/gtwvg/gtwvg.c
! fixed pointer comparison - C uses different precedence for !
operator then Clipper/xbase
* harbour/source/rtl/hbinet.c
! fixed GPF HB_INET[GS]ET{SND,RCV}BUFSIZE() when wrong
socket parameter is passed. Please remember that after
RT error the control is returned to application.
% removed any hardcoded limits for size of data passed in
single read/write call during normal stream operations
- removed iSndBufSize/iRcvBufSize
* include/hbapi.h
* source/rtl/set.c
* source/vm/fm.c
! Fixed _SET_HBOUTLOG, _SET_HBOUTLOGINFO handling in fm.c.
hb_setget*() functions cannot be used here as the set
system is deinited at this point. So local buffers are
holding the values.
* source/vm/extrap.c
+ Added Windows GPF detailed information dump (with some
modifications) provided by Mindaugas Kavaliauskas.
Many thanks.
; It would be very nice to have similar for Linux, OS/2,
Darwin.
* include/set.ch
* include/hbset.h
* source/rtl/set.c
* source/vm/fm.c
* source/vm/extrap.c
+ Added: Set( _SET_HBOUTLOGINFO[, <cValue>] ) -> <cOldValue>
Default value: ""
This user defined text will be included in each hb_out.log
messages. This way it's possible to include custom information
in these entries to help identify and locate them.
! Fixed a few string not marked with HB_I_() translation
marker.
* source/rtl/gtwvt/gtwvt.c
+ Refreshing whole screen after palette change.
This replaces the previous method which had some
side effects.
* source/vm/fm.c
* source/vm/extrap.c
* Changed "Harbour" to "Application" in user visible
screen/log messages.
* contrib/hbwhat32/_winfont.c
! Fixed typo in previous commit.
* include/set.ch
* include/hbset.h
* source/rtl/set.c
* source/vm/fm.c
* source/vm/extrap.c
+ Added: Set( _SET_HBOUTLOG[, <cFileName>] ) -> <cOldFileName>
Default value: "hb_out.log"
This replaces hb_fm.log and hb_ex.log, and makes it possible
for the applications to control the filename where these
internal Harbour outputs are written to.
* source/rtl/gtwvt/gtwvt.c
% Minor redundancy removed.
* harbour/doc/whatsnew.txt
* minor fixes in formatting
* harbour/source/rtl/hbgtcore.c
! fixed memory leak when HB_GTI_NOTIFIERBLOCK was used to overload
register before block
* harbour/source/vm/eval.c
+ added support for SYMBOL items in hb_evalLaunch() to be compatible
with hb_itemDo()
* harbour/contrib/hbmisc/spd.c
* cleaned warnings
* harbour/source/vm/macro.c
! pass macro compiled string to error object. It fixes Clipper
incompatible behavior reported by Mindaugas.
! fixed few possible internal errors when user error handler will
try to force wrong substitution
* source/rtl/hbbit.c
+ Added important NOTE about hb_bit*() functions'
relation to the compiler optimization engine.
* source/vm/fm.c
* source/vm/extrap.c
* Log filenames converted to static variables. With the
intent that they'll be converted to Set()s or similar
user settable values in the future, since it's useful
and more elegant to redirect these to the app's normal
logfile.
* contrib/hbsqlit3/hbsqlit3.c
* Minor formatting.
* harbour/contrib/hbw32/w32_regc.c
! fixed typo hb_free() => hb_xfree()
! fixed UNICODE build
* harbour/source/vm/itemapi.c
* changed hb_itemPutC() and hb_itemPutCL() to be safe when
user call it passing string which is stored in item passed
as first parameter. It should fix problem located by Chen.
Please test.
* source/vm/extend.c
! hb_storclen_buffer() fixed to free the passed buffer
in case it couldn't be stored. This situation was
easy to miss and difficult to detect for the caller,
and it might cause leaks.
* contrib/hbw32/Makefile
* contrib/hbw32/common.mak
+ contrib/hbw32/hbw32.ch
+ contrib/hbw32/w32_reg.prg
+ contrib/hbw32/w32_regc.c
+ contrib/hbw32/tests/testreg.prg
+ Added Windows registry handling stuff.
Work of Peter Rees <peter@rees.co.nz> / xhb.
* Code cleaned, formatted, optimized a bit.
+ Added an even simpler interface:
w32_regRead( <reg_path> ) -> xValue
w32_regWrite( <reg_path>, <value> ) -> <lSuccess>
where <reg_path> is: "HKCU\key[\subkeys]\entry"
* source/vm/hvm.c
% Minor opt to __SETPROFILE(), __TRACEPRGCALLS()
! __SETPROFILE() to only set the value if a parameter was passed.
This way it's possible to read the value without destroying it.
* include/hbvm.h
* source/vm/hvm.c
* source/vm/extrap.c
! Fixed OS/2 problem reported by David.
(BTW, do we need really need to remove the exception
handler before exiting? If yes, shouldn't we do the
same under Win32?)
* source/common/hbstr.c
! Silenced one 'loss of significant digit' BCC warning.
* source/vm/extrap.c
! Fixed missing header for OS/2.
* source/vm/classes.c
! Minor fix in internal error text.
* contrib/hbcurl/make_b32.bat
* contrib/hbcurl/make_vc.bat
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/tests/ftp_uldl.prg
! non-GNU make will also look into the /bin folder
for .dlls.
! Lots of fixes, too many to mention.
+ Enabled GC pointers. (see TOFIX though)
+ Added all remaining CURL 'easy' API parts and
implemented all options existing in 7.18.1:
+ All option values (except bit-level ones) made available in hbcurl.ch
+ All options updated to latest CURL version in hbcurl.ch
+ All error codes made available in hbcurl.ch
+ CURL_EASY_DUPLICATE()
+ CURL_EASY_RESET()
+ CURL_EASY_PAUSE()
+ CURL_EASY_SEND() (not yet available in stable builds)
+ CURL_EASY_RECV() (not yet available in stable builds)
+ CURL_EASY_GETINFO()
+ CURL_ESCAPE() (obsolete)
+ CURL_UNESCAPE() (obsolete)
+ CURL_GETDATE()
; TOFIX1: Could someone look at it? In case I call the destructor
(curl_easy_cleanup()) manually, the garbage collector
will run into an invalid pointer, when terminating the
test program.
; TOFIX2: The casting to 'curl_off_t' goes wrong. Could someone
help?
; NOTE1: Harbour needs at least libcurl 7.17.0. Unfortunately
compile time version detection is not working at this time,
so try with the latest version 7.18.1.
; NOTE2: Most callback interfaces are not implemented on the
Harbour level.
; NOTE3: Harbour is currently not optimizing
"<const1> ** <const2>" type of expressions at compile time.
Could we add it? This expression is not widespread,
but anyways, it cannot hurt, if isn't too much
work to do.
* include/hbsetup.ch
* include/hbsetup.h
* source/common/hbverdsp.c
* source/vm/arrays.c
- HB_FUNC_CALLCONV - no longer used.
- HARBOUR_OBJ_GENERATION - no longer used.
+ Added profiler setting to build info.
- YACC debug setting removed frmo build info.
* Build info strict compatibility line now says 5.2e/5.3b.
* HB_EXTENSION renamed to "non-portable extension"
- HB_COMP_STRONG_TYPES - no longer used.
- HB_FIX_ACOPY_BUG
Replaced with a HB_C52_STRICT guard, but locally
overridden to always be strict (thus replicating
the bug). This means no change in functionality
for default builds. In any ways this is not a decision
to make by the Harbour users. If anyone had this
locally #defined anyway, pls shout.
; NOTE: It's nice that I'm removing unused stuff, but
my impression is that by time we have added
quite some new such settings burried in the code,
so if you're aware of any such ones, please
add them to hbsetup.h (or let's discuss which
ones to add).
* harbour/source/vm/extrap.c
! disabled SetUnhandledExceptionFilter() for WinCE builds
* harbour/contrib/hbole/ole2.c
* cleaned compilation in different env C/C++/UNICODE/compilers
* harbour/contrib/hbw32/w32_ole.c
* harbour/contrib/hbole/ole2.c
* harbour/contrib/gtwvg/gtwvg.h
! do not use HB_ID_REF() for _WIN64 - I would like to ask someone
with Win64 to verify current Harbour build status?
* harbour/include/hbvm.h
* harbour/source/vm/hvm.c
* harbour/source/vm/extrap.c
* moved code to set exception handler from hvm.c to extrap.c
+ added void hb_vmSetExceptionHandler( void ) to set exception
filter
! fixed problem with C++ builds caused by missing extern "C"
declaration for exception handlers in extrap.c
* harbour/source/vm/estack.c
* declare hb_stack as static variable when HB_STACK_MACROS is
disabled to be sure that non extern code will access hb_stack
It's very important to eliminate such code before we add MT
support.
* harbour/source/vm/hvm.c
* changed hb_vmFrame() to work in the same way as hb_vmVFrame()
* harbour/source/rtl/hbgtcore.c
! fixed wrong clear column in right horizontal scrolling
* harbour/source/rtl/memoedit.prg
* use hb_inkeySetLast( n ) instead of KEYBOARD Chr( n ) ; InKey()
* common.mak
* source/vm/Makefile
* source/vm/mainwin.c
* source/vm/estack.c
+ source/vm/extrap.c
* source/vm/hvm.c
* Rearranged/cleaned up exception handlers.
* Renamed OS/2 one to comply with namespace rules.
* Moved from estack.c/mainwin.c to extrap.c and hvm.c.
* win32 ex.handler now enabled by default at HVM startup.
* win32 ex.handler now writes exception info into hb_ex.log.
* win32 ex.handler now pops up a MessageBox() by default.
We should consider removing this but currently the default
Windows handler kicks in anyway, which is also a GUI dialog.
; TODO: A common way to log these errors across all platforms.
; NOTE: HB_INCLUDE_WINEXCHANDLER is not used by Harbour anymore.
; NOTE: Please test OS/2
* include/hbapi.h
* source/vm/hvm.c
* source/vm/cmdarg.c
+ Added support for internal switch format:
--hb:<internal switch>
//hb:<internal switch>
Both are equivalent to original CA-Cl*pper:
//<internal switch>
* bin/bld.bat
+ MSVC now sets the lib dir globally, so lib names don't
need to contain the path anymore.
* source/vm/fm.c
* Minor cleanup.
- contrib/hbgd/tests/bldtest.sh
+ contrib/hbgd/tests/bld.sh
* Update, cleanup, SVN header.
* include/hbapi.h
* source/vm/extend.c
+ Added hb_retc_null() which is equivalent to
hb_retc( NULL ) and will return an empty string.
I opted for this because hb_retc( NULL ) usage is not
compatible with CA-Cl*pper _retc(), so it might create
problems when writing C code intended for both Clipper
and Harbour.
* contrib/hbclipsm/stack.c
* contrib/hbclipsm/environ.c
* contrib/hbclipsm/status.c
* contrib/hbclipsm/gauge.c
% Optimizations.
; TOFIX: GAUGE*() still leaks and doesn't seem to function.
* contrib/rddads/adsmgmnt.c
% Optimizations (using hb_arraySet*()).
! Fixed typo in ADSMGGETOPENTABLES2().
* tests/db_brows.prg
! Removed note of hbmisc requirement.
* tests/Makefile
- tests/twirl.prg
+ contrib/hbmisc/tests/twirl.prg
! Test moved to local test dir.
* source/vm/cmdarg.c
! hb_cmdargIsInternal(): Removed '--' as internal option marker,
since it will disallow any application code to accept
such options. We will now stick with '//' prefix for
Clipper compatible internal options.
* contrib/hbzlib/tests/myzip.prg
* contrib/hbzlib/tests/myunzip.prg
* contrib/hbzlib/hbmzip.c
+ Added support for password on Harbour API level.
; NOTE: This password is not at the moment compatible
with .zip passwords added by standard .zip
utilities.
* harbour/source/rtl/tbrowse.prg
! fixed positioning when cursor is moved by :rowpos assignment and
vertical move methods used together
* harbour/source/vm/estack.c
* updated hb_stackDispCall(), hb_UnhandledExceptionFilter(),
OS2TermHandler() to show functions where codeblock where
defined instead of EVAL() just like in call stack presented
by cancel operation
* updated hb_UnhandledExceptionFilter() to work in unicode mode
* harbour/source/vm/hvm.c
! fixed 1-st procedure presented in call stack during cancel operation
to use the same conditions as for all others
* contrib/rddads/make_b32.bat
* contrib/rddads/make_vc.bat
* contrib/rddads/ads.ch
* contrib/rddads/rddads.h
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsmgmnt.c
+ Added ACE version autodetection.
You can override with: -DADS_LIB_VERSION=700 (and similar)
(ADS_REQUIRE_VERSION still accepted for compatibility)
! Fixed a few lib version related problems.
! hMgmtHandle global renamed to ads_g_hMgmtHandle.
* Formatting.
* contrib/rddads/rddads.h
+ QUESTION: added about ADS_MAX_KEY_LENGTH redefinition.
Is it needed?
* source/compiler/hbmain.c
* Changed output device (hb_compOutStd() -> hb_compOutErr())
for following texts:
"Compiling..."
"No code generated"
"Lines x, Functions/Procedures x"
This is to replicate CA-Cl*pper behaviour a bit more.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
* source/rtl/maxrow.c
+ source/rtl/scrrow.c
* contrib/xhb/hbcompat.ch
+ Added hb_ScrMaxRow(), hb_ScrMaxCol()
These will return the screen dimensions regardless
of the size of an active window (when using CT
windows for example). Functionality is the same
as MaxRow(.T.) and MaxCol(.T.) previously.
! MaxRow()/MaxCol() extended parameters removed.
+ Added MaxRow(.T.)/MaxCol(.T.) conversions for
xhb lib (hbcompat.ch) in both directions.
; XBase++ doesn't have any extended parameters
for Max*() function. Flagship has two of them,
both of them doing something different. CAVO doesn't
have these functions at all.
* contrib/xhb/hbcompat.ch
! GTI_* macros updated to HB_GTI_*.
* source/vm/memvclip.c
% Minor opt in __QQPUB().
* source/vm/extend.c
* 0 -> NULL
* source/vm/estack.c
- QUESTION removed.
* source/lang/msgbgmik.c
* source/rtl/console.c
* source/rtl/philes.c
* source/rtl/adir.prg
* source/rtl/getsys53.prg
* source/rtl/getsys.prg
* source/rtl/tget.prg
* source/rtl/ttopbar.prg
* source/rtl/pushbtn.prg
* source/rtl/mod.c
* source/rtl/memofile.c
* source/rtl/radiobtn.prg
* source/rtl/filesys.c
* source/rtl/tbrowse.prg
* source/vm/estack.c
* source/vm/itemapi.c
* source/vm/hvm.c
* source/vm/cmdarg.c
* source/vm/fm.c
* source/vm/eval.c
* source/common/hbver.c
* source/common/expropt2.c
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_str.prg
! Comment fixes and minor formatting.
* harbour/bin/hb-func.sh
! do not add .exe suffix if user added it explicitly in W32/DOS builds
* harbour/source/vm/dynsym.c
* added internal error when size of dynamic table exceed maximal size
% small optimization in hb_dynsymFind() function
* harbour/source/pp/ppcore.c
* added support for generating #line directives in strictly Clipper
compatible way even if they are redundant. It can be enabled
by HB_PP_STRICT_LINEINFO_TOKEN compiler time macro, f.e. using
environment variables:
set C_USR=-DHB_PP_STRICT_LINEINFO_TOKEN %C_USR%
and making clean build.
* common.mak
* source/rdd/Makefile
* source/rdd/dbstrux.prg
* source/rdd/rddord.prg
+ source/rdd/rddordu.prg
+ source/rdd/dbstruxu.prg
+ Moved some UNDOC functions to separate files.
* Removed STRICT guard from _dtxCondSet().
* include/hbextern.ch
! Added missing _dtxCondSet().
* source/rtl/colorind.c
* source/rtl/direct.c
* Minor formatting.
* source/vm/asort.c
! Changed one direct item access to item API call.
* contrib/rddads/ads.ch
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
! Added support for ADS9 VFP file type and fields.
; Borrowed from xhb / Luiz Rafael Culik.
(changed to compile using original - older - ADS headers)
; Please review & test.
* source/vm/pcount.c
% Minor opt.
* contrib/hbtip/sendmail.prg
! SF bugtracker#1934698 fix applied. Thanks Chen.
- contrib/hbapollo/tests/bld.bat
* contrib/hbapollo/tests/bld_b32.bat
% Using central bld.bat instead of modified local copy.
+ contrib/gtwvg/tests/bld_b32.bat
+ Added BCC32 build batch file for GTWVG tests.
; NOTE: demowvg still doesn't seem to work.