* include/hbapifs.h
% deleted type HB_FNAME_PTR (change it to PHB_FNAME)
INCOMPATIBLE
* include/hbapi.h
% deleted internal type HB_EXTREF_PTR (synonym of PHB_EXTREF)
+ 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
* include/hbtrace.h
! fixed empty HB_TRACE() definitions to be 'do {} while( 0 )'
as suggested by Przemek.
* contrib/hbsqlit3/core.c
* contrib/hbwin/axcore.c
* contrib/hbzebra/datamtrx.c
* contrib/hbzebra/qrcode.c
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* deleted {} block where HB_TRACE() was the only
call made from the the block. It's now unnecessary.
* contrib/hbzebra/codabar.c
* contrib/hbzebra/code11.c
* contrib/hbzebra/code128.c
* contrib/hbzebra/code39.c
* contrib/hbzebra/code93.c
* contrib/hbzebra/core.c
* contrib/hbzebra/datamtrx.c
* contrib/hbzebra/eanupc.c
* contrib/hbzebra/itf.c
* contrib/hbzebra/msi.c
* contrib/hbzebra/pdf417.c
* contrib/hbzebra/qrcode.c
* deleted few more unnecessary {} from single statement
blocks
* 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
* ChangeLog
* made decision how to clean empty loop code
(it's bar ';' char, indented in next line)
* include/hbtrace.h
* inactive HB_TRACE() macro will now translate to
empty {} block, so there is no need to manually
do that when used alone in an 'else' branch for example.
Checkme.
* contrib/hbwin/win_svc.c
% deleted {} braces from around HB_TRACE() calls
* utils/hbmk2/hbmk2.prg
! fixed hb_processOpen() results to be displayed at
once to avoid cutting potential UTF-8 (or other multibyte)
output from tools to be cut in the middle of character.
* contrib/hbct/charone.c
* contrib/hbct/charop.c
* contrib/hbct/token1.c
* contrib/hbct/token2.c
* deleted {} ending comments
* contrib/hbmysql/tmysql.prg
* contrib/hbmysql/tsqlbrw.prg
* deleted change tracking comments. 'blame' functionality
and repo history should be enough
* contrib/hbtip/mail.prg
! fixed regression in r18462 where casing of class name
in a string got accidentally converted to natural.
Many thanks to Itamar Lins for the find.
* 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
* contrib/gtwvg/wvgutils.c
! fixed to use HB_OS_WIN_CE macro to detect WinCE, not
some the arbitrary __WINCE__
! fixed functions unsupported on WinCE to return the
same type when as on Windows
* 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
* contrib/hbwin/tests/testsvc.prg
+ added some lines to test parameter passing
* include/hbdefs.h
* deprecated HB_TCHAR_*() macros with HB_LEGACY_LEVEL4
Everyone pls move on to Str API calls and hbwinuni.h
macros.
* include/hbexpra.c
* include/hbexprb.c
* include/hbwmain.c
* applied uncrustify fixes
* contrib/hbtpathy/hbtpathy.hbp
* contrib/hbtpathy/telepath.prg
+ contrib/hbtpathy/tp_idle.prg
! TP_IDLE() moved to a separate source file to
make it possible to override it from user code.
This function is documented as a callback.
* harbour/ChangeLog
! restored ChangeLog entry removed by my script in last commit,
sorry and thanks to Viktor for the info.
! cleaned some c&p typos in my last chglog entry
* 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.
* contrib/hbodbc/hbodbc.hbx
* contrib/hbodbc/odbc.c
- Deleted SQLBINDPARAMETER(). Thus resolving the TOFIX,
and after reading more about this function, it serves
to bind stmt parameter to C memory buffers, where those
bindings remain active for the lifetime of the stmt or
the next call to this function. Such behavior is not so
much useful for high level languages, and it'd be quite
complicated to solve (f.e. by keeping an array or hash
around, attached to the stmt handle) compared to what
it offers. Anyways, if someone feels like giving it a
go, pls do.
* bin/commit.hb
+ support HBCOMMIT_USER envvar to configure commmiter
user / e-mail.
* ChangeLog
! wrong commit e-mail fixed yet again. I start to badly
miss local branches (a la Git!), as I need to keep
juggling with 3-4 local sandboxes to separate different
change sessions.
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
* changed to launch README. It needs a hefty trick
to open such extensionless filename
* README
+ minor to welcome section
- doc/welcome.txt
* doc/Makefile
- deleted obsolete welcome message
+ website/css/shCore.css
+ website/js
+ website/js/shBrushHarbour.js
+ website/js/shCore.js
+ added components for http://alexgorbatchev.com/SyntaxHighlighter/
a JS based syntax highlighter by Alex Gorbatchev
+ website/css/shThemeDefault.css
+ added Harbour theme (it's based on the php one)
* website/menu/harbour-menu.js
! fixed wrongly displayed bitmaps when used from
under a subdir.
* website/samples/array16.prg.html
* website/samples/arreval.prg.html
* website/samples/begin.prg.html
* website/samples/byref.prg.html
* website/samples/codebl.prg.html
* website/samples/codebloc.prg.html
* website/samples/dates3.prg.html
* website/samples/foreach.prg.html
* website/samples/function.cfm.html
* website/samples/hello.prg.html
* website/samples/initexit.prg.html
* website/samples/longdev.prg.html
* website/samples/mousetst.prg.html
* website/samples/onidle.prg.html
* website/samples/osshell.prg.html
* website/samples/parseini.ini.html
* website/samples/parseini.prg.html
* website/samples/switch.prg.html
* website/samples/testbrdb.prg.html
* website/samples/testbrw.prg.html
* website/samples/testhtml.prg.html
* website/samples/testidle.prg.html
* website/samples/tstmacro.prg.html
+ replaced static syntax highlighting
with new JS based one. Old system
used old HTML standard and old unfixed
copies of tests. See f.e.:
http://harbour-project.sourceforge.net/samples/testbrw.prg.html
In new system the code can be copied
as is from the source to these pages.
(it'd be even better if a directly link could
be used to the source repo on the web)
+ updated all code with fresh copies
from /tests directory
* tests/parseini.prg
* tests/testhtml.prg
* minor cleanups
* website/samples/array16.html
* website/samples/arreval.html
* website/samples/begin.html
* website/samples/byref.html
* website/samples/codebl.html
* website/samples/codebloc.html
* website/samples/dates3.html
* website/samples/foreach.html
* website/samples/hello.html
* website/samples/HowToBuildOnLinux.html
* website/samples/HowToBuildOnWindows.html
* website/samples/initexit.html
* website/samples/longdev.html
* website/samples/mousetst.html
* website/samples/onidle.html
* website/samples/osshell.html
* website/samples/parseini.html
* website/samples/switch.html
* website/samples/testbrdb.html
* website/samples/testbrw.html
* website/samples/testhtml.html
* website/samples/testidle.html
* website/samples/tstmacro.html
+ changed to use absolute paths to refer to
common page elements
* harbour/contrib/hbodbc/odbc.c
! fixed length of string parameters passed to ODBC functions.
This code was using hb_parclen() for strings translated to other
encoding by O_HB_PARSTRDEF() - it's a bug - translation may completely
change the string length and the final ones can be shorter or longer
then value returned by hb_parclen(). The last parameter in these macro
is a pointer to HB_SIZE item which may received the size of converted
string and this value should be use. If some other code also uses
similar hb_parclen()/hb_itemGetCLen() for translated string (i.e.
code using hbwinuni.h macros) then it has to be fixed.
! fixed the code to respect manual call to SQLDisconnect() which
discards associated statement handles
% eliminated repeated calls to extract handles from pointer items
; TOFIX: add protection against calling SQLConnect() with hDbc handle
which is already in connected state. Possible solutions:
- forbid such operation
- execute SQLDisconnect() inside SQLConnect()
; TOFIX: hb_parc() pointer is passed as write buffer inside
SQLBindParameter()
; Please make real test. I made this modifications without any real
test. I do not have access to any ODBC server here.
+ 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.