* include/hbcpage.hbx
* src/codepage/Makefile
+ src/codepage/cpsk852c.c
+ Added Clipper compatible Slovak collation.
* src/codepage/cpsk852.c
* src/codepage/cpskkam.c
* src/codepage/cpskiso.c
* src/codepage/cpskwin.c
! Fixed Slovak collation.
; INCOMPATIBLE: All users using any of the above codepages will
have to reindex.
; Thanks to Julius Bartal for sorting it out.
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/contrib/rddads/ads1.c
* casting cleanup
* harbour/contrib/hbssl/ssl.c
* use hb_itemGetWriteCL() instead of hb_itemUnShareString()
! do not allow to overwrite trailing 0 in string item - we
have such code in FREAD() which uses hb_parcsize() instead
of hb_parclen() but only for strict compatibility with CL5.x
FREAD() function and it should not be replicated in any other
code - strings without trailing 0 may cause GPF in some other
code uisng [hb_]str*() C functions.
* src/rtl/sha1.c
* Settling back to original version of some lines.
- contrib/hbgd/tests/tpoly.hbp
- contrib/hbgd/tests/tpolyc.c
- Using hbct functions with same name, so this is not needed.
* contrib/hbgd/tests/tpoly.prg
* Applied patch from Tamas.
* Since final patch didn't apply I went on to rename static
vars to have s_ prefix.
* contrib/hbgd/tests/gdtest.prg
* contrib/hbgd/tests/barms.prg
* contrib/hbgd/tests/bartest.prg
* contrib/hbgd/tests/gdtestcl.prg
* contrib/hbgd/tests/tostring.prg
* contrib/hbgd/tests/animgif.prg
* contrib/hbgd/tests/testdpi.prg
* contrib/hbgd/tests/test.prg
* contrib/hbgd/tests/counter.prg
* contrib/hbgd/tests/antialia.prg
* Using hb_ps(). Patch from Tamas.
* src/rtl/sha1hmac.h
* src/rtl/sha1hmac.c
* src/rtl/hbsha1.c
* src/rtl/hbsha1hm.c
* src/rtl/sha1.c
* src/rtl/sha1.h
* Reverted previous two fix attempts (for the most part) and replaced
it with patch posted by Przemek. This fixes low level SHA1 code,
and it's the efficient solution.
* src/rtl/sha1hmac.h
* src/rtl/sha1hmac.c
* src/rtl/hbsha1.c
* src/rtl/hbsha1hm.c
! Futher fixes to 'const controversy' (which in my terms meant
'wrong usage of const'). Didn't make extensive tests (pls do)
and this change makes SHA1 functions very inefficient for large
input buffers. Either we should remove this, or find a proper
implementation which doesn't tamper with the input buffer
internally.
Pls note that after these changes SHA1 functions will RTE if
any input parameter is not string.
+ contrib/hbgd/tests/tpoly.hbp
+ contrib/hbgd/tests/tpoly.prg
+ contrib/hbgd/tests/tpolyc.c
+ Added GD sample submitted to the list by Tamas.
(I converted tabs to spaces, rename a file, cleaned the hbp file,
and changed to std SVN header format)
* harbour/contrib/rddads/ads1.c
! fixed varchar support for windows introduced in one of last commits
; Varchar is not working, if ADS is set to use "OEM charset support",
because AdsGetFieldRaw() returns raw field data and maximum field
length value is always returned.
ADS_USE_OEM_TRANSLATION is actually ugly hack to solve some DOS/WIN
codepage issues. I'm not sure what was the reason to introduce it.
Sharing the same database between DOS and Windows app or what?...
It would be nice if someone who need this setting will test and
support logic in case of variable string, binary string, unicode
string.
* harbour/ChangeLog
* marked may last TODO note as DONE - thanks to Viktor and Mindaugas
* harbour/include/hbmacro.h
! added missing const in hb_macroGenPCodeN() declaration
* harbour/include/hbapi.h
* added const to HB_CODEBLOCK.pCode
* harbour/include/hbcompdf.h
! added missing const to HB_MACRO.string
* harbour/src/pp/ppcore.c
* harbour/src/common/hbstr.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/hbfix.c
* harbour/src/compiler/complex.c
* harbour/src/compiler/hbdead.c
* harbour/src/compiler/genc.c
* harbour/src/compiler/hbident.c
* harbour/src/compiler/gencc.c
* harbour/src/compiler/hblbl.c
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyh
* harbour/src/vm/macro.c
* harbour/src/vm/codebloc.c
* harbour/src/vm/itemapi.c
* harbour/src/vm/hvm.c
* harbour/src/rtl/hbjson.c
* harbour/src/rtl/sha1.c
* harbour/src/rtl/sha2hmac.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rtl/hbbffnc.c
* harbour/src/rtl/itemseri.c
* harbour/src/rtl/filebuf.c
* harbour/src/rtl/hbbfish.c
* harbour/src/rtl/gttrm/gttrm.c
* harbour/src/rdd/workarea.c
* harbour/src/macro/macrolex.c
* harbour/src/rdd/usrrdd/usrrdd.c
* cleaned const pointer casting
* harbour/src/rdd/usrrdd/usrrdd.c
! fixed very serious bug located during const pointer cleanup
which should cause GPF on user code creating indexes
* harbour/src/rtl/sha2.c
* minor formatting
; TOFIX: Seems that there is sth wrong with src/rtl/sha1.c.
Function SHA1_Transform() wrongly declares 2-nd parameter
buffer[64] as const when in fact it changes it what can be
seen if
BYTE64QUAD16 *block;
is changed to:
const BYTE64QUAD16 *block;
This casting which removes const hides potentially very serious
bug - modifying readonly memory area. SHA1_Transform() changes
the buffer so the 2-nd parameter must be declared without const.
After such modification C compiler should warn when const buffers
are passed to this function and such places should be fixed.
In fact it seems to be only line 136:
SHA1_Transform(context->state, &data[i]);
Viktor can you look at it and fix the code?
* harbour/include/Makefile
* hbjson.h included
* harbour/include/hbcpage.hbx
* HB_CODEPAGE_LT775 included
* harbour/ChangeLog
! fixed UTC offset for my ChangeLog entries
* contrib/hbtip/sendmail.prg
! Fixed to not add 'Bcc:' entry to e-mail headers, since this will
reveal all the supposedly secret addresses to all addressees.
It's interesting how such huge bug can persist for so long
time without anyone noticing.
Please test and correct if needed.
* contrib/sddpg/sddpg.c
+ Recognizing OIDOID column type. Patch from Aleksander Czajczynski.
* contrib/hbpgsql/postgres.c
% Minor opt.
* contrib/hbtip/sendmail.prg
* contrib/hbtip/mail.prg
! Fixed various ages-old bugs in recipient list handling.
; TOFIX: BEWARE to all users. BCC is NOT actually blind in this
implementation. If someone has an idea how to fix this
bug, pls shout.
* harbour/contrib/hbct/bitnum.c
! fixed && operator wrongly used instead of & in function NumMirr()
* harbour/contrib/rddads/ads1.c
* removed variable declaration which was hiding other one
with the same name
* harbour/src/rtl/hbdyn.c
* harbour/src/rtl/gtsln/mousesln.c
* harbour/src/rtl/gtsln/kbsln.c
* harbour/tests/bldtest/bldtest.c
! aded mising ( void ) to declarations of functions
without parameters ()
* contrib/sddpg/sddpg.c
* contrib/hbpgsql/postgres.c
! Reverted previous fix because it didn't work on non-*nix platform.
- Deleted TOFIX comment, as apparently there is no better official way
to get these macros.
* contrib/hbpgsql/postgres.c
+ Added PQCONNECTDB() wrapper. Based on Tamas's patch, but implemented
little bit differently.
+ Extended PQCONNECT() (now deprecated compatibility function) to be more
flexible in accepting parameters and not create wrong low level call if
some of them are missing. Patch from Tamas, with my cleanups.
* Marked PQCONNECT() wrapper with HB_LEGACY_LEVEL3. It's now deprecated.
INCOMPATIBLE: Switch to PQCONNECTDB() ASAP.
* contrib/hbpgsql/tests/async.prg
* contrib/hbpgsql/tests/test.prg
* contrib/hbpgsql/tests/stress.prg
* contrib/hbpgsql/tpostgre.prg
+ Changed to use PQCONNECTDB() direct wrapper instead of PQCONNECT.
* harbour/include/hbpp.h
! removed repeated declaration of hb_pp_eof()
* harbour/include/hbapicdp.h
* harbour/include/hbapilng.h
* harbour/include/hbgtcore.h
* added extern declaration to HB_*_REQUEST() macros to pacify
undeclared global functions warnings
* harbour/include/hbstack.h
! added missing hb_stackDec() declaration
* harbour/include/hbdefs.h
! added missing const in some endian macros
* removed some unnecessary casting which may hide bugs
in the code
* harbour/include/hbapi.h
! removed repeated declaration of hb_strVal()
* harbour/include/hbznet.h
! removed repeated declaration of hb_znetError()
* harbour/include/hbcompdf.h
* minor comment
* harbour/src/vm/hvm.c
! added missing static to hb_vmTSVarClean() declaration
* added extern hb_vmForceLink() declaration to pacify
undeclared global functions warnings
* harbour/src/vm/thread.c
* make hb_threadInit() and hb_threadExit() internal HVM
functions available only in MT mode
* harbour/src/rtl/dates.c
! added missing static to hb_dateUnformatRaw() declaration
* harbour/src/macro/macrolex.c
* added extern hb_macro_yylex() declaration to pacify
undeclared global functions warnings
* harbour/src/rdd/workarea.c
* added extern _hb_rddWorkAreaForceLink() declaration to pacify
undeclared global functions warnings
* harbour/src/compiler/complex.c
* added extern hb_comp_yylex() declaration to pacify
undeclared global functions warnings
* harbour/contrib/hbnetio/netiocli.c
! added missing static to s_fileFlush() declaration
* harbour/contrib/hbct/tempfile.prg
! respect in TmepFile() function default file attributes set by
SetFCreate()
* harbour/contrib/hbct/ctstrfil.h
! added missing declarations for ct_getfcreate() and ct_setfcreate()
* harbour/contrib/hbwin/legacy.prg
* removed dummy RETURN statement
* harbour/contrib/xhb/fparse.c
! added missing static to hb_ParseLine() declaration
* harbour/contrib/xhb/freadlin.c
! added missing static to hb_fsReadLine() declaration
* harbour/contrib/xhb/txtline.c
! added missing static to hb_readLine() and hb_tabexpand() declarations
! fixed uninitialized variable warning exploited by above modification
(static function was automatically inlined increasing optimizations)
* harbour/contrib/xhb/hbserv.c
! removed repeated declaration of hb_isService() and hb_serviceExit()
* harbour/contrib/xhb/cstructc.c
* disabled public C functions hb_retclenAdoptRaw() and hb_retclenStatic()
* harbour/contrib/xhb/xhbat.c
* declare C function hb_AtSkipStrings() as static
Warning: this functions is part of public xHarbour C API.
; TODO: The following functions are declared as public but without
any prototypes in header files so they should be made static
or we should add them to some header files:
hbver.c:143: hb_verHostCPU()
hbjson.c:640: hb_jsonEncode()
hbjson.c:665: hb_jsonDecode()
sha2.c:228: sha256_transf()
sha2.c:445: sha512_transf()
I would like to ask authors to look at them and chose
best solution.
* harbour/contrib/hbzebra/pdf417.c
* harbour/contrib/hbzebra/code128.c
* harbour/contrib/hbzebra/eanupc.c
* harbour/contrib/hbzebra/code11.c
* harbour/contrib/hbzebra/itf.c
* harbour/contrib/hbzebra/datamtrx.c
* harbour/contrib/hbzebra/code39.c
* harbour/contrib/hbzebra/code93.c
* harbour/contrib/hbzebra/codabar.c
% added const to all static table declarations and updated
code to use const pointers to them. Please remember that
memory regions declared as const can be better optimized
by compiler during compilation and on some machines also
on runtime because can be located in readonly area which
is cached in more efficient way.
! fixed some non const declarations for pure "..." strings
* harbour/contrib/xhb/xthrow.prg
! removed unreachable RETURN statement reported by extended BREAK()
detection in compiler code
* harbour/contrib/xhb/xhbmvinf.c
* harbour/contrib/xhb/xhbscr.c
* updated header comments
* harbour/contrib/xhb/xhb.hbx
* harbour/contrib/xhb/xhberr.prg
+ added xhb_ErrorNew() function which accepts xHarbour ErrorNew()
parameters
! fixed xHarbour error handlers to work with Harbour error object
which does not contain some local xHarbour extensions
* harbour/contrib/xhb/stream.prg
* harbour/contrib/xhb/xcstr.prg
! use xhb_ErrorNew() instead of ErrorNew()
* harbour/src/rtl/gtclip.c
! fixed bug in calculation of maximum unicode clipboard buffer size
* harbour/src/compiler/complex.c
! recognize BREAK( [<exp>] ) as BREAK [<exp>] statement
not function call - it enables some addiitonal compiler
logic like warning for unreachable code, i.e.:
proc main()
break()
? "Hello World!!!"
return
* harbour/contrib/xhb/xhb.hbp
* harbour/contrib/xhb/xhb.hbx
+ harbour/contrib/xhb/xhbmvinf.c
+ added __MVSYMBOLINFO() xHarbour compatible function
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
! fixed INDEX ON ... command with USECURRENT clause to
ignore active filter on internal GOTOP operation.
Many thanks to Oleg for bug report and self contain
code example illustrating the problem.
+ harbour/contrib/hbzebra/datamtrx.c
* harbour/contrib/hbzebra/hbzebra.hbp
* harbour/contrib/hbzebra/hbzebra.ch
+ added DataMatrix 2D barcode support
; implemented ASCII encoding only. This is enough for most real
life applications, but it is only a minor part of available
codeword encodings. I just unable to implement without docs.
Reverse engineering of black and white dots take a lot of time
for 2D barcodes, so I've dropped this idea. If someone has
full ISO/IEC 16022:2006 specification, I can implement the rest.
* harbour/contrib/hbzebra/tests/testcair.prg
+ added DataMatrix test
; Please, add it to other backend tests
* harbour/contrib/hbzebra/core.c
* changed bitbuffer logic a little
* harbour/contrib/hbzebra/pdf417.c
* comment added
* small cleanup
* package/winuni/mpkg_win_uni.bat
! Fixed to install all .hbc files inside the contrib
dir structure. This is needed because now they exist
also under '3rd' dirs, referenced from contrib .hbc files.
(lightly tested, will find out with next nightly)
* contrib/hbzebra/hbzebra.hbc
! Deleted no more needed reference to hbcairo.hbc
* contrib/hbzebra/tests/testwin.prg
* Trying to figure what's best way to round off coordinates
to the stupid integers the winapi requires. Patch it further
if you know better.
* bin/hb3rdpat.hbs
+ Clarification to help text, by Tamas.
* harbour/contrib/hbzebra/hbzebra.ch
* harbour/contrib/hbzebra/hbzebra.h
* harbour/contrib/hbzebra/hbzebra.hbp
+ harbour/contrib/hbzebra/pdf417.c
+ added two-dimensional PDF417 barcode support
HB_ZEBRA_PDF417( cData, [ nFlags ] [, nDataColumns ] ) --> hZebra
; This requires testing on real scanners. F.e., some internet online
PDF417 decoders does not allow encoding mode switching from numeric
to text. Though I see no reason to be this prohibited by
specification.
* harbour/contrib/hbzebra/drawcore.c
+ implemented 2D barcode drawing
* changed argument error logic to generate RTE from Harbour level
* harbour/contrib/hbzebra/testcair.prg
* harbour/contrib/hbzebra/testhpdf.prg
* harbour/contrib/hbzebra/testwin.prg
* included new barcode into test samples
* contrib/hbwin/tests/testcom1.prg
* contrib/hbwin/tests/testcom2.prg
* contrib/hbwin/win_tcom.prg
* contrib/hbwin/win_com.c
! Fixed samples to not query error value (since it RTEs if
the port is not open)
+ WIN_COMISVALID( <nPort> ) -> <l> added to check if port number is a valid one.
+ WIN_COMERRORCLEAR( <nPort> ) added to clear last error.
! WIN_COMERROR() changed to not clear the error on read.
+ WIN_COM():ERROR() method added to retrieve last error in numeric form.
* Samples changed to use :ERRORTEXT() to show errors.
; INCOMPATIBLE changes.
; DISCLAIMER: I'm not a user of this, so to raise your chances for
a fix, pls submit patches. I also couldn't spend huge
time to rethink the whole concept of these interfaces.
IOW: Contribute.
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
+ Converted to UTF8. (from cp1252 and KOI8)
; I didn't make any tests and nobody commented about this, hopefully
it will work. Pls test it.
* utils/hbmk2/hbmk2.prg
! Adjusted the way Harbour dynlib is calculated for cygwin, after
making it a platform.
+ Added feedback when platform is redetected along compiler autodetection
process.
* contrib/hbzebra/d_gen.c
+ Implemented C level callback interface.
+ .prg level codeblock callback interface reimplemented on above
generic layer.
; So now there is a pure C level callback mechanism and the
.prg level HB_ZEBRA_DRAW() builds upon this.
* contrib/hbzebra/d_hpdf.c
! Silenced msvc warning.