* 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
* contrib/xhb/hbxml.c
! fixed the compliance to the element tag naming rules:
. the element name must begin with alpha or underscore characters
. the element name can contain also period characters
. the closing tag can contain spaces between the name and the closing bracket
* config/win/global.mk
* utils/hbmk2/hbmk2.prg
! moved winmm library before kernel32. This fixes Harbour compile and
application run on Win7 and previous Windows versions if latest MinGW
is used.
; Win8+ exports timeGetTime() from both kernel32.dll and winmm.dll.
Previous windows version exports this function only from winmm.dll.
See discussion at https://github.com/msys2/MINGW-packages/issues/4984
* utils/hbmk2/hbmk2.prg
! Fixed dependency detection. Setting HB_WITH_<package>=local was ignored
if packages were detected using pkg-config
* contrib/hbexpat/3rd/expat/siphash.h
! fixed compile error for BCC <= 5.6
* rediffed