* contrib/hbct/dattime3.c
! fixed in block variable declaration for strict ANSI C compat
* code formatting
; both borrowed from Viktor's fork, thanks
aa4665f16fd9f37296b0
* src/rdd/dbcmd.c
* note about C5.3/5.2 DBAPPEND( [<lUnlockAll>=.t.] ) updated again
upon Przemek notification, thanks
* contrib/hbwin/olecore.c
* pacified false MSVC warning. It's very seldom situation that I'm adding
code to pacify false compiler warnings anyhow in this case it cost in
practice nothing so I decided to do that.
* contrib/xhb/hboutdbg.c
* src/rtl/gtcrs/gtcrs.c
* NULL pointer casting to pacify warning
* src/pp/hbpp.c
% do not created new iLen variable but reuse the one previously declared
* src/vm/classes.c
% allocate puiMsgIdx as array of HB_USHORT items instead of HB_SYMCNT.
This modification only reduces the memory usage and has no effect on
number of accepted symbols.
* changed 'HB_SYMCNT uiHashKey' to 'HB_SIZE nHashKey' to avoid explicit
casting in the code
* contrib/hbssl/hbssl.hbm
* added -Wno-error=deprecated-declarations to suppress errors in Solaris
strict builds compiled with -Werror
EVP_des_*() except EVP_des_ede3*()), EVP_desx_*(), EVP_rc[24]*() and
EVP_md[245]*() are deprecated
* include/hbdate.h
* src/common/hbdate.c
* src/harbour.def
+ added new C functions:
HB_BOOL hb_timeStrGetUTC( const char * szTime,
int * piHour, int * piMinutes,
int * piSeconds, int * piMSec,
int * piUTCOffset );
HB_BOOL hb_timeStampStrGetUTC( const char * szDateTime,
int * piYear, int * piMonth,
int * piDay, int * piHour,
int * piMinutes, int * piSeconds,
int * piMSec, int * piUTCOffset );
They can decode timestamp value with ISO 8601 UTC offset.
* src/common/hbdate.c
* use hb_timeStampStrGetUTC() in hb_timeStampStrGetDT() and return UTC
time if it was with UTC offset
Now Harbour compiler accept timestamp strings with with UTC offset, i.e.
? t"2025-01-22 00:45 UTC+0100" // => 2025-01-21 23:45:00.000
Also HB_StrToTS() supports it.
* src/pp/hbpp.c
* use new hb_timeStampStrGetDT() to decode timestamp from ChangeLog to
build revision number. It also fixes bug with decoding negative UTC
offsets.
* contrib/hbcurl/core.c
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/hbcurl.hbx
* applied more cleanups, following Viktor Szakats guidance in hisrepo:
6127603217
- add `HB_CURLM_ERROR` to indicate error in hbcurl wrapper.
- replace use of `HB_CURLM_INTERNAL_ERROR` with `HB_CURLM_ERROR`.
- sync Harbour variable integer sizes with curl ones.
- tidy up a variable scopes.
- drop unused variable.
- omit `hb_ret()` (it's a no-op).
- formatting.
- add functions to `hbcurl.hbx`.
+ add curl_ws_send()/curl_ws_recv() - WebSocket connectivity,
borrowed from Viktor's fork, thanks again!
2c71a5c940
* src/rdd/dbcmd.c
* note about C5.3 and Harbour extensions to
DBAPPEND( [<lUnlockAll>=.t.] ), thanks Viktor
* ChangeLog.txt
! typos
* utils/hbmk2/hbmk2.prg
* do not interrupt whole build process when optional dependency package
is disabled explicitly by -depcontrol=<optdeppkg>:no
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* respect QT_SELECT envvar looking for QT dependencies
* .github/workflows/windows-ci.yml
* install freeimage only in 64-bit environment,
it's not available in the 32-bit one
* contrib/3rd/sqlite3/sqlite3.hbp
* use -Wno-unknown-warning-option to pacify problems with old
clang versions which do not understand -Wno-stringop-overread
* contrib/3rd/sqlite3/sqlite3.hbp
* do not enable -Wno-error=stringop-overread C compiler flag in MS-Windows
clang builds and HB_BUILD_TEST='strict' - this C clang version does not
support it
* .github/workflows/windows-ci.yml
* disabled global -Wno-error=... C compiler parameters
* set HB_BUILD_TEST="${{matrix.strictness}}" envvar
* contrib/3rd/sqlite3/sqlite3.hbp
* set -Wno-error=stringop-overread C compiler parameter for GCC builds
when HB_BUILD_TEST='strict'
* contrib/hbzebra/hbzebra.hbp
* set -Wno-error=array-bounds C compiler parameter for GCC builds
when HB_BUILD_TEST='strict'
* include/hbapifs.h
! added missing declaration for hb_fileParamGet()
* include/hbgtcore.h
* added HB_EXPORT attribute for hb_gt_getClipboard(), hb_gt_setClipboard()
and hb_gt_dos_keyCodeTranslate()
* include/hbrdddbf.h
! removed declaration for hb_dbfTranslateRec() function - this functions
was removed many years ago
* include/harbour.hbx
* src/harbour.def
! fixed order of declared functions - they should be sorted.
* contrib/hbssl/evp.c
* clear key and iv buffers before passing them to EVP_BytesToKey()
otherwise some uninitialized bytes are accessed and valgrind reports
uninitialized memory access
* contrib/hbssl/evpciph.c
! fixed typo in index in my previous commit
* contrib/hbssl/tests/digest.prg
! use OPENSSL_VERSION_NUMBER() instead OPENSSL_VERSION() to retrieve
OpenSSL version number
* contrib/hbssl/tests/inetssl.prg
* updated to use 2048 RSA certificates instead of 1024 ones which are
no more supported by modern OpenSSL libraries
* contrib/hbssl/tests/pem.prg
* cleaned output
* contrib/hbssl/bio.c
! added missing BIO_free() call in HB_BIO destructor
! fixed BIO_free() function to properly operate on HB_BIO structure
* contrib/hbssl/evp.c
! fixed EVP_PKEY_free() to work with Harbour GC pointer items instead of
raw pointer items
* contrib/hbssl/evpciph.c
! fixed EVP_SealInit() and EVP_OpenInit() to work with Harbour GC pointer
items instead of raw pointer items
* contrib/hbssl/hbssl.h
* contrib/hbssl/rsa.c
* contrib/hbssl/evppkey.c
+ added new C functions:
void hb_RSA_par_free( int iParam );
EVP_PKEY * hb_EVP_PKEY_get( PHB_ITEM pItem );
void hb_EVP_PKEY_free( PHB_ITEM pItem );
* contrib/hbssl/evppkey.c
! fixed EVP_PKEY_assign_RSA to work with RSA Harbour GC pointer
item instead of raw pointer items
* contrib/hbssl/pem.c
! redirect old dummy functions to current ones using Harbour GC pointer
items:
PEM_read_bio_PrivateKey() => PEM_read_PrivateKey()
PEM_read_bio_PUBKEY() => PEM_read_PUBKEY()
PEM_read_bio_X509() => PEM_read_X509()
PEM_read_bio_X509_AUX() => PEM_read_X509_AUX()
Now they should work.
; above are only few fixes for chosen problems and still there are many
others, most of HBSSL code should be rewritten from scratch to work
with OpenSSL 3.x API
* contrib/hbssl/bio.c
! added missing BIO_free() call in HB_BIO destructor
! fixed BIO_free() function to properly operate on HB_BIO structure
* contrib/hbssl/evpciph.c
! accept EVP_KEY Harbour pointer items in EVP_SealInit()
* contrib/hbssl/hbssl.h
* contrib/hbssl/rsa.c
* contrib/hbssl/evppkey.c
! accept EVP_KEY Harbour pointer items in EVP_PKEY_assign_RSA()
; above are only few fixes for chosen problems and still there are many others
; most of HBSSL code should be rewritten to work with OpenSSL 3.0 API
* src/rtl/listbox.prg
* merged #371 from Kamil, thanks for the patch.
Applied minor reformat .NOT. -> ! and added a comment
about buggy ListBox:hitTest() on no-box dropdown in
Cl*pper 5.3.
* src/rtl/listbox.prg
! fixed nTop not being incremented in ListBox:hitTest() for no-box dropdown
* replaced inconsistent references to ::nTop with nTop
* renamed variables to better reflect their role
* contrib/hbcurl/hbcurl.ch
* updated HB_CURLOPT_SSL_OPTIONS: HB_CURLSSLOPT_*
+ added HB_CURLMSG_RESP_HANDLE, HB_CURLMSG_RESP_HPOS
mappings of array elements returned by
curl_multi_info_read( <hMulti>[, <aHandles> ]) -> <aResults>
* contrib/hbcurl/core.c
* adapted @emazv72 contribution from:
https://github.com/vszakats/hb/pull/344
Many thanks, it could be useful for managing multiple transfers,
by extending some kind of Inkey() loop or in many other
scenarios.
+ added curl lib version guards
* minor code and code formattings
+ extended function
curl_multi_info_read( <hMulti>[, <aHandles> ]) -> <aResults>
with a possibility to return real GC pointer of specific
transfer related to reported event. <aHandles> should be
specified if this is expected.
+ contrib/hbcurl/tests/multi.prg
+ demo of the additions
* src/common/hbver.c
* indent cleanup
* src/rtl/filesys.c
* src/rtl/fssize.c
! restore dynamic calling of GetFileAttributesEx() on
Windows (significant only on very old systems)
* config/global.mk
* config/win/clang-noauto.mk
* config/win/clang.mk
* supplemented config for Windows clang cross compilers
distributed in multilib fashion, like Martin Storsjo's:
https://github.com/mstorsjo/llvm-mingw
+ HB_CCPREFIX= support for clang on Windows, you can build
ARM64 Harbour from AMD64 hosts using mentioned toolchain:
set PATH=C:\llvm-mingw\bin;%PATH%
set HB_COMPILER=clang
win-make (build for your host first)
set HB_CCPREFIX=aarch64-w64-mingw32-
set HB_HOST_BIN=<HarbourPath>\bin\win\clang\ (if not autodetected)
win-make
; cross compiling from Unix hosts is not yet tested, but
looks very close to be possible
! fixed typo's
* utils/hbmk2/hbmk2.prg
* changed llvm-ar call to also respect HB_CCPREFIX
* src/rtl/hbproces.c
! in process creating functions like hb_processRun(), *Open(),
on Android: don't use setuid( getuid() ) method for resetting
attributes as it rises "Bad system call" and the process is not
executed. This fixes building Harbour in hbmk2 stage on Android
device itself (for example using Termux) and can fix deploying
multi-process Android apps. For devices older than Android 8,
where the kernel was not hardened, please report any regresions,
if you have such multi-process deployments.
* ChangeLog.txt
% stripped spaces before EOLs
Changes to be committed:
modified: ChangeLog.txt
modified: contrib/rddsql/sqlbase.c
modified: contrib/rddsql/sqlmix.c
+ added support to timestamp field type.
You can now use "@" in DbCreate as the timestamp field type.
Thanks to Grigory Filatov for fixing crash!
* src/compiler/harbour.y
* src/macro/macro.y
* replaced depreciated bison macro %pure-parser with %define api.pure
* src/compiler/complex.c
* src/macro/macrolex.c
* src/compiler/harbour.y
* src/macro/macro.y
* replaced depreciated bison macro %name-prefix with %define api.prefix
; Warning: now Bison 2.6 or newer is required to regenerate Harbour grammar
files. If someone wants/needs to work with older bison versions
then it's enough to restore depreciated macros, Harbour compiler
and macros lexers will work with both versions.
* src/compiler/harbour.yyc
* src/compiler/harbour.yyh
* src/macro/macro.yyc
* src/macro/macro.yyh
* regenerated with Bison 3.02 (the same as before)
* re-added HB_SYMBOL_UNUSED( yynerrs ) to pacify some compilers warnings
* contrib/xhb/hbcompat.ch
! fixed HSetAACompatibility() #xtranslate
* contrib/hbzebra/code39.c
* pacified warning, it's also fix for possible buffer overflow.
* include/hbcomp.h
* src/compiler/genc.c
* src/compiler/hbmain.c
* replaced function hb_compFunctionMarkStatic() with
hb_compFunctionSetScope()
* src/compiler/genc.c
* detect public prg functions written in C inside
#pragma BEGINDUMP / #pragma ENDDUMP and mark them as LOCAL ones
* src/vm/hvm.c
! removed my pseudo fix from 2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak.
It was ugly hack which can work only with some linkers.
This modification fixes FILE() function used with C functions written
without own symbol table
* src/rdd/dbf1.c
* minor code formatting
* contrib/xhb/hbcompat.ch
! fixed HSetAACompatibility() #xtranslate
* contrib/hbzebra/code39.c
* pacified warning, it's also fix for possible buffer overflow.
* include/hbcomp.h
* src/compiler/genc.c
* src/compiler/hbmain.c
* replaced function hb_compFunctionMarkStatic() with
hb_compFunctionSetScope()
* src/compiler/genc.c
* detect public prg functions written in C inside
#pragma BEGINDUMP / #pragma ENDDUMP and mark them as LOCAL ones
* src/vm/hvm.c
! removed my pseudo fix from 2023-01-30 15:18 UTC+0100 Przemyslaw Czerpak.
It was ugly hack which can work only with some linkers.
This modification fixes FILE() function used with C functions written
without own symbol table
* src/rdd/dbf1.c
* minor code formatting