Atualizações Harbour 3.2 17/10/2022
Enviado: 17 Out 2022 18:42
Olá!
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
2022-10-17 20:28 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* ChangeLog.txt
* fixed log entry order
2022-10-17 20:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbcurl/hbcurl.hbm
* updated system include path for new Linux distributions
2022-10-17 20:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/harbour.hbx
* src/harbour.def
* src/rdd/dbcmd.c
+ added two new functions:
hb_FieldGet( <cFieldName> | <nFieldPos> )
-> <xFieldValue> | NIL
hb_FieldPut( <cFieldName> | <nFieldPos>, <xFieldValue> )
-> <xFieldValue> | NIL
They works like FieldGet() and FieldPut() but allows to use field
name instead of field index.
2022-10-17 19:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rdd/workarea.c
* pacified warning
2022-10-17 19:57 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbvm.h
* include/harbour.hbx
* src/harbour.def
* src/vm/hvm.c
+ added new C function:
extern HB_EXPORT HB_BOOL hb_vmSetKeyPool( HB_BOOL fEnable );
It allows to disable keyboard pooling by GT driver in main HVM loop.
It's important in programs which mix GT terminal with GUI library
which use common event loop. Many GUI objects are not reentrant
safe and activating event loop during big changes may cause crash.
Such things can happen in applications which try to mix HBQT
and GTQTC. To avoid such problems before PRG code is called it's
enough to disable keyboard pooling in main HVM loop, eg.
if( hb_vmRequestReenter() )
{
HB_BOOL fKeyPool = hb_vmSetKeyPool( HB_FALSE );
hb_vmPushEvalSym();
hb_vmPush( pBlockItm );
hb_vmSend( 0 );
hb_vmSetKeyPool( fKeyPool );
hb_vmRequestRestore();
}
+ added new PRG function:
__vmKeyPool( [<fEnable>] ) -> <fPrevState>
It's PRG interface to above C function. If application uses GT driver
and GUI library using the same event loop and such GUI library does not
disable keyboard pooling in main HVM loop before PRG code is activated
then it's enough to call this function at the beginning of application,
eg.
PROCEDURE INIT Clip()
__vmKeyPool( .f. )
RETURN
With above peace of code you can mix HBQT or other QT wrapper with GTQTC.
Código: Selecionar todos
itamar@itamar-desktop:~/dev$ cd hb32
itamar@itamar-desktop:~/dev/hb32$ git pull
remote: Enumerating objects: 55, done.
remote: Counting objects: 100% (55/55), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 40 (delta 35), reused 35 (delta 30), pack-reused 0
Unpacking objects: 100% (40/40), 7.37 KiB | 3.00 KiB/s, done.
From https://github.com/harbour/core
908527c..95f01c2 master -> origin/master
Updating 908527c..95f01c2
Fast-forward
ChangeLog.txt | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
contrib/hbcurl/hbcurl.hbm | 1 +
include/harbour.hbx | 3 +++
include/hbvm.h | 2 ++
src/harbour.def | 4 ++++
src/rdd/dbcmd.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
src/rdd/workarea.c | 9 ++++++++-
src/vm/hvm.c | 51 ++++++++++++++++++++++++++++++++++++++++++---------
8 files changed, 168 insertions(+), 10 deletions(-)
Itamar M. Lins Jr.