- ChangeLog
+ ChangeLog.txt
* bin/commit.hb
* doc/howtorel.txt
* doc/howtorep.txt
* package/harbour.spec
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* package/winuni/RELNOTES.txt
* README.txt
* src/pp/hbpp.c
* tests/fixcase.hb
* website/changelog.html
* website/index.html
* website/news.html
* website/news1.html
* website/snapshot.html
* renamed ChangeLog to ChangeLog.txt
; TODO: Please update SVN URL references in google groups web headers:
.../ChangeLog -> .../ChangeLog.txt
.../README -> .../README.txt
; NOTE: Also update your local scripts to use ChangeLog.txt instead
of ChangeLog. Or use bin/hbcommit.hb script, which supports
both.
- w64-make.exe
* README.txt
% deleted. it was my private build and it didn't offer
much over win-make.exe.
+ contrib/hbct/tests/test.prg
* contrib/hbct/doc/en/*.txt
+ replaced $TESTS$ in docs with regression test script
; NOTE: there are some failures
* src/rtl/Makefile
* include/harbour.hbx
+ src/rtl/hbtestc.c
+ added an internal function (which I didn't used yet after some
experimentations)
* src/rtl/hbtest.prg
* minor cleanup
* src/rtl/dbedit.prg
+ also accept function pointers as user functions
(not just codeblocks and macro strings)
* src/rtl/achoice.prg
+ ACHOICE() now supports the Harbour extension similar to
DBEDIT() where codeblocks and function pointers are
also accepted instead of macro strings for the <xSelect>
parameter that controls permission for items.
* src/rtl/browse.prg
* contrib/hbwin/wapi_shellapi.c
* minor
* contrib/hbgt/*.c
* comment cleanup
* src/rtl/menuto.prg
+ avoided one macro usage when dealing with colors
! fixed handling of color specified in __ATPROMPT()
! fixed to not mess up default color in certain cases
* changed misleading color variable names
* tests/menutest.prg
* modified to test __ATPROMPT() color
* src/rtl/tclass.prg
* src/rtl/tobject.prg
* avoid using "&" in comments
* include/hbwinuni.h
+ new HB_WINAPI_KERNEL32_DLL() macro to get kernel32.dll
regardless of UNICODE or non-UNICODE mode
* contrib/hbwin/wapi_winbase.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
% use HB_WINAPI_KERNEL32_DLL() macro
! fixed a non-UNICODE bug that slipped in previous commit
* src/rtl/direct.c
* made it format well using uncrustify
* src/vm/asort.c
* src/vm/memvars.c
* cleanups
* contrib/xhb/hbcompat.h
+ added compatibility macros from xhb repository
(untested)
* formatting
* contrib/xhb/hbdll.ch
* contrib/xhb/htmlform.ch
* contrib/xhb/ttable.ch
* contrib/hbamf/amfdec.c
* contrib/hbamf/amfenc.c
* contrib/hbamf/hbamf.hbc
* formatting, converted commented code to #if 0/#endif
blocks, removed excessive {} blocks
* contrib/hbnf/aredit.prg
* contrib/hbnf/popadder.prg
* added two TODOs to avoid NextKey()
; NextKey() is also used in these files:
hbct/keysec.prg
hbmysql/tsqlbrw.prg
hbodbc/browodbc.prg
hbodbc/browodbc.prg
xhb/xhbmemo.prg
xhb/xhbtedit.prg
; Przemek, if you see this, would you mind doing it
where it's possible to avoid?
* contrib/hbnf/calendar.prg
* minor cleanups
* contrib/xhb/xhbfunc.c
* src/rtl/philes.c
* deprecated HB_OSPATHSEPARATOR() with HB_LEGACY_LEVEL4 (after
next release). Use HB_PS() instead.
HB_OSPATHSEPARATOR() will continue to live as an xhb compatibility
function after that.
* contrib/xhb/xhbfunc.c
* src/rtl/console.c
* deprecated HB_OSNEWLINE() with HB_LEGACY_LEVEL4 (after
next release). Use HB_EOL() instead.
HB_OSNEWLINE() will continue to live as an xhb compatibility
function after that.
* utils/hbmk2/hbmk2.prg
* minor cleanup to prev
* include/hbwinuni.h
+ added HB_WINAPI_FUNCTION_NAME() macro to form a WinAPI
function name as a string (for dynamic calls)
Thanks to Mindaugas for the idea.
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/win_rpc.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* src/rtl/fslink.c
% eliminated few UNICODE build-time branches by using
new HB_WINAPI_FUNCTION_NAME() macro
+ src/codepage/cp_gbk.c
+ src/codepage/gbk.c
* src/codepage/Makefile
* include/hbcpage.hbx
+ added GBK CP.
GBK is an extension of the GB2312 character set for simplified Chinese
characters, used in the People's Republic of China. GBK encoding support
for Simplified Chinese, while fully contained BIG5. Microsoft implemented
GBK in Windows 95 and Windows NT 3.51 as Code Page 936.
Thanks to Wang Dongming for the two new source files.
Please review/test it.
* src/rtl/langcomp.prg
! use GBK CP instead of BIG5 for legacy CP "ZHGB"
* extras/httpsrv/session.prg
* cleanup
* src/rdd/hsx/hsx.c
* src/rtl/gtxwc/gtxwc.c
* src/vm/classes.c
* src/vm/dynsym.c
* src/vm/garbage.c
* modified macros to act like functions, whether
mapped to noop or noop code. These code parts
will now not confuse code formatters.
The generated code is indentical (tested under
mingw, and to some extent on msvc and bcc)
* include/hbtrace.h
* minor
* src/common/hbver.c
* src/compiler/hbpcode.c
* src/pp/hbpp.c
* src/pp/ppcore.c
* src/rdd/dbf1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/wafunc.c
* src/rtl/gttrm/gttrm.c
* src/rtl/mlcfunc.c
* src/vm/hvm.c
* src/vm/itemapi.c
* cleaned empty loops to be:
for( ... )
;
or
while( ... )
;
Please use this from now on. It's also what uncrsustify will
do and it's well greppable and readble.
(I didn't change yet where ';' is in the same line as while()
and for(), and will let uncrustify do this in a future pass)
* contrib/hbmisc/spd.c
* minor
* utils/hbmk2/hbmk2.prg
+ implemented theoretically correct solution to extract
linker output _while_ displaying it. It means that
missing function hinting feature doesn't require
a second pass to the linker anymore.
; Please test on all platforms.
; For those two people interested, it will create output like this:
---
hbmk2: Hint: Add option 'hbct.hbc' for missing function(s): CharMirr()
hbmk2: Hint: Add option 'hbusb.hbc' for missing function(s): libusb_exit()
hbmk2: Hint: Add option 'hbsms.hbc' for missing function(s): smsctx_PIN()
hbmk2: Error: Referenced, missing, but unknown function(s): NOTANYWHERE()
---
* extras/httpsrv/uhttpd.prg
! fixed some code for unicode
% fixed to not call FCLOSE() on a HB_PROCESSOPEN() handle
* use F_ERROR instead of -1 literal
* commented code converted to #if 0/#endif guarded one
* src/rtl/hbprocfn.c
* formatting
* tests/fixcase.hb
* new extension exceptions
* harbour/src/vm/cmdarg.c
! fixed buffer overflow
! added protection against GPF if hb_cmdargBaseProgName() is called
and there are no parameters initialized
* use macros to allocate system memory in MS-Windows builds
* harbour/src/vm/fm.c
* changed s_fInitedFM initialization when memory statistic is enabled
to avoid infinite recursion and GPF is some initialization function
tries to allocate memory
* harbour/include/hbdefs.h
* harbour/src/common/hbwin.c
+ added new C function hb_wctomblen()
* harbour/include/hbapi.h
* harbour/src/vm/cmdarg.c
+ added new C functions hb_winmainArgVBuild() and hb_winmainArgVFree()
These functions are available only in MS-Windows builds and they
use GetCommandLine() and GetModuleFileName() to build argument list.
* updated to operate on MS-Windows unicode buffers if possible.
* harbour/src/vm/hvm.c
* initialize MS-Windows application startup parameters in hb_vmInit()
* free MS-Windows application startup parameters in hb_vmQuit()
* harbour/include/hbwmain.c
* do not build argument list HB_VM_STARTUP mode - leave this job to
new functions
* harbour/src/rtl/teditor.prg
* harbour/src/rtl/memoedit.prg
% do eliminated NextKey() calls to avoid unnecessary key polling
It also fixes key dropping in small typeahead buffers.
* harbour/src/rtl/dbedit.prg
% do eliminated NextKey() calls to avoid unnecessary key polling
* harbour/src/rtl/getsys.prg
* harbour/src/rtl/tgetlist.prg
! fixed active loops (100% CPU usage)
* harbour/src/rtl/gtsln/gtsln.h
! define REAL_UNIX_SYSTEM in AIX builds - thanks to Luiz Rafael Culik
for the information
* harbour/src/rtl/achoice.prg
% replaced Empty( NextKey() ) with NextKey() == 0
* harbour/src/rtl/gtsln/gtsln.h
! define REAL_UNIX_SYSTEM in AIX builds - thanks to Luiz Rafael Culik
for the information
* harbour/src/rtl/hbinet.c
* uese hb_parni()/hb_retni() instead of hb_parnl()/hb_retnl() for int
values
* harbour/src/rtl/hbgtcore.c
! comment cleanup
* harbour/contrib/hbwin/win_svc.c
! eliminated HB_TCHAR_* macros
* bin/commit.hb
! fixed for *nix systems
* contrib/hbodbc/tests/testodbc.prg
+ added test for double opening
* ChangeLog
% moved copyright notice to end of file
+ added change markup quick reference to header
* doc/howtorep.txt
* synced wording with above
* extras/hbxlsxml/tests/example.prg
* do not use WITH OBJECT in its current form
* src/rtl/gtsln/Makefile
+ added option needed for AIX. Reported by Luiz.
* utils/hbmk2/hbmk2.prg
* minor change in wording in help
+ added help note about incompatibility of Clipper binary objects/libs
* tests/fixcase.hb
% one exception removed
+ some others documented
* contrib/gtwvg/tests/_activex.prg
* contrib/gtwvg/tests/_tbrowse.prg
* contrib/gtwvg/tests/_utils.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/gtwvg/tests/demowvg1.prg
* contrib/xhb/trpccli.prg
* utils/hbtest/rt_math.prg
* rerun after removing one exception permanently,
another temporarily.
* 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/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
* 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.
* 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.
* 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_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.
* harbour/src/rtl/rat.c
! fixed HB_RAT() to respect end range in the same way as in HB_AT()
; Warnings: 1) It's not backward compatible and may change the behavior
of some code which expects that ranges are not strictly
respected. If someone uses HB_RAT() with 4-th parameter
then he should check if above modification interacts with
his code. The modification is significant only if 1-st
parameter is longer then 1 character.
2) xHarbour supports in its RAT() function 3-rd and 4-th
parameters but their meaning is reverted then in HB_RAT()
and they do not have any range checking so they are used
in raw form accessing any memory addresses (even out of
process memory area generating GPF in such case).
It means that also above fix is not respected and may
introduce the same incompatibilities in code which tires
to use sth like HB_RAT() with reverted 3-rd and 4-th
parameters to emulate xHarbour RAT().
* harbour/src/rtl/rat.c
% use 4-th parameter of HB_RAT() function instead of creating temporary
substring from 2-nd parameter.
* harbour/contrib/hbtinymt/3rd/tinymt/tinymt.hbx
* regenerated (removed Id header)
* harbour/src/rtl/rat.c
! fixed HB_RAT() used with 3-rd and/or 4-th parameter and multibyte CPs
* harbour/contrib/hbct/disk.c
+ enabled NUMDISKL() in OpenWatcom DOS builds
% extract string length in the same STR API call instead of using
additional hb_parclen()
* added real protection for buffer overflow in windows version of
TRUENAME(). I do not know if it's really necessary but without
the code which allocates one byte bigger buffer does not make
any sense.
; TOFIX: this code still uses HB_TCHAR_*() macros