2009-11-27 18:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/cdpapi.c
* harbour/include/hbextern.ch
+ added new .prg function:
HB_UTF8ASC( <cUtf8> ) -> <nUnicode>
* harbour/contrib/hbwin/olecore.c
% removed redundant call to SafeArrayGetDim()
This commit is contained in:
@@ -17,6 +17,15 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-11-27 18:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/src/rtl/cdpapi.c
|
||||
* harbour/include/hbextern.ch
|
||||
+ added new .prg function:
|
||||
HB_UTF8ASC( <cUtf8> ) -> <nUnicode>
|
||||
|
||||
* harbour/contrib/hbwin/olecore.c
|
||||
% removed redundant call to SafeArrayGetDim()
|
||||
|
||||
2009-11-27 16:05 UTC+0100 Maurilio Longo (maurilio.longo@libero.it)
|
||||
src/vm/fm.c
|
||||
- commented out section for OS/2 critical section usage
|
||||
|
||||
@@ -773,6 +773,8 @@ void hb_oleVariantToItem( PHB_ITEM pItem, VARIANT* pVariant )
|
||||
|
||||
#ifdef HB_OLE_PASS_POINTERS
|
||||
case VT_PTR:
|
||||
case VT_PTR | VT_BYREF:
|
||||
case VT_BYREF:
|
||||
hb_itemPutPtr( pItem, pVariant->n1.n2.n3.byref );
|
||||
break;
|
||||
#endif
|
||||
@@ -788,15 +790,15 @@ void hb_oleVariantToItem( PHB_ITEM pItem, VARIANT* pVariant )
|
||||
int iDim;
|
||||
|
||||
if( ( iDim = ( int ) SafeArrayGetDim( pSafeArray ) ) >= 1 )
|
||||
{
|
||||
long * plIndex = ( long * ) hb_xgrab( SafeArrayGetDim( pSafeArray ) * sizeof( long ) );
|
||||
{
|
||||
long * plIndex = ( long * ) hb_xgrab( iDim * sizeof( long ) );
|
||||
|
||||
hb_oleSafeArrayToItem( pItem, pSafeArray, iDim, plIndex );
|
||||
hb_xfree( plIndex );
|
||||
}
|
||||
else
|
||||
hb_arrayNew( pItem, 0 );
|
||||
break;
|
||||
break;
|
||||
}
|
||||
/* Fall through */
|
||||
}
|
||||
@@ -908,6 +910,12 @@ void hb_oleVariantUpdate( VARIANT* pVariant, PHB_ITEM pItem )
|
||||
*pVariant->n1.n2.n3.pdblVal = hb_itemGetTD( pItem ) - HB_OLE_DATE_BASE;
|
||||
break;
|
||||
|
||||
#ifdef HB_OLE_PASS_POINTERS
|
||||
case VT_PTR | VT_BYREF:
|
||||
pVariant->n1.n2.n3.byref = hb_itemGetPtr( pItem );
|
||||
break;
|
||||
#endif
|
||||
|
||||
case VT_BYREF | VT_VARIANT:
|
||||
hb_oleItemToVariantRef( pVariant->n1.n2.n3.pvarVal, pItem, NULL );
|
||||
break;
|
||||
|
||||
@@ -854,6 +854,7 @@ EXTERNAL HB_UTF8STUFF
|
||||
EXTERNAL HB_UTF8SUBSTR
|
||||
EXTERNAL HB_UTF8STRTRAN
|
||||
EXTERNAL HB_UTF8CHR
|
||||
EXTERNAL HB_UTF8ASC
|
||||
#endif
|
||||
EXTERNAL HB_ASCIIUPPER
|
||||
EXTERNAL HB_ASCIILOWER
|
||||
|
||||
@@ -2240,6 +2240,30 @@ HB_FUNC( HB_UTF8CHR )
|
||||
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
|
||||
}
|
||||
|
||||
HB_FUNC( HB_UTF8ASC )
|
||||
{
|
||||
const char *pszString = hb_parc( 1 );
|
||||
|
||||
if( pszString )
|
||||
{
|
||||
ULONG ulLen = hb_parclen( 1 );
|
||||
HB_WCHAR wc = 0;
|
||||
int n = 0;
|
||||
|
||||
while( ulLen-- )
|
||||
{
|
||||
if( utf8tou16nextchar( ( unsigned char ) *pszString++, &n, &wc ) )
|
||||
{
|
||||
if( n == 0 )
|
||||
break;
|
||||
}
|
||||
}
|
||||
hb_retnint( wc );
|
||||
}
|
||||
else
|
||||
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
|
||||
}
|
||||
|
||||
HB_FUNC( HB_STRTOUTF8 )
|
||||
{
|
||||
ULONG ulLen = hb_parclen( 1 ), ulDest = 0;
|
||||
|
||||
Reference in New Issue
Block a user