U_CAPI int32_t U_EXPORT2 u_charDigitValue(UChar32 c) { uint32_t props; int32_t value; GET_PROPS(c, props); value=(int32_t)GET_NUMERIC_TYPE_VALUE(props)-UPROPS_NTV_DECIMAL_START; if(value<=9) { return value; } else { return -1; } }
/* Checks if the Unicode character can be a Unicode identifier part other than starting the identifier.*/ U_CAPI UBool U_EXPORT2 u_isIDPart(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)( (CAT_MASK(props)& (U_GC_ND_MASK|U_GC_NL_MASK| U_GC_L_MASK| U_GC_PC_MASK|U_GC_MC_MASK|U_GC_MN_MASK) )!=0 || u_isIDIgnorable(c)); }
U_CAPI UBool U_EXPORT2 u_isxdigit(UChar32 c) { uint32_t props; /* check ASCII and Fullwidth ASCII a-fA-F */ if( (c<=0x66 && c>=0x41 && (c<=0x46 || c>=0x61)) || (c>=0xff21 && c<=0xff46 && (c<=0xff26 || c>=0xff41)) ) { return TRUE; } GET_PROPS(c, props); return (UBool)(GET_CATEGORY(props)==U_DECIMAL_DIGIT_NUMBER); }
U_CAPI double U_EXPORT2 u_getNumericValue(UChar32 c) { uint32_t props; int32_t ntv; GET_PROPS(c, props); ntv=(int32_t)GET_NUMERIC_TYPE_VALUE(props); if(ntv==UPROPS_NTV_NONE) { return U_NO_NUMERIC_VALUE; } else if(ntv<UPROPS_NTV_DIGIT_START) { /* decimal digit */ return ntv-UPROPS_NTV_DECIMAL_START; } else if(ntv<UPROPS_NTV_NUMERIC_START) { /* other digit */ return ntv-UPROPS_NTV_DIGIT_START; } else if(ntv<UPROPS_NTV_FRACTION_START) { /* small integer */ return ntv-UPROPS_NTV_NUMERIC_START; } else if(ntv<UPROPS_NTV_LARGE_START) { /* fraction */ int32_t numerator=(ntv>>4)-12; int32_t denominator=(ntv&0xf)+1; return (double)numerator/denominator; } else if(ntv<UPROPS_NTV_BASE60_START) {
U_CAPI UBool U_EXPORT2 u_ispunct(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)((CAT_MASK(props)&U_GC_P_MASK)!=0); }
U_CAPI UBool U_EXPORT2 u_isJavaSpaceChar(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)((CAT_MASK(props)&U_GC_Z_MASK)!=0); }
/* Checks if the Unicode character is a space character.*/ U_CAPI UBool U_EXPORT2 u_isspace(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)((CAT_MASK(props)&U_GC_Z_MASK)!=0 || IS_THAT_CONTROL_SPACE(c)); }
/* Checks if the Unicode character is a control character.*/ U_CAPI UBool U_EXPORT2 u_iscntrl(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)((CAT_MASK(props)&(U_GC_CC_MASK|U_GC_CF_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK))!=0); }
U_CAPI UBool U_EXPORT2 ubidi_isMirrored(const UBiDiProps *bdp, UChar32 c) { uint32_t props; GET_PROPS(bdp, c, props); return (UBool)UBIDI_GET_FLAG(props, UBIDI_IS_MIRRORED_SHIFT); }
/* Gets the Unicode character's general category.*/ U_CAPI int8_t U_EXPORT2 u_charType(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (int8_t)GET_CATEGORY(props); }
/* Checks if ch is a decimal digit. */ U_CAPI UBool U_EXPORT2 u_isdigit(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)(GET_CATEGORY(props)==U_DECIMAL_DIGIT_NUMBER); }
/* Checks if ch is a title case letter; usually upper case letters.*/ U_CAPI UBool U_EXPORT2 u_istitle(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)(GET_CATEGORY(props)==U_TITLECASE_LETTER); }
U_CAPI UJoiningType U_EXPORT2 ubidi_getJoiningType(const UBiDiProps *bdp, UChar32 c) { uint32_t props; GET_PROPS(bdp, c, props); return (UJoiningType)((props&UBIDI_JT_MASK)>>UBIDI_JT_SHIFT); }
U_CAPI UBool U_EXPORT2 ubidi_isJoinControl(const UBiDiProps *bdp, UChar32 c) { uint32_t props; GET_PROPS(bdp, c, props); return (UBool)UBIDI_GET_FLAG(props, UBIDI_JOIN_CONTROL_SHIFT); }
/*Checks if the Unicode character can start a Java identifier.*/ U_CAPI UBool U_EXPORT2 u_isJavaIDStart(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)((CAT_MASK(props)&(U_GC_L_MASK|U_GC_SC_MASK|U_GC_PC_MASK))!=0); }
/* Checks if ch is a unicode character with assigned character type.*/ U_CAPI UBool U_EXPORT2 u_isdefined(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)(GET_CATEGORY(props)!=0); }
/* Checks if the Unicode character is a base form character that can take a diacritic.*/ U_CAPI UBool U_EXPORT2 u_isbase(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)((CAT_MASK(props)&(U_GC_L_MASK|U_GC_N_MASK|U_GC_MC_MASK|U_GC_ME_MASK))!=0); }
/* Checks if ch is a lower case letter.*/ U_CAPI UBool U_EXPORT2 u_islower(UChar32 c) { uint32_t props; GET_PROPS(c, props); return (UBool)(GET_CATEGORY(props)==U_LOWERCASE_LETTER); }
U_CAPI UCharDirection U_EXPORT2 ubidi_getClass(const UBiDiProps *bdp, UChar32 c) { uint32_t props; GET_PROPS(bdp, c, props); return (UCharDirection)UBIDI_GET_CLASS(props); }