static void hb_cp_init( PHB_CODEPAGE cdp ) { HB_UCHAR * flags, * upper, * lower; int i; cdp->buffer = ( HB_UCHAR * ) hb_xgrab( 0x300 ); cdp->flags = flags = ( HB_UCHAR * ) cdp->buffer; cdp->upper = upper = ( HB_UCHAR * ) cdp->buffer + 0x100; cdp->lower = lower = ( HB_UCHAR * ) cdp->buffer + 0x200; for( i = 0; i < 0x100; ++i ) { flags[ i ] = 0; if( HB_ISDIGIT( i ) ) flags[ i ] |= HB_CDP_DIGIT; if( HB_ISALPHA( i ) ) flags[ i ] |= HB_CDP_ALPHA; if( HB_ISUPPER( i ) ) flags[ i ] |= HB_CDP_UPPER; if( HB_ISLOWER( i ) ) flags[ i ] |= HB_CDP_LOWER; upper[ i ] = ( HB_UCHAR ) HB_TOUPPER( i ); lower[ i ] = ( HB_UCHAR ) HB_TOLOWER( i ); } }
/* converts iChar to lower case */ int hb_charLower( int iChar ) { #ifndef HB_CDP_SUPPORT_OFF PHB_CODEPAGE cdp = hb_cdppage(); if( cdp && cdp->nChars ) return ( unsigned char ) cdp->s_lower[ (unsigned char) iChar ]; else #endif return HB_TOLOWER( iChar ); }
/* converts szText to lower case. Does not create a new string! */ char * hb_strLower( char * szText, ULONG ulLen ) { HB_TRACE(HB_TR_DEBUG, ("hb_strLower(%s, %lu)", szText, ulLen)); { ULONG i; #ifndef HB_CDP_SUPPORT_OFF PHB_CODEPAGE cdp = hb_cdppage(); if( cdp && cdp->nChars ) for( i = 0; i < ulLen; i++ ) szText[ i ] = ( char ) cdp->s_lower[ ( UCHAR ) szText[ i ] ]; else #endif for( i = 0; i < ulLen; i++ ) szText[ i ] = HB_TOLOWER( ( BYTE ) szText[ i ] ); } return szText; }
int hb_charLower( int iChar ) { return HB_TOLOWER( iChar ); }