* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
! check if AE_VALUE_OVERFLOW macro exists before use
! fixed memory leak
% use char* instead of UNSIGNED8* to eliminate unnecessary casting
* use HB_IT_EVALITEM instead of HB_IT_BLOCK
* formatting and minor cleanups
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* modifications for longer index keys when bigger pages are used
(work in progress)
* src/rdd/wafunc.c
% use dynamic symbol pointer to find field index
* src/rdd/workarea.c
* set default maximum field size to HB_SYMBOL_NAME_LEN characters
(by default in Harbour builds HB_SYMBOL_NAME_LEN is 63)
Some RDDs may set longer names but it will be respected only by
FieldName() function and in all other cases only HB_SYMBOL_NAME_LEN
characters is significant for Harbour so such decision should be
well thought by RDD authors because it may confuse users.
Warning: all 3-rd party RDDs which need to force shorter names
should update uiMaxFieldNameLength in their NEW() method
just after SUPER_NEW() call, i.e. like in core DBF RDD.
! respect uiMaxFieldNameLength when new fields are added
* src/rdd/dbf1.c
* set maximum field size to 10 characters
* contrib/rddsql/sqlbase.c
- removed code used to set uiMaxFieldNameLength to HB_SYMBOL_NAME_LEN.
Now it's default field length value for each RDD unless it does not
change it.
* contrib/rddads/ads1.c
* minor modification in adsFieldName()
* contrib/hbwin/wapi_winbase.c
+ added support for FORMAT_MESSAGE_ALLOCATE_BUFFER and 6-th <nSize>
parameter to wapi_FormatMessage() function. The 6-th <nSize> parameter
has higher priority then size of string passed in the 5-th parameter.
! fixed potential memory leak
* contrib/rddads/ads1.c
! extended and fixed CANDEFAULT error processing for data width error
* contrib/rddads/adsx.c
! fixed typo in index creation code related to subindexing
* contrib/rddads/adsx.c
* implemented intermediate index creation in case ADS can process index
FOR or WHILE condition.
Ex., if requested index has WHILE condition supported by server,
but index key expression is not supported (or codeblock is used),
server side index is created using WHILE condition. This intermediate
index later is used to create final index.
This logic increases speed dramatically if WHILE condition was used
to filter a few records from a large database using subindex.
* src/rtl/itemseri.c
! fixed casting for C++ builds
* contrib/rddads/ads1.c
+ use AdsIsNull() function instead of AdsIsEmpty() in DBS_ISNULL
action for ACE library 9.0 or newer.
* contrib/rddads/adsfunc.c
* contrib/rddads/rddads.hbx
+ added new PRG function: AdsIsNull()
For ACE libraries < 9.0 it's redirected to AdsIsEmpty()
* src/vm/hashes.c
% changed sorting algorithm for hash arrays which keeps item order.
% do not resort hash arrays when KEEPORDER flag is cleared but use
existing internal index to create new order.
* changed the behavior of hb_hSort() function. Now for hash arrays
which keep item order it changes internal item pair position sorting
them. The sort order depends on binary and case sensitivity hash
array flags.
* src/vm/hvm.c
! for literal hash array with repeated keys store the last item
with the given key instead of the first one. It restores
previous behavior.
* contrib/rddads/rddads.hbx
+ added AdsSetIndexDirection()
* contrib/rddads/adsfunc.c
! fixed formatting of AdsSetIndexDirection()
2013-05-16 17:00 UTC+0200 Jfl mafact (jfl/at/mafact.com)
* contrib/rddads/adsfunc.c
! Adding 2nd param to function ADSCOPYTABLECONTENT to allow filtering
like in ADSCOPYTABLE
* harbour/contrib/rddads/ads1.c
+ run error on invalid SQL query, ex.,
DBUSEAREA(,, "SELECT * FOM syntax_error")
* changed ADS error description to be much more informative
* harbour/contrib/rddads/adsfunc.c
* ADSREGCALLBACK() implemented using AdsRegisterCallbackFunction() instead
of obsolete AdsRegisterProgressCallback(). This enables draw progress
bar for both indexing and SQL query processing.
; implementation unchanged for old ADS versions (<= 6.1)
* harbour/contrib/rddads/adsx.c
! fixed adsSeek() if seek string length is less than index key length
* harbour/src/compiler/hbopt.c
! improved BEGIN/END SEQUENCE support in code trace optimizer. Problem
of false positive warning 'Variable is assigned but not used' is solved
in cases like:
FUNC TEST()
LOCAL n := 1
BEGIN SEQUENCE
IF n == 1
n := 2
BREAK
ENDIF
n := 3
END SEQUENCE
RETURN n
; TODO: test for more complicated cases like nested BEGIN/END SEQUENCE
* harbour/src/rdd/dbf1.c
* added :GetValue() GPF protection if area is "half opened" (ex.,
enumerating field values in error handler on area open failure).
More general solution for "half opened" workareas is welcome
* bin/check.hb
! made it work regardless of cwd
+ added --fixup option to fix/process files
+ extended detection of SVN IDs based on 'ident' option
in .gitattributes. Now also warn if missing.
+ added detection of C++ style comments in C files
+ ported Harbour function name casing fixup code, so
it can now be done automatically before commit
* bin/commit.hb
* minor change in option name
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgwing.c
! deleted large amount of MSDN documentation in C++ comments
! fixed C++ comments
* src/pp/ppcore.c
* avoid false C++ comment detection in deffed out
non-code section
* src/rtl/gttrm/gttrm.c
* contrib/rddads/adsx.c
* contrib/xhb/filestat.c
! fixed C++ comment
* contrib/hbrun/hbrun.hbp
* utils/hbmk2/hbmk2.hbp
+ better comment
* extras/gtwvw/hbgtwvw.h
* extras/gtwvw/*.c
! fixed C++ comments
* .gitignore
* deleted .def file as they are now covered by bin/*/ and
otherwise .def files do exist in source repo
* contrib/rddads/doc/en/adsfuncs.txt
* doc/en/string.txt
* cleanups
* utils/hbmk2/hbmk2.prg
* cleaned function skeletons in help
* extras/hbdoc/hbdoc.prg
+ include unknown COMPLIANCE value as in is doc instead of an error msg
* src/compiler/compi18n.c
* uncrustified, tweak formatting manually
% optimized variable scopes
* src/rtl/hbi18n2.prg
* minor formatting
* (all files)
* stripped svn header
* minor cleanups
; use following command to find out the history of files:
git log
git log --follow
git blame
git annotate