2024-02-09 20:56 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* 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> )
This commit is contained in:
@@ -64,12 +64,14 @@ HB_EXTERN_BEGIN
|
||||
#define EDBCMD_SEEK_BADPARAMETER 1001
|
||||
#define EDBCMD_NOALIAS 1002
|
||||
#define EDBCMD_NOVAR 1003
|
||||
#define EDBCMD_REL_BADPARAMETER 1004
|
||||
#define EDBCMD_USE_BADPARAMETER 1005
|
||||
#define EDBCMD_REL_BADPARAMETER 1006
|
||||
#define EDBCMD_ORD_BADPARAMETER 1006
|
||||
#define EDBCMD_ORDLSTADD_BADPARAMETER 1008
|
||||
#define EDBCMD_FIELDNAME_BADPARAMETER 1009
|
||||
#define EDBCMD_BADALIAS 1010
|
||||
#define EDBCMD_DUPALIAS 1011
|
||||
#define EDBCMD_REL_SAMEALIAS 1013
|
||||
#define EDBCMD_DBCMDBADPARAMETER 1014
|
||||
#define EDBCMD_BADPARAMETER 1015
|
||||
#define EDBCMD_INFOBADPARAMETER 1032
|
||||
|
||||
@@ -261,6 +261,7 @@ typedef enum
|
||||
HB_F_CTOD,
|
||||
HB_F_DATE,
|
||||
HB_F_DAY,
|
||||
HB_F_DBSELECTAREA,
|
||||
HB_F_DELETED,
|
||||
HB_F_DEVPOS,
|
||||
HB_F_DOW,
|
||||
@@ -329,6 +330,7 @@ typedef enum
|
||||
HB_F_BITTEST,
|
||||
HB_F_BITNOT,
|
||||
HB_F_ARRAYTOPARAMS,
|
||||
HB_F_PISBYREF,
|
||||
HB_F_I18N_GETTEXT,
|
||||
HB_F_I18N_GETTEXT_STRICT,
|
||||
HB_F_I18N_GETTEXT_NOOP,
|
||||
|
||||
@@ -2140,6 +2140,31 @@ static HB_EXPR_FUNC( hb_compExprUseFunCall )
|
||||
HB_GEN_FUNC3( PCode3, HB_P_ARRAYDIM, HB_LOBYTE( usCount ), HB_HIBYTE( usCount ) );
|
||||
break;
|
||||
}
|
||||
else if( pSelf->value.asFunCall.pFunName->value.asSymbol.funcid == HB_F_SELECT && usCount == 0 )
|
||||
{
|
||||
HB_GEN_FUNC1( PCode1, HB_P_PUSHALIAS );
|
||||
break;
|
||||
}
|
||||
#ifndef HB_MACRO_SUPPORT
|
||||
else if( pSelf->value.asFunCall.pFunName->value.asSymbol.funcid == HB_F_PISBYREF && usCount == 1 &&
|
||||
pSelf->value.asFunCall.pParms->value.asList.pExprList->ExprType == HB_ET_VARREF )
|
||||
{
|
||||
PHB_HFUNC pFunc = HB_COMP_PARAM->functions.pLast;
|
||||
int iVar, iScope;
|
||||
|
||||
hb_compVariableFind( HB_COMP_PARAM, pSelf->value.asFunCall.pParms->value.asList.pExprList->value.asSymbol.name,
|
||||
&iVar, &iScope );
|
||||
|
||||
if( pFunc->wParamCount && ( pFunc->funFlags & HB_FUNF_USES_LOCAL_PARAMS ) != 0 &&
|
||||
iScope == HB_VS_LOCAL_VAR && ( HB_USHORT ) iVar <= pFunc->wParamCount )
|
||||
{
|
||||
HB_COMP_EXPR_FREE( pSelf->value.asFunCall.pParms );
|
||||
pSelf->value.asFunCall.pParms = hb_compExprNewLong( iVar, HB_COMP_PARAM );
|
||||
}
|
||||
else
|
||||
hb_compErrorRefer( HB_COMP_PARAM, NULL, pSelf->value.asFunCall.pParms->value.asList.pExprList->value.asSymbol.name );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
HB_GEN_FUNC2( PushFunCall, pSelf->value.asFunCall.pFunName->value.asSymbol.name,
|
||||
pSelf->value.asFunCall.pFunName->value.asSymbol.flags );
|
||||
@@ -2174,8 +2199,22 @@ static HB_EXPR_FUNC( hb_compExprUseFunCall )
|
||||
HB_BOOL fArgsList = HB_FALSE;
|
||||
HB_USHORT usCount = 0;
|
||||
|
||||
if( pSelf->value.asFunCall.pParms )
|
||||
{
|
||||
usCount = ( HB_USHORT ) hb_compExprParamListCheck( HB_COMP_PARAM, pSelf->value.asFunCall.pParms );
|
||||
fArgsList = pSelf->value.asFunCall.pParms->ExprType == HB_ET_MACROARGLIST;
|
||||
}
|
||||
|
||||
if( pSelf->value.asFunCall.pFunName->ExprType == HB_ET_FUNNAME )
|
||||
{
|
||||
if( pSelf->value.asFunCall.pFunName->value.asSymbol.funcid == HB_F_DBSELECTAREA && usCount == 1 &&
|
||||
( pSelf->value.asFunCall.pParms->value.asList.pExprList->ExprType == HB_ET_FUNREF ||
|
||||
hb_compExprIsInteger( pSelf->value.asFunCall.pParms->value.asList.pExprList ) ) )
|
||||
{
|
||||
HB_EXPR_USE( pSelf->value.asFunCall.pParms, HB_EA_PUSH_PCODE );
|
||||
HB_GEN_FUNC1( PCode1, HB_P_POPALIAS );
|
||||
break;
|
||||
}
|
||||
HB_GEN_FUNC2( PushFunCall, pSelf->value.asFunCall.pFunName->value.asSymbol.name,
|
||||
pSelf->value.asFunCall.pFunName->value.asSymbol.flags );
|
||||
}
|
||||
@@ -2185,13 +2224,8 @@ static HB_EXPR_FUNC( hb_compExprUseFunCall )
|
||||
HB_GEN_FUNC1( PCode1, HB_P_PUSHNIL );
|
||||
}
|
||||
|
||||
if( pSelf->value.asFunCall.pParms )
|
||||
{
|
||||
usCount = ( HB_USHORT ) hb_compExprParamListCheck( HB_COMP_PARAM, pSelf->value.asFunCall.pParms );
|
||||
fArgsList = pSelf->value.asFunCall.pParms->ExprType == HB_ET_MACROARGLIST;
|
||||
if( usCount )
|
||||
HB_EXPR_USE( pSelf->value.asFunCall.pParms, HB_EA_PUSH_PCODE );
|
||||
}
|
||||
if( usCount )
|
||||
HB_EXPR_USE( pSelf->value.asFunCall.pParms, HB_EA_PUSH_PCODE );
|
||||
|
||||
if( fArgsList )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user