+ tests/fixcase.hb
+ added automatic case fixer. It's ugly code and
has some hard-coded exception, some of them
arbitrary, some due to certain strings causing
mis-matches (f.e. JS code embedded in string,
or words like "token(s)" and "file(s)")
; TODO: interestingly hb_DirScan() won't return
extensionless files, when using hb_osFileMask()
(as opposed to Directory()). This was a good
side-effect in this particular case though.
+ contrib/xhb/xhbctbit.c
* contrib/xhb/xhb.hbp
* contrib/xhb/xhb.hbx
+ implemented NUM*X() function from xhb, which
are there present in CT lib as extensions. In
Harbour they are in xhb lib.
Adapted types, missing functions, some cleanups
and uncrustify.
* src/rtl/gtwvt/gtwvt.c
* src/rtl/gtwvt/gtwvt.h
! made gfx drawing functions work again by disabling
compositing on the first drawing call
* contrib/hbodbc/hbodbc.hbp
+ enabled automatic MM after Przemek's changes.
For me however, both odbcdemo.prg and testodbc.prg
GPFs on exit. Maybe it's related to SQLDisconnect()
calls?
* contrib/hbodbc/odbc.c
! SQLALLOCENV() after my prev change to use ODBC 3 APIs
to call some weird API to avoid an error.
* contrib/hbodbc/tests/testodbc.prg
* contrib/hbodbc/todbc.prg
* disabled manual memory management hacks on
prg level
* contrib/rddsql/hbrddsql.h
* contrib/sddfb/sddfb.c
! uncrustified
* doc/howtorep.txt
+ added reference to commit.hb
* contrib/gtwvg/class.prg
* contrib/gtwvg/gtwvg.hbx
* contrib/gtwvg/menubar.prg
* contrib/gtwvg/paint.prg
* contrib/gtwvg/syswnd.prg
! fixed few casing and where it was used
* extras/gtwvw/gtwvw.hbx
* extras/gtwvw/wvt2wvw.ch
! fixed few casing and where it was used
* contrib/hbgd/gd.ch
* minor
* harbour/contrib/hbodbc/odbc.c
* unlock sub-handle pointer items - it can be safely done
because these items are marked as used inside parent item
GC mark function.
; This code using pointer items is a little bit more complicated
then it has to be.
In current code pointer items can keep references only to other
pointer items in the form which cannot create cyclic reference.
They also do not have any references to codeblocks, arrays,
objects, hashes or any other complex items set by user which
may create indirectly cyclic reference. In such case it's
possible to eliminate all GC mark functions and use directly
items allocated by hb_itemNew() without unlocking them with
hb_gcUnlock(). By default all items allocated by hb_itemNew()
are locked so GC automatically mark them and their GC memory
blocks as used.
It does not cause any speed or memory overhead so I left it
as example for more complicated cases and as base for some
potential extensions.
* harbour/include/hbapi.h
* harbour/src/vm/cmdarg.c
! fixed to compile without UNICODE macro
+ added new C functions: hb_cmdargBaseProgName(), hb_cmdargPushArgs()
* marked places which needs TCHAR conversions in MS-Windows builds
* harbour/src/vm/hvm.c
* use hb_cmdargPushArgs()
* harbour/src/rtl/hbproces.c
! fixed to compile without UNICODE macro
* harbour/src/rtl/gtxwc/gtxwc.c
* modified code to set window title to always operate on UTF8 values
* use hb_cmdargBaseProgName()
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwgud.c
* harbour/contrib/gtwvg/gtwvgd.c
* harbour/contrib/gtalleg/gtalleg.c
* harbour/extras/gtwvw/gtwvwd.c
* use hb_cmdargBaseProgName()
* harbour/contrib/hbodbc/odbc.c
! keep references to parent handles in sub-handles pointer structures
; please make real life tests if it works correctly
* doc/clipper.txt
* doc/cmpopt.txt
* doc/codebloc.txt
* doc/gtapi.txt
* doc/hdr_tpl.txt
* doc/inet.txt
* doc/locks.txt
* doc/pp.txt
* doc/pragma.txt
* doc/todo.txt
* doc/tracing.txt
* doc/vm.txt
* doc/xhb-diff.txt
* function name formatting
* various minor cleanups and updates/fixes along the way
* contrib/hbct/doc/en/*.txt
* contrib/hbgd/doc/en/hbgd.txt
* contrib/hbgt/doc/en/hbgt.txt
* contrib/hbmisc/doc/en/*.txt
* contrib/hbnf/doc/en/*.txt
* contrib/hbnf/tests/*.prg
* contrib/hbziparc/doc/en/hbziparc.txt
* contrib/rddads/doc/en/*.txt
* doc/en/*.txt
* extras/gtwvw/docs/*.txt
* synced casing of .prg level function names
with .hbx files, even if those are in docs,
comments or strings.
* doc/en/string.txt
+ documentaion for HB_AT(), HB_RAT() added/corrected
* fixed examples for them
- delete allusion for HB_OEMTOANSI(), HB_ANSITOOEM() due to they will
disappear after next stable release
* contrib/hbformat/hbfmtcls.prg
+ added new TODO to add space between '!'
operator and single (= not parenthesised) arguments.
* contrib/hbfimage/fi_wrp.c
* minor
* contrib/hbodbc/odbc.c
! fixed to build under ODBC 1.x, 2.x
! fixed to use ODBC 3.x functions instead of
deprecated functions.
* minor cleanups to prev
* contrib/sddodbc/sddodbc.c
! fixed to build under ODBC 1.x, 2.x
* README
+ added note that hbrun scripts are started
in UTF-8 mode.
+ added command lines for formatting C and PRG sources
* minor cleanups
* contrib/hbnf/doc/en/cint86.txt
* contrib/hbnf/ftmenuto.ch
* contrib/xhb/html.ch
* contrib/xhb/htmlform.ch
* extras/gtwvw/docs/funclist.txt
* extras/gtwvw/docs/gtwvw.txt
* extras/gtwvw/docs/whatsnew.txt
* extras/gtwvw/gtwvwd.c
* extras/gtwvw/tests/ebtest7.prg
* extras/gtwvw/tests/prog0.prg
* extras/gtwvw/tests/prog1.prg
* extras/gtwvw/tests/prog2.prg
* extras/gtwvw/tests/wvwtest9.prg
* src/rtl/achoice.prg
* src/vm/thread.c
* website/samples/testcgi.prg.html
* website/samples/testhtml.prg.html
* website/third-party.html
* lowercased (or deleted) references to
source filenames.
* COPYING
* debian/copyright
* changed explicit reference to certain CC licensed
files to generic wording.
* TODO
* GTWVG -> GTWVT
- NEWS
+ doc/oldnews.txt
- TODO
+ doc/todo.txt
* renamed these files. TODO is essentially static
since 10 years, not worth to keep in root and in
distro root. NEWS was not updated since 2008.
* doc/Makefile
+ updated with above files. (so they will still be
distributed, just not in root)
* doc/howtorel.txt
* updated reference to NEWS doc
* config/postinst.hb
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* deleted references to TODO and NEWS
- INSTALL
+ README
* config/global.mk
* config/postinst.hb
* contrib/hbmysql/readme.txt
* doc/gmake.txt
* NEWS
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* package/winuni/RELNOTES
* tests/hbdoctst.prg
* website/menu/harbour-menu.js
* website/news.html
* doc/howtorep.txt
* 'INSTALL' doc renamed to 'README'.
A little disruption, but hopefully it will be
more intuitive place to look for. The doc by
now contains lots more than installation procedures.
This "new" name is also recognized and displayed
by several source management web UIs automatically.
; To mailing list admins: Please update the
links in the web group headers. Thank you!
* utils/hbmk2/hbmk2.prg
+ lib hinting feature will now re-run the failed
linking command to catch its output and analyze it.
It will only work if errors are not ignore and
quite mode is not enabled.
+ reenabled lib hinting feature.
+ show function names with their .hbx casing (instead
of full uppercase)
! fixed casing for some internal functions, not present
in .hbx.
* src/rtl/hbdef.c
! HB_DEFAULT(): consider date and timestamp types
interchangable.
% HB_DEFAULT(): applied optimization from Przemek,
so now a hb_pcount() call is saved.
* ChangeLog
* another note missed, this time from 2012-11-13 19:00 UTC+0100
(FI_SETOUTPUTMESSAGE() gained MT support.)
* config/postinst.hb
* utils/hbmk2/hbmk2.prg
* use HB_DEFAULT() instead of 'IF ! HB_IS*()'
* contrib/hbgd/gdchart.prg
+ use HB_DEFAULT() instead of __DEFAULTNIL() after
verifying that in no case they are expecting multiple
types.
* contrib/hbodbc/hbodbc.hbp
* contrib/hbodbc/odbc.c
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/testodbc.prg
+ implemented typed pointers. Automatic memory
management is not enabled yet, as it suffers
from the same problem in its current form as
f.e. HBQT. I hope someone can solve this,
maybe it could be a good and simple example
for how to solve such problems in general.
Memory management code is guarded with
_HBODBC_AUTO_MM_
both on .prg and .c level. Also in test code.
% cleanups to TODBC() class to not use a temp
variable to pass object vars by reference
* other minor .prg level cleanups
* src/rtl/hbdef.c
! fixed HB_DEFAULT() to use high-level Harbour types
for type comparison, so f.e. memo and string types
are considered the same, just like float, integer, long
subtypes of numerics. Many thanks to
Francesco (Saverio Giudice) for the report.
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/tests/fitest.prg
! FI_SETOUTPUTMESSAGE(): fixed/implemented error callback.
In previous version it was not working. Now the function
accepts both function pointer and codeblock.
* adapted/fixed error callback setting in test
+ added test for error callback
* contrib/xhb/hbcompat.ch
* formatting
- contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/hbfimage.hbp
* contrib/hbfimage/tests/fitest.prg
* merged and cleaned Windows specific functions
with main wrapper source
+ implemented GC collected pointers for FIBITMAP
+ implemented typed pointers for FIMULTIBITMAP
* FI_UNLOAD() is now a dummy and deprecated with HB_LEGACY_LEVEL4
! FI_UNLOCKPAGE() fixed: it was checking for wrong parameter type
+ enabled few tests after adapting them to API changes
* FI_GETBACKGROUNDCOLOR() changed to work like the wrapped function;
it will now return color in 2nd parameter, if passed by ref.
The color is a 4 byte string in the format RGBA. It was a
raw pointer before. It's now in sync with FI_SETBACKGROUNDCOLOR().
INCOMPATIBLE.
* FI_SETBACKGROUNDCOLOR() fixed to check for color parameter
length to avoid GPFs.
* minor code rearrangements
% deleted no longer necessary FI_UNLOAD() calls from test code
; please test/review
* contrib/hbgd/gdwrp.c
* renamed variables, formatting
* tests/rto_get.prg
* tests/rto_tb.prg
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_date.prg
* utils/hbtest/rt_hvm.prg
* utils/hbtest/rt_hvma.prg
* utils/hbtest/rt_math.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_str.prg
* utils/hbtest/rt_trans.prg
* formatting
* contrib/hbwin/win_reg.prg
! fixed WIN_REGGET() for WIN_REG_DWORD_BIG_ENDIAN and
WIN_REG_QWORD* values in unicode mode.
% minor optimization WIN_REG_QWORD part of above
* contrib/hbgd/gdbar.prg
* contrib/hbgd/gdbarcod.prg
! '2005-2005' in copyright header
* extras/gtwvw/gtwvw.hbp
+ reenabled warnings
* extras/gtwvw/hbgtwvw.h
* added hbwinuni.h
* extras/gtwvw/gtwvwd.c
* extras/gtwvw/wvwdraw.c
* extras/gtwvw/wvwfuncs.c
* uncrustified (multiple run seems to make additional changes,
just like sometimes in hbformat)
* contrib/hbgd/gdbar.prg
* contrib/hbgd/gdbarcod.prg
* contrib/hbgd/hbgd.hbx
* contrib/hbgd/tests/barms.prg
* contrib/hbgd/tests/bartest.prg
* Renamed classes that have confusing and misleading
names out of the gd namespace: (f.e. TBarCode class
was in gdbar.prg, and TCode in gdbarcod.prg)
These were very buggy until recently, so I doubt
anybody uses them, anyways it's an INCOMPATIBLE
change:
class TBarCode -> GDBar
class TCode -> GDBarCode
* contrib/hbgd/gdwrp.c
* cleaned conversion between Harbour logical to/from int flags
* deleted repetitive comments
! fixed to check for proper GC collected pointer type, not
just any pointer. This may avoid some GPFs and memory
corruption and report them as RTE
! GDIMAGESTRINGFTEX() to allow float numbers for ptsize parameter
! GDIMAGEFILLEDPOLYGON(), GDIMAGEOPENPOLYGON(), GDIMAGEPOLYGON()
fixed to not leave uninitialized trash in point coordinates
if wrongly formed parameters is passed
! GDIMAGEFILLEDPOLYGON(): fixed buffer overrun if number of
points exceeded 50
; further 700 LOC and 12KB source size reduction
* ChangeLog
* added LOC reduction to prev (-2800 lines)
* contrib/hbfimage/fi_winfu.c
* missed to include it in one of the recent entries:
FI_LOADFROMMEM() has been renamed to FI_LOADFROMMEMORY()
to be in sync with original FreeImage function name.
Update your apps accordingly. INCOMPATIBLE.
* contrib/hbfimage/tests/fitest.prg
! synced with above lib change
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* contrib/hbgd/gd.prg
* deleted excessive {} and () operators
* eliminated split lines where only one char was present in a line
% replaced RTE generator calls to more compact ones
% dropped pcount() checks where HB_IS*() checks were
present anyway
* merged separate var declarations and initializations in
wrapper code
% eliminated local variables where it didn't make code
less obvious
% adujsted a few var scopes
* deleted repetitive comments
% protected hb_parcx() calls changed to hb_parc()
! GDIMAGESTRING(), GDIMAGESTRINGUP(), GDIMAGECHAR(), GDIMAGECHARUP()
fixed for 1 character long strings. Code tried to retrieve a character
by using hb_parni() which (purposefully) isn't supported in Harbour.
The current effect is the same, with negligibly performance
loss for one long strings.
% GDIMAGECHAR(), GDIMAGECHARUP() now use C level forwarder.
% using hb_parnintdef()
! fixed typo in RTE message
% using hb_default() in gd.prg
% number of LOC, source size (-24KB) and generated binary
code greatly reduced by the above.
* src/rtl/tclass.prg
* src/rtl/tobject.prg
* commented code changed to #if 0 blocks
! some commented code fixed
* some obsolete comments deleted
* utils/hbmk2/hbmk2.prg
+ added following options to .hbc files:
keywords=
licenses=
repository=
all only informational, they do nothing ATM.