U_CAPI UBool U_EXPORT2 unorm_isNormalizedWithOptions(const UChar *src, int32_t srcLength, UNormalizationMode mode, int32_t options, UErrorCode *pErrorCode) { const Normalizer2 *n2=Normalizer2Factory::getInstance(mode, *pErrorCode); if(options&UNORM_UNICODE_3_2) { FilteredNormalizer2 fn2(*n2, *uniset_getUnicode32Instance(*pErrorCode)); return unorm2_isNormalized((const UNormalizer2 *)&fn2, src, srcLength, pErrorCode); } else { return unorm2_isNormalized((const UNormalizer2 *)n2, src, srcLength, pErrorCode); } }
U_CAPI UBool U_EXPORT2 unorm_isNormalized(const UChar *src, int32_t srcLength, UNormalizationMode mode, UErrorCode *pErrorCode) { const Normalizer2 *n2=Normalizer2Factory::getInstance(mode, *pErrorCode); return unorm2_isNormalized((const UNormalizer2 *)n2, src, srcLength, pErrorCode); }
/* Function: IsNormalized Used by System.StringNormalizationExtensions.IsNormalized to detect if a string is in a certain Unicode Normalization Form. Return values: 0: lpStr is not normalized. 1: lpStr is normalized. -1: internal error during normalization. */ extern "C" int32_t IsNormalized(NormalizationForm normalizationForm, const UChar* lpStr, int32_t cwStrLength) { UErrorCode err = U_ZERO_ERROR; const UNormalizer2* pNormalizer = GetNormalizerForForm(normalizationForm, &err); UBool isNormalized = unorm2_isNormalized(pNormalizer, lpStr, cwStrLength, &err); if (U_SUCCESS(err)) { return isNormalized == TRUE ? 1 : 0; } else { return -1; } }