* include/harbour.hbx
* src/rtl/hbfilehi.prg
! HB_DIRADDPATHSEP() fixed to not add pathsep to plain dirspec.
! HB_DIRDELPATHSEP() fixed to not remove double pathspec from UNC root.
! Fixed to work if HB_OSDRIVESEPARATOR()'s length is not 1:
HB_PATHMAKERELATIVE(), HB_DIRUNBUILD(), HB_DIRDELPATHSEP().
(QUESTION: is this a valid possibility, or is this over-design?)
+ Added TODO to HB_CWD() to also be able to change dir.
This will require adding Harbour versions of DIRCHANGE() and
DISKCHANGE(), or moving the implementation to C level.
(possibly the latter)
- Deleted HB_FNAMEDIREXTSET(). Doesn't satisfy a general need.
* src/rtl/hbfilehi.prg
% Minor optimization, cleanups.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* Cleaned PathProc() to have the name PathMakeAbsolute().
Deleted duplicate copies under different names.
* src/rtl/dirdrive.c
+ Added HB_DIRCREATE(), which is same as MAKEDIR() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
+ Added HB_DIRDELETE(), which is same as DIRREMOVE() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
* contrib/hbnetio/tests/netiotst.prg
* contrib/hbnetio/tests/netiot03.prg
* contrib/hbfimage/tests/fitest.prg
* contrib/hbide/idesaveload.prg
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
* tests/wcecon.prg
* tests/flink.prg
* bin/hb3rdpat.hbs
* examples/hbdoc2/gentpl.prg
* Replaced MakeDir() with universally available hb_DirCreate().
; TODO: same in config/postinst.hbs (delayed to avoid a million
false bug reports)
* src/rtl/Makefile
+ src/rtl/hbfilehi.prg
+ Added generic file/dir/path handling functions.
They are taken from hbmk2 code, added parameter checking,
did two minor change to DirBuild() to be generic,
renamed to have HB_ prefix.
Please note the parameter list and any details are
subject to change yet, IOW these APIs are not yet finalized:
hb_cwd() -> <cPath>
hb_PathNormalize( <cPath> ) -> <cPath>
hb_PathMakeAbsolute( <cPathRel>, <cPathAbs> ) -> <cPath>
hb_PathMakeRelative( <cPathBase>, <cPathTarget>, <lForceRelative> ) -> <cPath>
hb_DirAddPathSep( <cDir> ) -> <cDir>
hb_DirDelPathSep( <cDir> ) -> <cDir>
hb_DirBuild( <cDir> ) -> <lSuccess>
hb_DirUnbuild( <cDir> ) -> <lSuccess>
hb_FNameDirGet( <cFileName> ) -> <cDir>
hb_FNameNameGet( <cFileName> ) -> <cName>
hb_FNameNameExtGet( <cFileName> ) -> <cNameExt>
hb_FNameExtGet( <cFileName> ) -> <cExt>
hb_FNameExtDef( <cFileName>, <cDefExt> ) -> <cFileName>
hb_FNameExtSet( <cFileName>, <cExt> ) -> <cFileName>
hb_FNameDirExtSet( <cFileName>, <cDirNew>, <cExtNew> ) -> <cFileName>
; TODO: Review, clean interface.
; TODO: Use these functions in .hbs files, utils, hbide.
* include/harbour.hbx
* Updated.
* utils/hbmk2/hbmk2.prg
* One internal function renamed.
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
+ Added client address filtering engine for both data and
management interface. It will do quick match against
IP, then wildcard match against IP, then quick host name match,
wildcard hostname match. Block filter has priority over
allow filter. It's possible to control via management RPC,
console UI not yet extended to use it. A lot of other
TODO is quickly generated by this feature, f.e. making
settings persistent, supporting IP subnet masks, etc.
I didn't test this at all, pls do.
* src/rtl/strmatch.c
! Typo in comment.
* src/rtl/Makefile
- src/rtl/base64.prg
+ src/rtl/base64d.c
+ Replaced HB_BASE64DECODE() with an optimized C implementation.
The core code is borrowed from libb64 project
(http://sourceforge.net/projects/libb64) and has been places
to public domain by author Chris Venter.
I've reformatted the code and made some minor modifications.
I had used the Harbour license for the whole file.
This code is 50-100 times faster than old Harbour code doing
the same job. Please review it, especially the buffer size
calculation.
BTW the C code uses a unique trick called 'Duff's device'.
* src/rtl/listbox.prg
! LISTBOX(): Fixed RTE (and 5.3 incompatibility) when
non-logical/non-NIL type is passed as 5th parameter.
This makes the ListBox() example included in 5.3 NG behave
exactly the same in Harbour as in C5.3. (Yes, the
example passes wrong parameter, plus it has a compiler
stopping typo, and it still RTEs even after the fix,
so better find some better example.)
* src/rtl/listbox.prg
! _LISTBOX_(): Fixed very old bug (can't access ViewVC ATM, but around ~r7550)
causing incompatibility with C5.3 regarding IsOpen initial value. It was
wrongly initialized by parameter what is now correctly renamed to lScrollBar.
Was wrongly named lIsOpen before this fix.
% Don't pass default style value to ScrollBar()
* src/rtl/listbox.prg
* Internal var renamed to reflect its type.
* src/rtl/einstvar.prg
* src/rtl/einstv52.prg
* Fixed to use manifest constants.
* utils/hbrun/hbrun.prg
! Fixed to allow case-insensitive match for headers on
non-*nix platforms.
* harbour/src/rtl/stuff.c
* minor modification which should pacify warnings in some compilers
* harbour/src/rtl/gtgui/gtgui.c
* removed unnecessary assignment to pacify BCC warning
* harbour/contrib/hbxdiff/hbxdiff.c
! fixed file handle to pointer casting - on some platforms/C compilers
old code could cause compile time warnings or even errors
* harbour/src/rtl/gtgui/gtgui.c
* use MB_ABORTRETRYIGNORE instead of MB_RETRYCANCEL only when defined
by default and program is executed in W2K or newer Windows version
* harbour/src/rtl/gtgui/gtgui.c
+ added basic support for redirecting ALERT() to MessageBox() in
MS-Windows GTGUI builds. Please remember that MessageBox() supports
only few predefined buttons so it's not possible to show all user
options. Anyhow it should be enough to present error messages
generated by default error handler.
* harbour/src/rtl/filesys.c
! fixed function name in HB_TRACE() message
* harbour/src/rdd/sdf1.c
* harbour/src/rdd/delim1.c
* add CHR(26) at the end of COMMA and SDF files only when _SET_EOF is .T.
* harbour/src/rtl/filesys.c
+ added new macros HB_WIN_IOREAD_LIMIT and HB_WIN_IOWRITE_LIMIT
They are used to define maximal size of single IO read and
write operations. In Win64 builds they are set by defauly
to HB_U32_MAX. It's possible to rebuild Harbour with above
macros setting some smaller limits.
* harbour/src/rtl/hbproces.c
! fixed hb_fsProcessExec() in DOS, OS2 and WinCE builds and
hb_fsProcessOpen() in OS2 builds to close handles open for
stdin, stdout and stderr communication
* harbour/src/rtl/fieldbl.prg
! fixed FieldBLock() and FieldWBLock() to be CA-Cl*pper compatible
(they should return NIL for field names which are not valid
identifiers and generate RTE during evaluation if field does
not exist)
* harbour/src/rtl/cdpapi.c
* removed dummy assignment
* harbour/src/lang/msgpl852.c
* harbour/src/lang/msgplmaz.c
* harbour/src/lang/msgpliso.c
* harbour/src/lang/msgplwin.c
! fixed one message translation
* harbour/config/dos/watcom.mk
* harbour/config/win/watcom.mk
* harbour/config/linux/watcom.mk
* harbour/config/os2/watcom.mk
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when HB_BUILD_WARN='no'
* harbour/utils/hbmk2/hbmk2.prg
* disable explicitly some Open Watcom warnings in 3rd party code
which we can safely ignore when warning level is low
* src/rtl/gtwin/gtwin.c
+ Attempt to enable HB_GTI_PALETTER support for MSVC 2005/2008
combined with Longhorn SDK. (also reverted prev change)
Please retest in above environments, plus old MSVC and
BCC 5.9.
* config/hbc.cfg
+ More tweaks to make it Harbour-ready.
* src/rtl/gtwin/gtwin.c
! Disabled HB_GTI_PALETTE support for MSVC 2005/2008
versions combined with certain (older) SDK versions.
The symptom is missing NDDI_* detection support, yet
present CONSOLE_SCREEN_BUFFER_INFOEX structure.
(Most pbly SDK 6.x. SDK 7.0a is fine)
Thanks to Andi for the tests.
* config/hbc.cfg
+ Few tweaks to make it more Harbour compliant.
F.e. for hblzf.c it now generated perfect result.
* contrib/hblzf/hblzf.c
* contrib/hblzf/tests/test.prg
! Added missing EOL at EOF.
! Restored my formatting fixes from previous commits.
! Refixed wrong formatting. (for the ~5th time)
- Deleted synonym added in previous commit.
I suggest to write a few words of reasoning for
changes not having obviously apparent reason.
It's brand new lib, so we should decide about _one_
(the best) initial name and stick to it. Let's use
synonyms if we later find out that we did some
mistakes in the past, or other special occasion.
* src/rtl/gtwin/gtwin.c
+ Added HB_GTI_PALETTE support to GTWIN for all non-msvc
compilers.
(solution is hackish so it may need revision as future
non-msvc, non-watcom compiler versions implement this
feature in their own WinAPI headers.
* harbour/include/hbapicdp.h
* harbour/include/hbcdpreg.h
* harbour/src/rtl/cdpapi.c
* harbour/tests/cpinfo.prg
+ added support to define CPs using different letter case sorting
in human readable form. Now it's possible to use:
// uppers before lowers: ABCDE...abcde...
#define HB_CP_CSSORT HB_CDP_CSSORT_UPLO
// uppers and lowers are mixed: AaBbCcDdEe....
#define HB_CP_CSSORT HB_CDP_CSSORT_MIXED
// ignore case
#define HB_CP_CSSORT HB_CDP_CSSORT_IGNORE
* src/rtl/hbinet.c
* Do not set SO_EXCLUSIVEADDRUSE on Windows in
HB_INETSERVER(), HB_INETDGRAMBIND() calls.
; NOTE: INET API is compatibility API, it's deprecated and
not recommended. Use SOCKET API instead, where
you have full control of above options and it's
also much superior API.
* include/harbour.hbx
* include/hbsocket.h
* src/rtl/hbsocket.c
* src/rtl/hbinet.c
* src/rtl/hbsockhb.c
+ Added hb_socketSetExclusiveAddr() on .c level.
+ Added hb_socketSetExclusiveAddr() on .prg level.
* hb_socketSetReuseAddr() cleaned from SO_EXCLUSIVEADDRUSE (Windows-only)
logic.
* Changed HB_INETSERVER(), HB_INETDGRAMBIND() to call
hb_socketSetExclusiveAddr()(). We may delete these if they
cause problems on some Windows platforms, though we must
absolutely use this option (for security reasons) in every
server component, if Windows host supports it.
; TODO: Call hb_socketSetExclusiveAddr() from hbnetio server,
hbhttpd server.
* include/hbcpage.hbx
* src/codepage/Makefile
+ src/codepage/cpcs852c.c
* src/codepage/cpsk852c.c
- src/codepage/cpcskam.c
+ src/codepage/cpcskamc.c
- src/codepage/cpskkam.c
+ src/codepage/cpskkamc.c
! Fixed SK852C to be fully Clipper compatible. (generated with cpinfo)
! Added Clipper compatible CS852C CP. (generated with cpinfo)
* SK/CS Kamenicky CP moved to Clipper compatibility status.
Updated to be Clipper compatible. (generated with cpinfo)
INCOMPATIBLE. Pls update CP names if you used these.
Thanks to Jaroslav Janik for the help.
Please test all these.
* src/rtl/hbsocket.c
! hb_socketSetReuseAddr() changed on win platforms to use
SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR. See http://paste.lisp.org/display/59751.
Rough patch, maybe the logic isn't applied to the right place,
maybe extra win version checks are required, please test it
and patch it further if needed.
* src/rtl/hbinet.c
* s_inetBind() changed back to call hb_socketSetReuseAddr() also
on win platforms.
* contrib/hbwin/tests/testole.prg
+ Added shortcut creation example.
* contrib/hbide/idemisc.prg
! Fixed HBIDE_PATHNORMALIZED() to _never_ lowercase passed
filename. As discussed very long time ago, such behavior
is not portable. For comparison purposes HB_FILEMATCH()
should be used, for other purposes _no_ change should be
done by hbide in filename casing. Ever.
This is brute force fix only applied to low-level code.
It will cause regressions on the higher level, which have
to be fixed.
; TODO: Delete this second parameter from all calls, now
the value is ignored.
; TOFIX: Review all
HBIDE_PATHNORMALIZED() and
HBIDE_PATHNORMALIZED( p, .T. )
calls if they are used in comparison context and change
caller code to use HB_FILEMATCH().
; TOFIX: All current code which uses LOWER()/UPPER() to
"normalize" filename before comparison with '=='
operator should also be changed to HB_FILEMATCH().
(except for cases where extension is used in the
sense of file type).
; TOFIX: Rest of cases where LOWER()/UPPER() is applied to
filenames.
! Fixed HBIDE_PATHFILE() to never uppercase drive letter.
It's not strictly required since all so far known systems
supporting drive letter are case insensitive, but it's
nevertheless not the job of hbide to reformat pathnames.
* contrib/hbide/ideactions.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
! Fixed some code to use HB_FILEMATCH() instead of unconditional
uppercasing/lowercasing. Please review and finish this modification,
there might be more hidden places and might have overlooked anything
in this patch.
* include/hbapi.h
* src/common/hbver.c
+ Added hb_iswin2k3().
* src/rtl/hbsocket.c
+ Comment.
; TOFIX: Use SO_EXCLUSIVEADDRUSE on Windows.
See: http://paste.lisp.org/display/59751
- examples/udpds
+ contrib/hbmisc/tests/udpdstst.prg
+ contrib/hbmisc/udpds.prg
* contrib/hbmisc/hbmisc.hbp
+ Moved UDPDS functions to hbmisc lib. Added hb_ prefix to names,
plus formatted with hbformat.
* contrib/hbhttpd/tests/webapp.prg
* Formatting.
; Patch from Tamas:
* config/bsd/gcc.mk
* config/bsd/clang.mk
* switch bsd to -fPIC, otherwise not even core builds (on 8.1/amd64)
* while there, bring bsd/gcc.mk in line with linux/gcc.mk (now they
are identical)
* ditto for bsd/clang.mk
* contrib/hbqt/hbqt_common.hbc
* for hbqt, switch static supc++ to dynamic stdc++, otherwise dyn hbqt
doesn't build. this is because on at least fbsd supc++ is apparently
not pic; but switching from static supc++ to dynamic stdc++ easily
fixes it.
* harbour/src/rtl/fstemp.c
* enabled mkstemp() usage in *nix OpenWatcom 1.8 and newer builds
* harbour/src/rtl/hbsocket.c
* disabled getpeername() and shutdown() usage in OpenWatcom *nix
builds only for OpenWatcom <= 1.9
* harbour/src/rtl/diskspac.c
* minor formatting
* harbour/src/rtl/hbproces.c
* enabled sysconf() hack only for OpenWatcom <= 1.9
* harbour/src/rtl/hbcom.c
* disabled OpenWatcom *nix builds only for OpenWatcom <= 1.9
; it's possible that above modifications will cause error if problems
are not fixed in newer OpenWatcom releases but in such case we can
simply change to OW number in #if condition.
* contrib/hbodbc/odbc.c
! SQLEXECUTESCALAR() marked with HB_LEGACY_LEVEL3. Do no use this
function. It's not a direct ODBC function wrapper and it
internally calls SQLGetData with a fixed SQL_CHAR type, which
is wrong.
! SQLGETDATA() fixed to default some parameters properly (so far
it was checking for zero value instead of looking at Harbour
type). Potentially incompatible change.
! SQLROWCOUNT() fixed to always return value by reference.
(it's not wrapper's job to check success value and act anything
depending on it).
; TOFIX: There are some more wrappers which do that: SQLDESCRIBECOL(),
SQLCOLATTRIBUTES(), SQLGETCONNECTATTR(), SQLGETSTMTATTR().
% SQLROWCOUNT(), SQLGETINFO(), SQLNUMRESULTCOLS(), SQLCOLATTRIBUTE(): Minor optimization.
! SQLGETINFO(), SQLNUMRESULTCOLS(), SQLGETSTMTATTR(), SQLSETCONNECTATTR(),
SQLGETCONNECTATTR(), SQLDESCRIBECOL(): Setting initial value to parameter retrieved by reference.
! SQLDESCRIBECOL(), SQLCOLATTRIBUTE(): fixed to not crash if wrong length is passed.
* contrib/hbodbc/todbc.prg
% TODBC:LoadData() got some minor optimizations.
* TODBC:LoadData() changed to be able to retrieve fields with
length of 256, instead of 64. This is still hack and should
be fixed to retrieve full length.
! TOFIX: TODBC:LoadData() to pull data in its original type
instead of pulling everything as string, then trying
to convert it back to original type.
* src/rtl/dircmd.prg
! Typo in comment.
* 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/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/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 ()
* 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/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/src/rdd/sdf1.c
! fixed bug in SDF import procedure - many thanks
to Enrico Maria Giordano for reporting the problem
and to Vicente Guerra for locating the reason
BTW fix committed to xHarbour may work but it's not correct,
I suggest to update it.
* harbour/src/rtl/hbdyn.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* harbour/contrib/hbct/bitnum.c
* harbour/contrib/hbwin/olecore.c
* pacified some of MSVC6 warnings reported by Andi
* harbour/utils/Makefile
* added internal/developers build switch
- external/zlib
- external/png
- external/jpeg
- external/hbpmcom
- external/pcre
- external/Makefile
+ src/3rd
+ src/3rd/zlib
* src/3rd/zlib/Makefile
+ src/3rd/png
* src/3rd/png/Makefile
+ src/3rd/hbpmcom
* src/3rd/hbpmcom/Makefile
+ src/3rd/jpeg
* src/3rd/jpeg/Makefile
+ src/3rd/pcre
* src/3rd/pcre/Makefile
+ src/3rd/Makefile
* Moved /external to /src/3rd
; This way all core components reside in core.
; NOTE: png, jpeg are not referenced by core components,
so they may be moved to contrib area in the future.
* config/detect.mk
* Makefile
* src/Makefile
* src/rtl/hbcom.c
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/hpdf.h
* contrib/hbwin/hbwin.hbp
* Updated to reflect above change.
; NOTE: Now -j builds can be optimized to better overlap with
3rd component builds. Please do it in src/Makefile.
* contrib/hbplist
* Updated.
* src/rtl/version.c
+ HB_VERSION( HB_VERSION_PLATFORM ) changed to use hb_verPlatformMacro().
This means it will now supported recently added platforms.
; NOTE: For consistency, __PLATFORM__WINDOWS should pbly be changed to __PLATFORM__WIN,
and __PLATFORM__WINCE to __PLATFORM__WCE.
* utils/hbmk2/hbmk2.prg
+ Added HB_HOST_PLAT macro, returning: hb_Version( HB_VERSION_PLATFORM )
+ Added HB_HOST_PLAT_UNIX macro.
! Fixed cygwin to be detected as cross target platform.
! Few cygwin related TOFIX-es cleared.
* external/Makefile
- external/sqlite3
+ contrib/3rd
+ contrib/3rd/sqlite3
* contrib/3rd/sqlite3/sqlite3.hbc
+ contrib/3rd/sqlite3/sqlite3.hbp
- contrib/3rd/sqlite3/Makefile
* Moved sqlite3 foreign code to contrib/3rd dir from
global 3rd party code dir.
+ Migrated remaining platform tweaks from Makefile to sqlite3.hbp
Bumps are expected, pls test.
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/sddsqlt3/sddsqlt3.hbp
* Changed sqlite3 position.
+ Added sqlite3 reference.
; Please note that after above changes sqlite3 will only be built
if required.
* src/common/hbver.c
* Formatting.