示例#1
0
文件: cp_utf8.c 项目: NaldoDj/core
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 );
   }
}
示例#2
0
/* 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 );
}
示例#3
0
/* 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;
}
示例#4
0
int hb_charLower( int iChar )
{
   return HB_TOLOWER( iChar );
}