* src/rtl/hbrandom.c
! Typo in comment. [Tamas]
+ Enabled using DBL_EPSILON in hb_random_num() on Windows
platform, except bcc, which - according to the comment
from original author - has some problems with this value.
* package/harb_win.rc
* contrib/hbrun/hbrun.rc
* Modified manifest inclusion to be friendly with all Windows
compilers (ie. not break them with their own headers and
predefined macro definitions).
* contrib/hbqt/hbmk2_qt.hbs
* Whitespace.
* include/harbour.hbx
* src/rtl/hbdoc.prg
* tests/stripdoc.hbs
* Added __HBDOC_FILTEROUT( <cFile> ) -> <cFile> internal
function to strip all NG doc content from a file and
return the stripped file.
* contrib/hbide/idedocwriter.prg
+ Use core __HBDOC_TOSOURCE() to generate NG doc source.
(just build tested)
; TOFIX: idedocwriter.prg and ideharbourhelp.prg
still makes direct reference to NG doc physical
format. Pls change these to use __HBDOC_* functions.
* harbour/include/hbclass.ch
+ added some class(y) compatible commands for delegated messages
* harbour/include/hboo.ch
* harbour/src/vm/classes.c
* harbour/src/rtl/tclass.prg
* native support for delegated messages - work in progress
* harbour/src/rtl/hbsocket.c
! fixed error checking to eliminate possible error code overload
* harbour/ChangeLog
* marked old TODO as [DONE]
* src/rtl/hbfilehi.prg
! Silly cut&paste typo causing major problem in some cases
in HB_PATHNORMALIZE(). (in 2011-02-11 12:04 UTC+0100 Viktor Szakats)
Thanks Teo for reporting the darwin/gcc problem it caused.
* src/rtl/hbdoc.prg
+ Added logic to detect in which column the actual
content starts and read it accordingly.
It uses the first content line as a base, so if
that one is wrong, the content will be read wrongly
and such NG sources should be fixed manually.
* On output it will always start content in column 8 (base 1).
* contrib/hbmysql/mysql.c
! MYSQL_REAL_ESCAPE_STRING() fixed taking wrong params.
Reported by Bacco, thanks!
* contrib/hbrun/pullext.prg
* contrib/hbrun/hbrun.prg
* contrib/hbrun/plugins.prg
* contrib/hbrun/headers.prg
* Formatting.
* src/rtl/browse.prg
! Reversed some of the changes in previous commit.
Still I am trying to understand how a record can be
edited without RLock() ( only for lAppend == TRUE, it is OK ).
* harbour/src/rtl/hbsocket.c
* added HB_HAS_GETHOSTBYADDR to control access to gethostbyname()
function
* added alternative implementation of hb_socketGetHostName()
function when gethostbyname() is not available
* src/rtl/base64d.c
! Fixed TOFIX to handle too large result. Now it will RTE.
Please check me.
* src/rtl/hbrandom.c
* Formatting.
* src/rtl/space.c
* Fixed commented call.
* harbour/src/rtl/base64d.c
! fixed destination buffer size calculation - it was too small
! fixed to work with platform/compilers where 'char' is unsigned type.
Please NEVER use 'char' type in math calculation without explicit
'signed' or 'unsigned' specifier. On some platforms (i,e. MIPS Linux
ports or in all OpenWatcom builds) 'char' is unsigned type. I once
cleaned whole code and fixed all wrong places. I do not want to
repeat it - sometimes is hard to locate problematic places.
! fixed index to ASCII decode table verification - '{' was accepted
as valid base64 char.
BTW this code works only on ASCII based machines. It's not the
one code with such limitation in Harbour SVN anyhow it would be
good to mark such limitation - maybe someone will want to port
Harbour to some IBM mainframe machines.
% removed redundant code
* src/rtl/base64d.c
! Fixed crash when empty or non-string parameter was passed to HB_BASE64DECODE().
+ tests/base64.prg
+ Added base64 test suite. [Tamas]
* src/rtl/hbfilehi.prg
! Fixed HB_PATHNORMALIZE() recent change to strip double pathseps.
It was slashing ending pathsep too, which caused hbmk2 env detection
to die and not find libs.
NOTE: HB_PATHNORMALIZE() got very inefficient after this addition,
so if I may chose to restore stable versions from hbmk2 code.
; There are at least two remaining bugs in recent changes.
* utils/hbmk2/hbmk2.prg
! Readded REQUEST HB_FSETATTR. It was used in conditional
code, so it was not linked on *nix builds, causing
failure to run postinst.hbs.
* src/rtl/hbrandom.c
* Minor formatting.
* src/rtl/base64d.c
! HB_BASE64DECODE(): Forgot to return sized buffer in recently
added C version of this function.
; Please review and/or stree-test this function.
* harbour/src/rtl/tbrowse.prg
! set default minimal number of visible rows to ::rowpos() when
::configure() method is called - clipper compatibility fix.
* src/3rd/zlib/Makefile
! Fixed pocc64 related change in 2011-02-01 16:59 UTC+0100 Viktor Szakats
Which broke zlib in harbour dll on all win platforms.
Unfortunately pocc64 is broken (6.5 even) due to bugs in the compiler,
so I _very strongly suggest_ to take out pocc64 from tests,
but at least not use HB_BUILD_CONTRIB_DYN=yes, when building
it.
* src/rtl/base64d.c
* Copyright header tweak.
* src/rtl/hbsocket.c
* contrib/xhb/xhb.hbp
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbmzip/3rd/minizip/minizip.dif
* contrib/hbmzip/3rd/minizip/ioapi.h
* INSTALL
; Further Minix patch from Tamas:
* contains small touchups to src/rtl/hbsocket.c to bring the previous
modifications in line with the rest, plus typo fixes
* disables contrib/xhb until minix gets the features needed
* disables contrib/3rd/sqlite3, pending investigation
* makes contrib/hbmzip work
* adds some notes to INSTALL
* harbour/src/vm/hashfunc.c
* harbour/src/vm/hashes.c
* moved HB_HASH_RESORT setting to avoid potential problems when some
3-rd party code didn't set it correctly.
* harbour/src/rtl/itemseri.c
! fixed restoring hash arrays with strict order - they were not resorted
* 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