* contrib/gtqtc/gtqtc.hbp
! do not detect QT5 when HB_BUILD_3RDEXT=no is set
* debian/rules
* removed LD_LIBRARY_PATH setting
* src/rdd/dbcmd.c
* src/rdd/wacore.c
! moved code checking WA number from DbSelectArea() PRG function
to hb_rddSelectWorkAreaNumber() C function. It fixes few things
like:
DbSelectArea( 0 )
and also:
? ( 0 )->( select() )
* contrib/hbexpat/3rd/expat/expat.diff
* contrib/hbexpat/3rd/expat/loadlibr.c
! use HB_WINAPI_GETPROCADDRESS() instead of GetProcAddress()
in WinCE builds
* contrib/hbhpdf/3rd/libhpdf/hpdfstre.c
* contrib/hbhpdf/3rd/libhpdf/libhpdf.diff
! include <windows.h> in WinCE builds, it's necessary for GetLastError()
* src/3rd/jpeg/Makefile
! do not use getenv() in all WinCE builds
* src/common/hbver.c
* cast revision number to HB_ULONG to pacify warning
* src/vm/extrap.c
! do not compile unused in WinCE builds hb_winExceptionHandler()
* include/hbapi.h
* added HB_EXPORT attribute to hb_macroTextValue() function
* include/hbvm.h
* src/vm/hvm.c
+ added C function:
PHB_ITEM hb_vmCompileMacro( const char * szExpr, PHB_ITEM pDest );
It returns Harbour item or NULL at error (wrong macro text).
The result should be used with hb_vmEvalBlockOrMacro() and then freed
by hb_vmDestroyBlockOrMacro(). It hides low level macro representation
so we can change it in the future. Now it's still simple pointer item
without autodestructor.
* src/rdd/hsx/hsx.c
* src/rdd/workarea.c
* use hb_vmCompileMacro() instead of hb_macroCompile()
* src/vm/runner.c
* changed 6101 error message for "Unknown or unregistered symbol"
to "Unknown or unregistered function symbol".
* report above error when HRB module is loaded and its external function
is not registered or not marked as DYNAMIC by earlier registered modules
in HVM symbol table.
Warning. This modification may exploit problems in code loading HRB files
with cross references which has worked so far. In such case user should
pass to hb_hrbLoad()/hb_hrbRun() as first parameters flags containing
HB_HRB_BIND_LAZY or declare the problematic function in his main code
as dynamic, i.e.:
DYNAMIC <funcName>
* src/rdd/dbf1.c
* declare internal function hb_dbfTransCheckCounters() as static one
* src/harbour.def
! added missing exported Harbour functions
* debian/compat
* set 10 as compatibility level
* contrib/3rd/sqlite3/sqlite3.c
* contrib/3rd/sqlite3/sqlite3.diff
* do not use noinline function attribute in GCC prior 3.1
* contrib/xhb/xhberror.c
* src/rtl/gtdos/gtdos.c
! fixed format specifiers in HB_TRACE() messages
* src/common/expropt1.c
* src/rtl/langapi.c
* pass explicitly "(null)" string instead of NULL string pointer
to HB_TRACE() messages, some C compilers can autoinline functions
and generate warning detecting such situation
* src/pp/hbpp.c
* cast revision number to ( HB_ULONG ) to avoid warnings in some
compilers which do not understand %I64u format specifier
* utils/hbmk2/hbmk2.prg
* preffer HB_WITH_* settings then platform native pkg-config,
giving pkg-config precedence breaks cross and custom builds
* contrib/hbcurl/core.c
* contrib/hbcurl/hbcurl.ch
+ added HB_CURLOPT_XFERINFODATA and HB_CURLOPT_XFERINFOFUNCTION
! use CURLOPT_XFERINFO* instead of depreciated CURLOPT_PROGRESS*
to implement HB_CURLOPT_PROGRESSBLOCK
! do not use depreciated CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET,
they serve no purpose anymore
+ added macros for new protocols
+ added HB_CURLOPT_PROTOCOLS_STR and HB_CURLOPT_REDIR_PROTOCOLS_STR
! use CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR instead
of depreciated CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS
* emulate CURLOPT_PROTOCOLS and CURLOPT_REDIR_PROTOCOLS using
CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR in new curl
versions
+ added support for HB_CURLOPT_MIMEPOST
! use CURLOPT_MIMEPOST to emulate depreciated in new curl versions
CURLOPT_HTTPPOST
+ added support for HB_CURLOPT_PROXY_SERVICE_NAME
! use CURLOPT_PROXY_SERVICE_NAME to emulate depreciated in new curl
versions CURLOPT_SOCKS5_GSSAPI_SERVICE
+ added HB_CURLINFO_ACTIVESOCKET
! use CURLINFO_ACTIVESOCKET instead of depreciated CURLINFO_LASTSOCKET
+ added HB_CURLINFO_SIZE_UPLOAD_T, HB_CURLINFO_SIZE_DOWNLOAD_T,
HB_CURLINFO_SPEED_DOWNLOAD_T, HB_CURLINFO_SPEED_UPLOAD_T,
HB_CURLINFO_CONTENT_LENGTH_DOWNLOAD_T and
HB_CURLINFO_CONTENT_LENGTH_UPLOAD_T
! use CURLINFO_*_T actions instead of depreciated ones which operate
double as file offset and emulate old actions using new ones in
new curl versions
* contrib/hbssl/evp.c
! Do no use EVP_cleanup() in OpenSSL 1.1.0 and newer.
It no longer has any effect.
* contrib/hbssl/hbssl.h
* set OPENSSL_API_COMPAT to 1.2.0 to pacify OpenSSL 3.0 API.
It hides OpenSSL 3.0 warnings but we should update the code to use
new suggested API.
* contrib/hbwin/olecore.c
! invoke assign methods with DISPATCH_PROPERTYPUTREF instead of
DISPATCH_PROPERTYPUT if assigned value is OLE object. If such
functionality is not implemented by the object (some OLE
implementations do not support it and returns DISP_E_MEMBERNOTFOUND)
then call it again but in previous form with DISPATCH_PROPERTYPUT
* include/hbapirdd.h
* src/rdd/dbcmd.c
! fixed error codes set by DbSetRelations() to be Cl*pper compatible
* src/rdd/dbcmd.c
+ accept symbol items in Select() and DbSelectArea() just like in
( <alias> ) -> <exp>
* include/hbcompdf.h
* include/hbexprb.c
* src/common/funcid.c
+ added compile time optimization for Select() function without parameters
+ added compile time optimization DbSelectArea( <nNum> | <sSym> )
+ added support for hb_PIsByRef( @localVarName ) -> <lPassedByRef>
When the parameter is passed by reference Harbour verifies if it's
existing local variable and change it to its index in parameter list
so effectively it works like hb_IsByRef( @localVarName ) in xHarbour
* contrib/xhb/hbcompat.ch
+ added translations for
hb_PIsByRef( @<localVar> ) <=> hb_IsByRef( @<localVar> )
* contrib/hbfimage/core.c
* use FreeImage_Rotate() instead of FreeImage_RotateClassic() in new
FreeImage versions which do not support this function
* contrib/hbsqlit3/core.c
* added missing casting reported as bug in C++ mode
* contrib/hbssl/hbssl.h
* contrib/hbssl/rsa.c
* added HB_SSL_CONST_BYTE() macro to pacify unconst warnings
in old SSL versions
* src/rdd/wacore.c
* inlined macro to pacify still returning false warning
* contrib/hbsqlit3/hbsqlit3.ch
* Updated SQLite constants to version 3.44.2.
% Reordered hbsqlit3.ch to simplify diffing from sqlite.h.
* contrib/hbsqlit3/core.c
+ SQLITE3_CREATE_FUNCTION(): Added support for function flags.
* contrib/hbsqlit3/core.c
* contrib/hbsqlit3/hbsqlit3.ch
* contrib/hbsqlit3/hbsqlit3.hbx
* Implemented SQLITE3_DB_FILENAME() on SQLite 3.7.10+.
* Implemented SQLITE3_EXPANDED_SQL(), SQLITE3_TRACE_V2() on SQLite 3.14.0+.
; Thanks to Mindaugas Kavaliauskas for thorough reviewing!
* contrib/hbsqlit3/tests/backup.prg
* contrib/hbsqlit3/tests/demo.prg
* Updated examples to use SQLITE3_TRACE_V2() on SQLite 3.14.0+.
* contrib/hbsqlit3/tests/backup.prg
+ Simple change in test to provoke access to dangling pointer saved
by SQLITE3_TRACE().
* contrib/hbsqlit3/core.c
! Fixed dangling pointer access with SQLITE3_TRACE(), SQLITE3_PROFILE().
* contrib/hbct/ctwin.c
! typo in comment
* include/hbexprb.c
* include/hbexprop.h
* src/common/expropt2.c
* src/harbour.def
* moved code for reducing NOT expression to new separate function
hb_compExprReduceNot()
; added comments to mark places for possible compiletime warnings when
incompatible types are used inside in logical expressions
(.AND. / .OR. / .NOT.)
2023-11-11 21:41 UTC+0100 Phil Krylov (phil a t krylov.eu)
* contrib/hbwin/win_bmp.c
! Fixed dangling pointer access (introduced in commit 64dba82) in
WIN_DRAWBITMAP().
2023-11-11 19:42 UTC+0100 Phil Krylov (phil a t krylov.eu)
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgwing.c
* contrib/hbwin/wapi_winuser_dlg.c
! Minor 64-bit Win32 API fixes.
* include/harbour.hbx
* src/harbour.def
* src/rtl/vfile.c
+ added new PRG function:
hb_vfIsLocal( <cFileName> ) --> <lLocalFileSystem>
It returns TRUE if <cFileName> is not redirected to any Harbour File IO
driver but access local file system API.
* contrib/xhb/traceprg.prg
* merged with Victor's branch so now Harbour File IO API is used to
access log file.
* convert relative log file name to absolute file path name
% write whole log entry in single IO operation.
* contrib/xhb/hbcompat.ch
! fixed translations of xHarbour operators inside brackets,
thanks to Ron.
* contrib/xhb/xhb.hbx
* contrib/xhb/xcstr.prg
+ added support for timestamp translations
! fixed few wrong translations
! fixed serialization of hash items with cyclic references
in ValToPrg()
% optimized cyclic references detection in ValToPrg()
! generate dummy code which cannot be compiled for codeblocks serialized
by ValToPrg()
* contrib/xhb/xhb.ch
+ added SET TRACE ... command, thanks to Ron.
* contrib/xhb/xhberror.c
* do not show __ERRRT_BASE() and __ERRRT_SBASE() in error call stack.
* src/vm/classes.c
! added protection against possible GPF when manually created serialized object
data with super class symbols longer then HB_SYMBOL_NAME_LEN is deserialized
* contrib/xhb/xhberrc.c
+ implemented Harbour version of SetUnhandledExceptionFilter() and
SetErrorMode()
* src/rtl/diskspac.c
% use GetDiskFreeSpaceEx() directly on Win64 instead of accessing it
by GetProcAddress()
* ChangeLog.txt
! typo in file name in previous commit
+ contrib/xhb/xhberror.prg
! added file missing in previous commit:
added code which extends Harbour error objects adding functionality
known from xHarbour:
oError:ProcName
oError:ProcLine
oError:ProcModule
Above instance variables are initialized automatically when error
object is created.
To enable this functionality it's enough to add to PRG code:
REQUEST xhb_ErrorNew
* include/hbapierr.h
* src/harbour.def
* src/rtl/errapi.c
+ added new C function:
void hb_errReinit( PHB_ITEM pError );
it allows to replace default error object with user custom one which
support :Init() method
* contrib/xhb/xhb.hbp
+ contrib/xhb/xhb.h
+ contrib/xhb/xhberror.prg
+ added code which extends Harbour error objects adding functionality
known from xHarbour:
oError:ProcName
oError:ProcLine
oError:ProcModule
Above instance variables are initialized automatically when error
object is created.
To enable this functionality it's enough to add to PRG code:
REQUEST xhb_ErrorNew
* contrib/xhb/xhberr.prg
* use error object :Proc*() methods if they are available
- removed PRG version of xhb_ErrorNew()
* contrib/xhb/xhbmemo.prg
* contrib/xhb/xhbtedit.prg
! use xhb_ErrorNew() instead of ErrorNew() which does not support
any parameters
* include/hbapicls.h
; typo in comment
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
* replaced depreciated in 5.15 methods for mouse wheel events processing
by modern ones
* replaced depreciated in 5.15 methods for accessing screen geometry by
modern ones
* contrib/gtqtc/gtqtc1.cpp
+ added support for TAB key processing when other widgets are shown and
TAB is use to switch focus
* src/rtl/alert.prg
* src/rtl/hbgtcore.c
+ added support for hb_Alert() parameters passed in hash array, i.e.
hb_Alert( { "TXT" => <cMessage>, ;
"BTN" => <aButtons>, ;
[ "TIM" => <nTimeOut> ] } ) => <nButton>
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
* include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_MSGBOX
It opens QMessageBox with given by user text and buttons, i.e.
hb_gtInfo( HB_GTI_MSGBOX, <cMessage>, <aButtons> ) => <nButton>
or:
hb_gtInfo( HB_GTI_MSGBOX, ;
{ "TXT" => <cMessage>, ;
"BTN" => <aButtons>, ;
[ "TIM" => <nTimeOut>, ] ;
[ "TIT" => <cTitle>, ] ;
[ "INF" => <cInfoText>, ] ;
[ "DTL" => <cDetailedText> ] } ) => <nButton>
+ added support for redirecting Alert() and hb_Alert() calls to QT GUI
QMessageBox(). This functionality can be enabled by:
hb_gtInfo( HB_GTI_MSGBOX, .t. )
and then
Alert( <cMessage>, <aButtons> )
is redirected to QT GUI QMessageBox().
* include/hbgtinfo.ch
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* contrib/gtqtc/gtqtc1.cpp
+ added new hb_gtInfo() action: HB_QT_SOUND
It allows to play sound using the low level GUI library, i.e.
hb_gtInfo( HB_QT_SOUND, <cSoundFile> )
This modification needs additional QT5 library Qt5Multimedia so I decided
to enable it conditionally by HB_QT_SOUND=yes environment variable.
* contrib/hbwin/wapi_shellapi.c
! replaced struct = { 0 } with memset( &struct, 0, sizeof( struct ) )
Such BCC syntax does not clear the whole structure body in most of
other C compilers.
* src/pp/hbpp.c
! fixed compilation for compilers using "i64" to format long long numbers,
thanks to Toninho for the information.
* contrib/hbcurl/core.c
! use hb_vmPushString() instead of hb_vmPushStringPcode()
hb_vmPushStringPcode() is only for static buffer which cannot be freed.
Variables passed to PRG debug functions can be stored by PRG code in
other variables which lives longer then passed buffer and later cause
GPF when curls structure is freed.
! indenting
* contrib/hbcurl/core.c
! CURLOPT_MAXLIFETIME_CONN is available in curl 7.80.0,
fix older builds by adding a version check
* ChangeLog.txt
* entry for previous merge was "old" (i wouldn't touch
it alone), but it also had paths with backslashes
in place of slashes
* contrib\hbcurl\hbcurl.ch
* contrib\hbcurl\core.c
+ added HB_CURLOPT_MAXLIFETIME_CONN to setup max lifetime of connection
see https://curl.se/libcurl/c/CURLOPT_MAXLIFETIME_CONN.html for more
information.
2022-05-02 08:38 UTC+0200 Antonino Perricone
* contrib\hbcurl\core.c
+ added HB_CURLOPT_DEBUGBLOCK to setup a block for debug information
It takes a callback in the form of {|type, msg| ... }
see https://curl.se/libcurl/c/CURLOPT_DEBUGFUNCTION.html for more
information.
* contrib\hbcurl\hbcurl.ch
+ added HB_CURLINFOTYPE_* macros for debug block
* src/rtl/hbfilehi.prg
* hb_DirBuild() will now honor UNC "\\server\share\dir\tree" parameter
on Windows and correctly create specified "\dir\tree" on remote
server. If your code used a malformed "\\local\path" a regression
in .prg code may happen on Windows. Previously a "\local\path"
folder was created on current drive, as if the UNC specifier was
omitted. It was more or less consistent with other platforms but
not expected for this platform. Spotted by Maurizio la Cecilia (#233)
[INCOMPATIBLE]
* contrib/hbdoc/hbdoc.prg
* contrib/hbformat/utils/hbformat.prg
* contrib/hbnetio/utils/hbnetio/hbnetio.prg
* package/harbour.mft
* package/harbour.rc
* src/compiler/hbusage.c
* utils/hbi18n/hbi18n.prg
* utils/hbtest/hbtest.prg
* bumped copyright year to 2021
* contrib/hbfbird/firebird.c
+ added optional <cCollate> as 7-th parameter of FBCREATEDB( <cDB>,
<cUser>, <cPass> <iPageSize>, <cCharSet>, <nDialect> [,<cCollate> ] )
Based on request and example code from Ivanil Marcelino (#240)
* contrib/hbpgsql/tpostgre.prg
% var assignment readability
* ChangeLog.txt
! corrected wrong date in prev entry
* contrib/hbpgsql/tpostgre.prg
! reverted previous commit 2021-04-01 15:55 UTC-0300 as invalid
together with a little cleanup plus another minor cleanup
* contrib/hbpgsql/postgres.c
! guard PQEXECPARAMS() wrapper from generating unrecoverable error
on empty parameter array "hb_xgrab requested to allocate zero bytes"
* contrib/hbpgsql/tpostgre.prg
! corrected buggy parameter order in TPQserver():Query()
* make TPQQuery, TPQRow classes more aware of NIL to NULL conversions,
added support for inserting and updating empty xBase date value
should fix issue #234, oRow:FieldPut( <n>, NIL ) also looks good
* contrib/hbpgsql/hbpgsql.hbx
* contrib/hbpgsql/postgres.c
* contrib/hbpgsql/postgres.ch
+ add most new wrappers from this repository of Petr Chornyj:
https://github.com/petr-ch/hbpgsql9
Version guards have been added and "params" functions reworked
to accept hashes instead of two arrays. Other minor corrections
to fit into the contrib env.
+ add PQsslAttribute()
* some existing functions were modified to make the parameter
check (and fail if wrong) even if the underlying API is not
available, instead of silently returning a default value.
; all of the above was build-tested only and some features
require at least postgresql 8, 9 or 9.1
+ add PQlibVersion() -> <nVersion> (returns 0 for pre-9.1 postresql
versions)
Ref: https://github.com/harbour/core/pull/127/ by @VerchenkoAG
+ PQEXECPARAMS(): add 4th parameter to set <resultFormat>
Refs:
https://www.postgresql.org/docs/9.1/static/libpq-exec.htmlhttps://groups.google.com/d/msg/harbour-users/hXhuVzU9pHA/RrDGLIiUAwAJ
+ add PQresStatus( <nNum> ) -> <cString>
+ added wrapper function
PQresultErrorField( result, nFieldCode ) -> cString
based on:
https://groups.google.com/d/msg/harbour-users/XSvRpbzfcHc/ztSL32fYpl4J
+ added PG_DIAG_* constants
+ added pg_encoding_to_char() wrapper to convert numeric
encoding ID to string
! fixed to use hb_fopen() instead of fopen()
+ TPQserver():New(): all parameters are now optional
! TPQserver():New(): fixed to escape connect parameter values
+ TPQserver():New(): added 7th optional hash parameter to pass
custom
connection parameters (e.g. SSL)
https://www.postgresql.org/docs/devel/static/libpq-connect.html
* contrib/hbpgsql/tests/test.prg
+ use pg_encoding_to_char(), plus some more feedback regarding
encodings
* contrib/hbpgsql/tests/dbf2pg.prg
+ use VF IO
+ support more source field types
; synced with Viktor's 3.4 branch at https://github.com/vszakats/hb
2017-02-15 15:14 UTC Viktor Szakats (vszakats users.noreply.github.com)
2016-09-05 18:55 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-09-05 10:43 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-09-02 01:58 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-06-20 22:50 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-07-19 11:56 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-04-06 18:39 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2015-03-31 23:31 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2014-11-29 02:47 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
2014-07-08 13:21 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2014-02-11 18:18 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
; tons of cleanups in this library, many thanks
* contrib/hbpgsql/hbpgsql.h
* contrib/hbpgsql/postgres.c
* contrib/hbpgsql/tpostgre.prg
+ recognize NAMEOID columns
+ added :SetNull( <lSet> ) to TPQServer class
and a param to :Query( <cQuery>, [ <lNull> ] )
TPQQuery class constructor is also extended.
With :SetNull( .T. ) retains NULL information as NIL. Standard
behaviour of hbpgsql library, until now, was to substitute NULL
as blank xBase value - thus :SetNull( .F. ) is the default setting.
; changes imported from https://github.com/alcz/harbour
2015-05-07 22:24 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/gtqtc/gtqtc.hbc
* added default Qt5 path in Ubuntu64
* contrib/gtqtc/gtqtc1.cpp
+ added support for horizontal wheel events
* do not try to load image when zero length string is used as image name
to refresh screen in HB_GTI_DISPIMAGE
* contrib/gtqtc/gtqtc.hbp
* added default Qt5 path in Ubuntu64
* debian/compat
* changed compatibility level from 5 to 9
* src/rdd/workarea.c
! do not use casting to functions with incompatible parameters.
Such casting does not work with some ABIs, i.e. when pascal
calling convention is used and called function should clean
parameters from the stack.
This modification should also pacify warnings generated by
recent GCC versions.
* contrib/hbct/dattime2.c
% minor optimization
* src/rdd/dbsql.c
; added somment with syntax info
* include/inkey.ch
* src/rtl/hbgtcore.c
+ added support for mouse wheel left and right events to base GT code
* config/linux/clang.mk
! fixed rule for dynamic library
* src/3rd/png/Makefile
+ added -DPNG_ARM_NEON_OPT=0 to build flags
* contrib/3rd/sqlite3/sqlite3.c
* contrib/3rd/sqlite3/sqlite3.diff
! pacified warning
* contrib/gtwvg/gtwvgd.c
* contrib/gtwvg/wvgwing.c
! fixed missing break/return in case statements - please verify it.
* contrib/hbct/dattime3.c
* added #define _DEFAULT_SOURCE necessay in new Linux distors
* contrib/hblzf/3rd/liblzf/liblzf.diff
* contrib/hblzf/3rd/liblzf/lzfP.h
* do not use nested #define in #if statements - some C compilers do not
support it
* contrib/hbssl/bio.c
! tuned #if condition
* contrib/hbmisc/hbeditc.c
* simpliefied for condition and pacified warning
* contrib/hbodbc/hbodbc.hbp
* contrib/sddodbc/sddodbc.hbp
+ added check for iodbc library
* utils/hbmk2/hbmk2.prg
+ added support for clang in android builds
* include/hbdefs.h
+ added check for __BYTE_ORDER__ macro used in some new lib C
implementations
* include/hbapi.h
* include/hbdefs.h
* include/hbstack.h
* include/hbvmpub.h
* src/vm/classes.c
* src/vm/dynsym.c
* src/vm/estack.c
* src/vm/memvars.c
+ extended the size of dynamic symbol table from 65535 to 4294967295.
Adopting class code I decided to keep current algorithm of method indexes
hashing with only some minor modifications. It's very fast anyhow it may
cause noticeable (though static) quite big memory allocation for class
definitions in applications using millions of symbols and which increase
dynamic symbol table at runtime loading new classes dynamically form .hrb,
.dll, .so or other dynamic libraries supported by Harbour. It's random
and rather impossible to exploit situation in real life anyhow I cannot
exclude it so I'd like to report it in ChangeLog. The solution is very
simple, i.e. it's enough to use classic divide et impera algorithm using
symbol numbers to find method definition anyhow it will be slower then
current one and address only very seldom hypothetical situations so I
decided to not implement it. Such static memory cost begins to be
completely unimportant in the world of 64-bit architectures and extremely
big memory address space.
The modification was sponsored by TRES company.
* src/vm/estack.c
! fixed __mvClear() in MT builds - due to stupid typo GetList variable
was removed in MT programs by CLEAR MEMORY command (__mvClear())
So far noone reported it and I've found it analyzing the code before
increasing symbol table size.
* contrib/hbwin/hbolesrv.c
* updated for new size of dynamic symbol table
* src/rtl/listbox.prg
! fix listbox scroll bar position calculation to not rely on
default Cl*pper compatible division by zero error handler.
Thanks to tarpauwatratar for the report and fix suggestion
on the developers list.
* contrib/hbdoc/hbdoc.prg
* contrib/hbformat/utils/hbformat.prg
* contrib/hbnetio/utils/hbnetio/hbnetio.prg
* package/harbour.mft
* package/harbour.rc
* src/compiler/hbusage.c
* utils/hbi18n/hbi18n.prg
* utils/hbtest/hbtest.prg
* bumped copyright year to 2020
* ChangeLog.txt
* function name typo + file case corrected
* contrib/hbformat/hbfmtcls.prg
! many fixes as suggested by Viktor Szakats and already applied to
his 3.4 fork
many fixes derived by usergroup threads
(fixed formatting in comments, codeblocks, operators, etc.)
! fixed case of unknown function as in pull request of Niko (nicolasrod)
https://github.com/harbour/core/pull/139
* contrib/hbformat/utils/hbformat.prg
* imported some enhancements from Viktor Szakats 3.4 fork:
. use hb_leftEq(), hb_vf*() functions where possible
. localization of message text
* contrib/hbwin/hbwin.hbx
* contrib/hbwin/wapi_shellapi.c
+ added the function wapi_ShellExecuteWait()
code by Antonino Perricone changed by me to be independent of FiveWin
https://groups.google.com/d/msg/harbour-users/w-fOOaC1M_g/K8B8jHgFCQAJ
Syntax:
wapi_ShellExecuteWait([<hWnd>], [<cOperation>], [<cFile>], [<cParameters>],
[<cWorkDirectory>], [<nShowCmd>]) ? nResult
The function acts as wapi_ShelleExecute() but it waits for the completion
before returning
* src/rtl/tmenusys.prg
* forced the menu system to not close current popup after menu action
suggestion by Mario Wan Stadnik, see at:
https://groups.google.com/d/topic/harbour-users/EEv1bKjci-Y/discussion