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 ); } }
static BOOL __HB_ISUPPER( UCHAR c ) { PHB_CODEPAGE __hb_cdp_page = hb_cdppage(); return __hb_cdp_page->nChars ? HB_ISUPPER( c ) || strchr( __hb_cdp_page->CharsUpper, c ) != NULL : HB_ISUPPER( c ); }