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:
Przemyslaw Czerpak
2009-11-27 17:40:49 +00:00
parent e10d60c65c
commit fd4bd6208f
4 changed files with 45 additions and 3 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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;