* 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
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
! hopefully make left ALT+[Y/Z] WM_SYSCHAR values handling aware
of QWERTZ layout. Should fix issues with Serbian Latin and similar
keyboards, while still retain the original fix for Greek layout.
References:
2016-07-04 19:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
8465bce36b
* 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
+ src/codepage/l_ee.h
+ src/codepage/l_lv.h
+ once again, sorry! actually those files were missing from the
previous
commit - instead of being moved - due to git kludges
* src/common/hbverdsp.c
* src/nortl/nortl.c
* use HB_MEM_STATISTICS instead of HB_MEM_USEDMAX to check if memory
statistic module is enabled in harbour compiler -build message
* include/dbinfo.ch
* src/rdd/dbf1.c
+ added DB_SETHEADER_EOL flag, it's used to force setting EOL marker
when header is written. In Harbour's DBF* RDDs is set in CLOSE()
method so just like in Clipper when DBF is closed and header has to
be updated the EOL() marker is set.
As side effect reducing header updates to minimal level (in such
case DBF header is not updated after APPEND what is safe for Harbour,
Clipper and compatible RDDs because they use file size to calculate
number of records but some other DBF drivers may be confused)
increase the APPEND speed and also forces EOL setting in all cases
when CLOSE() method is called. Header updates can be reduce to minimal
level by:
hb_rddInfo( RDDI_SETHEADER, DB_SETHEADER_MINIMAL )
* src/rdd/usrrdd/usrrdd.c
! fixed GPF in UsrRDD redirector for DROP(), EXISTS() and RENAME() methods
* src/vm/cmdarg.c
* use HB_MEM_STATISTICS instead of HB_MEM_USEDMAX to check if memory
statistic module is enabled in //info message
* 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
* bin/commit.hb
! fixed UTC offset formatting
* contrib/hbwin/win_os.prg
* updated win_osNetRegOk() for modern MS-Windows versions:
- on Win7 and upper set
System\CurrentControlSet\Services\LanmanServer\Parameters\DisableLeasing
to disable opportunistic locks.
- do not force SMB1 to disable oplocks on Win7 and upper - new MS-Win10
does not support SMB1 at all so this setting on the server with
such system completely disables SMB network and forcing SMB1 on the
client side blocks access to new Win10 servers.
Warning! this setting is still activated on Vista so it cannot
connect work with new Win10 but I do not know any other
working method to disable oplocks in Windows Vista.
* synced with Viktor's branch
* contrib/xhb/hbserv.c
! added missing return
* include/harbour.hbx
* src/harbour.def
* src/rtl/version.c
+ added new PRG functions:
hb_osIsWin7(), hb_osIsWin8(), hb_osIsWin81(), hb_osIsWin10()
* src/rtl/gttrm/gttrm.c
+ added autodetection for few other XTerm compatible terminals
+ respect color extension in TERM name of all XTerm compatible
terminals
* utils/hbmk2/hbmk2.prg
+ added support for -cpp=isoXX borowed from Viktor's branch
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* use -cpp=iso11 required for QT 5.7.0 or upper
* extended QT detection and partial syncing with Viktor's branch
* contrib/sddsqlt3/core.c
! fix DBUSEAREA() operation with SQLITE3 SDD to return empty result
when query conditions are false or the source table has no rows.
Previously an logically correct example caused RTE:
DBUSEAREA(,, "SELECT * FROM existing_table WHERE FALSE")
! fix double-free error in sqLite3Disconnect(), looks like the
sqlite3_close() return value checking was reverted, SQLITE_OK is 0
* use CDP API to get UTF8 string length
* use new sqlite3_prepare_v3() when built against
sqlite 3.20.0 or upper (change borrowed from Viktor's 3.4 fork)
+ add HB_SQLT3_MAP_DECLARED_EMULATED define (not yet enabled by default)
which make this SDD additionally parse SQLite column declarations.
Right now it can make HB_FT_DATE fields working using standard
ISO 8601 "yyyy-mm-dd" syntax. Also declarations not significant for
SQLite, but useful in xBase-style programming - SQL numeric(len,dec)
columns are detected in this mode and will be reflected in dbStruct().
+ add support for alternative StoD() like syntax for HB_FT_DATE columns
+ add support for ISO 8601 "YYYY-MM-DD HH:MM:SS.FFF" timestamp declared
columns, SQLite stored strings are converted to proper HB_FT_TIMESTAMP
fields
+ added HB_SQLT3_FIELDNAME_STRICT define, which enables shortening
of field to "name" if SQLite returns "table.name". Such fields are
not completly usable in xBase code - WA->T.FIELD syntax is not
valid, but FieldPos("t.field") is OK. I think it should be default
behaviour or some runtime setting should be introduced for convenience
when working with specific SQL queries.
* contrib/rddsql/sqlbase.c
* contrib/rddsql/sqlmix.c
+ added ZAP functionality to SQLBASE and SQLMIX RDDs,
index tags are preserved while ZAP-ing SQLMIX area.
They are cleaned, no REINDEX is needed
* changed to allow values of any type in "V" SIX3 / HB_FT_ANY fields
in SQLBASE/SQLMIX RDD workareas
* contrib/hbfoxpro/relfunc.c
! fix InList() FoxPro compatible function not looking at the last
parameter passed. Thanks to Attila Szabo for the information
posted on the developers list.
* README.md
* verified links to referenced libraries, go https where applicable.
Thanks to Pawel Wojciechowski for the location of ADS client
library.
* src/rtl/arc4.c
! fix builds on Alpine Linux and possibly others using musl libc,
which in turn doesn't expose deprecated sysctl() anymore.
* 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 2019
* contrib/gtwvg/wnd.prg
! Fixed: x,y,w,h values if aPos and aSize parameters were
containing negatve values.
* contrib/gtwvg/paint.prg
! Fixed to return proper color index if a compound color string
is supplied to wvt_GetRGBColorByString().
; Above patch provided by Jose Quintas - many thanks.
* contrib/gtwvg/wnd.prg
* contrib/gtwvg/activex.prg
! modified to honor plain hWnd as container window instead of an
WvgWnd() object.
* contrib/gtwvg/gtwvgd.c
+ added - HB_GTI_VIEWPORTHEIGHT and HB_GTI_VIEWPORTWIDTH handelling.
! Pacified some warnings reported by BCC-720.
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c
! Pacified some warnings reported by BCC-720.
* contrib/hbssl/hbssl.hbc
* made compliant also for Windows static builds
* ChangeLog.txt
* restored UTF-8 encoding after previous wrong commit (Sorry!!!)
* contrib/hbssl/hbssl.hbp
* added import libraries to link with OpenSSL current version
* contrib/hbcurl/hbcurl.hbp
* added import libraries to link with cUrl current version
* contrib/hbwin/wapi_winuser_1.c
* contrib/hbwin/hbwin.hbx
* added wapi_ShowWindow() wrapper
* contrib/xhb/hbxml.c
! fixed the lacking of correct settings of previous node in
mxml_node_insert_before(), that was causing the omitting
of the inserted nodes in saves and searches.
* include/harbour.hbx
* include/hbchksum.h
* src/harbour.def
* src/rtl/hbmd5.c
+ added new C function
void hb_hmac_md5( const void * key, HB_SIZE nKeyLen,
const void * message, HB_SIZE nMsgLen,
char * digest );
+ added new PRG function
HB_HMAC_MD5( <cMessage>, <cKey> ) -> <cMAC>
; HMAC MD5 is used in some authentication methods i.e. CRAM-MD5
authentication in SMTP protocol
* src/rtl/gttrm/gttrm.c
+ enable extended XTERM colors automatically when xterm-16color,
xterm-256color, xterm+256color, xterm-88color, rxvt-16color,
rxvt-256color, rxvt-98color or putty terminal is detected
+ added support for HB_GTI_SCREENDEPTH
* contrib/gtqtc/gtqtc1.cpp
+ set clipboard data also into selection buffer on platforms which
support it
+ when main clipboard buffer is empty retrieve clipboard data from
selection buffer and if it's empty too from find buffer
* include/harbour.hbx
* src/harbour.def
* src/vm/memvars.c
+ added new PRG function
__mvGetDef( <cMemvar> [, <xDefault> ] ) -> <xValue>
it works in similar way to __mvGet() but if <cMemvar> does
not exist then it returns <xDefault> or NIL instead of RTE
* contrib/hbwin/hbwin.hbx
+ added missing declarations for win_osIs10() and win_osIs81()
* contrib/hbssl/ssl.c
! fixed compilation with OpenSSL < 0.9.8k
* contrib/sddodbc/core.c
* pacified warning
* contrib/xhb/hbxml.c
* contrib/xhb/hbxml.h
! fixed CDATA terminator, it should be "]]>" instead of " ]]>"
+ added support for HBXML_STYLE_NONEWLINE flag
* src/3rd/pcre/Makefile
! typo wince -> wce
* src/main/Makefile
* use harbour.rc only in MS-Windows builds - it fixes OS2 OpenWatcom
builds
* config/global.mk
! in DOS builds check if the 'uname' exists before running it
* include/hbapigt.h
* include/hbgtcore.h
* src/rtl/hbgtcore.c
* src/rtl/inkey.c
* src/rtl/inkeyapi.c
* contrib/xhb/xhbfunc.c
+ added 3-rd parameter to hb_inkeySetText() function. When this parameter
is true then ';' is not translated to Chr( 13 ) but DOS and UNIX EOLs
are translated to Chr( 13 )
+ added logical parameter to HB_GTI_CLIPBOARDPASTE which allows to set
text without ';' translation but with platform independent EOLs
* src/rtl/memoedit.prg
* utils/hbmk2/hbmk2.prg
* contrib/hbnetio/utils/hbnetio/_console.prg
* extras/dbu/dbu52.patch
* extras/dbu/dbu53.patch
* use hb_gtInfo( HB_GTI_CLIPBOARDPASTE, .T. ) instead of
hb_gtInfo( HB_GTI_CLIPBOARDPASTE ) for pasting data from clipboard
with platform independent EOLs and ';' characters
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/ssl.c
+ Added function SSL_set_tlsext_host_name() which is needed to access
a virtual host when using HTTPS.
See https://en.wikipedia.org/wiki/Server_Name_Indication
+ Added function SSL_set_verify().
* src/rtl/fstemp.c
! hb_fsTempName() was not returning a valid temp name on OS/2
* include/hbapi.h
* src/common/hbver.c
* src/harbour.def
* contrib/hbwin/win_osc.c
* synced Windows version detection code with Viktor's work in 3.4
* src/main/Makefile
+ src/main/harbour.rc
* include Windows manifest in standalone compiler - "harbour.exe /build"
should now correctly report Windows 10. "yourapp.exe //build" plus
in-app results still depend on manual manifest inclusion within .rc
* package/harbour.mft
+ added version manifest to Harbour compiler binaries, which is more
important on Windows 10 builds, to not include false Windows version
in build info.
This doesn't affect programs built with Harbour, where similar manifest
should be included or not, according to your needs.
* utils/hbmk2/hbmk2.prg
* define _UNICODE (activates unicode C RTL functions in OpenWatcom
and some MS C compilers) together with UNICODE in -winuni mode.
Similar change was done in Viktor's forked Harbour 3.4. Harbour
core/contrib code doesn't use any of these C RTL, but in most 3rd
party code it's expected that these are enabled both.
* README.md
* config/global.mk
* contrib/gtwvw/doc/gtwvw.txt
* contrib/hbwin/tests/ole.prg
* contrib/hbzebra/tests/cairo.prg
* contrib/hbzebra/tests/harupdf.prg
* contrib/hbzebra/tests/wingdi.prg
* package/harbour-wce.spec.in
* package/harbour-win.spec.in
* package/harbour.rb
* package/harbour.spec
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
* src/3rd/zlib/ChangeLog.txt
* src/compiler/hbusage.c
* src/pp/hbpp.c
* tests/html.prg
* changed Harbour Project website URL references to
https://harbour.github.io/
This change is very symbolic mark of time passing, but it had to be
done. Original harbour-project.org domain went out from reach
together with Phil Barnett passing away on April 16, 2015.
Respect Phil, RIP.
Phil's efforts are directly tied to The Harbour Project origins.
To memorize him, please take a tour to archived The Oasis
https://harbour.github.io/the-oasis/
* contrib/hbnetio/netiocli.c
! fix spontaneous Error 1003 in NETIO client code failing to receive
full length of incoming data packet. Such odd behaviour was spotted
on Windows.
* include/hbapiitm.h
* src/rtl/hbdef.c
* src/vm/itemapi.c
* src/harbour.def
+ added new public C function
HB_BOOL hb_itemTypeCmp( PHB_ITEM pItem1, PHB_ITEM pItem2 );
which uses low level item type comparison code taken from hb_default()
and hb_defaultValue() PRG functions
* include/harbour.hbx
* src/harbour.def
* src/vm/hashfunc.c
+ added new PRG function
hb_HSetDef( <hVal>, <xKey> [, <xDefVal> ] )
it checks if <xKey> exists and if not then adds it to hash array
and optionally sets key value to <xDefVal> otherwise (the key
exists in hash array) and <xDefVal> is given then it checks if
the type of key's value is compatible with <xDefVal> and if not
then replaces key's value with <xDefVal>.
In other words it's combination of hb_HGetDef() and hb_default()
and works like this PRG code:
FUNCTION hb_HSetDef( hVal, xKey, xDefVal )
IF xKey $ hVal
hb_default( @hVal[ xKey ], xDefVal )
ELSE
hVal[ xKey ] := xDefVal
ENDIF
RETURN hVal
but much faster.
* src/rtl/dirscan.prg
* remove READONLY attribute from deleted directories.
Be careful. Now this function allows to recursively remove
all directories even if they have READONLY attribute.
* contrib/hbexpat/3rd/expat/loadlibr.c
! define _UNICODE macro when UNICODE is also defined - it should be fixed
in EXPAT core code. It fixes Windows builds.
* contrib/hbexpat/3rd/expat/xmlparse.c
! restored fix for WINCE builds
* contrib/hbtip/client.prg
! restored #undef __HBEXTREQ__ before #include "hbssl.hbx".
It fixes non SSL builds and binding HBTIP with all HBSSL
functions.
* contrib/hbexpat/hbexpat.hbc
* added /usr/local/opt/expat/lib library path to darwin builds
(synced with Viktor's 3.4 branch)
* config/darwin/clang.mk
* config/darwin/gcc.mk
* config/darwin/global.mk
* config/darwin/icc.mk
* config/darwin/libs.mk
* utils/hbmk2/hbmk2.prg
* synced with Viktor's modifications in 3.4 branch:
; 2017-11-11 13:14 UTC Viktor Szakats:
* switch to call the C compiler to link dynamic libs on darwin,
which is the recommended way to do this, as suggested by Apple.
This also aligns the platform better with other *nix platforms.
'libtool' was used before, but that started having intermittent
issues around Sierra (mitigated by disabling parallel build),
which returned and got worse in High Sierra (with no remedy).
The symptom was 'ld: file not found: ' errors with the filename
not shown or appearing as garbage, then a 'libtool: internal link
edit command failed'. This was reported and will be fixed in a
future Xcode release.
Ref: Apple Radar 34944562
* config/global.mk
* config/rules.mk
+ added new user build envvar HB_USER_DCFLAGS
It allows to set C compiler parameters to compile .c code for
dynamic libraries.
* src/rtl/hbsocket.c
! fixed fcntl(F_SETFL) 3-rd parameter in hb_socketSetBlockingIO(),
By mistake I used long instead of int. it created problem on big
endian 64 bit machines.
* include/hbgtcore.h
* src/rtl/hbgtcore.c
+ added new C functions for GT programmers:
void hb_gt_BaseUnlock( PHB_GT pGT );
void hb_gt_BaseLock( PHB_GT pGT );
void hb_gtSleep( PHB_GT pGT, double dSeconds );
* src/rtl/hbgtcore.c
* src/rtl/gtcrs/gtcrs.c
* src/rtl/gtdos/gtdos.c
* src/rtl/gtgui/gtgui.c
* src/rtl/gtos2/gtos2.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtsln/gtsln.c
* src/rtl/gtstd/gtstd.c
* src/rtl/gttrm/gttrm.c
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* src/rtl/gtxwc/gtxwc.c
* use new functions to unblock GT when low level TONE() code is
executed. It allows other threads to access shared GT driver
when one of them executes TONE()
* contrib/hbexpat/hbexpat.hbx
* regenerated automatically
* contrib/hbamf/amfenc.c
* update amf3_Encode() serialize function with great idea of Przemek
implemented recenly in hb_Serialize(). Checking garbage collector
reference count can save time here too, unique arrays and hashes won't
be indexed as references.
* contrib/hbexpat/3rd/expat/*
! updated to 2.2.5 (from 2.2.1) using 3rdpatch.hb, expat.diff from
Viktor's 3.4 fork was used - but (again) adapted for DOS 8.3 naming
scheme. Also i've kept local patches for WinCE, OpenWatcom DOS/OS2,
please test. Compilation in CPP mode is explicitly disabled for libexpat
now, as upstream decided to ignore such use cases completly.
* contrib/hbexpat/*
* synced with Viktor's 3.4 fork
+ include/hbarc4.h
* src/harbour.def
+ export ARC4 core routines like in 3.4 fork, updated expat lib reuses it.
* contrib/hbtip/hbtip.hbp
! adapt *.hbx file specifier to hbmk2 3.2 syntax