int i18n_unormalization_compose_pair(i18n_unormalizer_h normalizer, i18n_uchar32 a, i18n_uchar32 b, i18n_uchar32 *c)
{
- i18n_error_code_e i18n_error;
- UErrorCode icu_error = U_ZERO_ERROR;
+ retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
*c = unorm2_composePair((UNormalizer2 *) normalizer, a, b);
- ERR_MAPPING(icu_error, i18n_error);
- I18N_ERR(i18n_error);
-
- return i18n_error;
+ return I18N_ERROR_NONE;
}
uint8_t i18n_unormalization_get_combining_class(i18n_unormalizer_h normalizer, i18n_uchar32 code_point)
int i18n_unormalizer_has_boundary_before(i18n_unormalizer_h normalizer, i18n_uchar32 c, i18n_ubool *result)
{
- i18n_error_code_e i18n_error;
- UErrorCode icu_error = U_ZERO_ERROR;
+ retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
*result = unorm2_hasBoundaryBefore((UNormalizer2 *) normalizer, c);
- ERR_MAPPING(icu_error, i18n_error);
- I18N_ERR(i18n_error);
- return i18n_error;
+ return I18N_ERROR_NONE;
}
int i18n_unormalizer_has_boundary_after(i18n_unormalizer_h normalizer, i18n_uchar32 c, i18n_ubool *result)
{
- i18n_error_code_e i18n_error;
- UErrorCode icu_error = U_ZERO_ERROR;
+ retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
*result = unorm2_hasBoundaryAfter((UNormalizer2 *) normalizer, c);
- ERR_MAPPING(icu_error, i18n_error);
- I18N_ERR(i18n_error);
- return i18n_error;
+ return I18N_ERROR_NONE;
+
}
int i18n_unormalization_is_inert(i18n_unormalizer_h normalizer, i18n_uchar32 c, i18n_ubool *result)
{
- i18n_error_code_e i18n_error;
- UErrorCode icu_error = U_ZERO_ERROR;
+ retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
*result = unorm2_isInert((UNormalizer2 *) normalizer, c);
- ERR_MAPPING(icu_error, i18n_error);
- I18N_ERR(i18n_error);
- return i18n_error;
+ return I18N_ERROR_NONE;
}
const char *i18n_uscript_get_name(i18n_uscript_code_e script_code)
{
+ if(script_code >= I18N_USCRIPT_CODE_LIMIT || script_code <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return NULL;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return uscript_getName(script_code);
}
const char *i18n_uscript_get_short_name(i18n_uscript_code_e script_code)
{
+ if(script_code >= I18N_USCRIPT_CODE_LIMIT || script_code <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return NULL;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return uscript_getShortName(script_code);
}
i18n_ubool i18n_uscript_has_script(i18n_uchar32 codepoint, i18n_uscript_code_e script_code)
{
+ if(script_code >= I18N_USCRIPT_CODE_LIMIT || script_code <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return false;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
+
return uscript_hasScript(codepoint, script_code);
}
i18n_uscript_usage_e i18n_uscript_get_usage(i18n_uscript_code_e script)
{
+ if(script >= I18N_USCRIPT_CODE_LIMIT || script <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return I18N_USCRIPT_USAGE_NOT_ENCODED;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return uscript_getUsage(script);
}
i18n_ubool i18n_uscript_is_right_to_left(i18n_uscript_code_e script)
{
+ if(script >= I18N_USCRIPT_CODE_LIMIT || script <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return false;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return uscript_isRightToLeft(script);
}
i18n_ubool i18n_uscript_breaks_between_letters(i18n_uscript_code_e script)
{
+ if(script >= I18N_USCRIPT_CODE_LIMIT || script <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return false;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return uscript_breaksBetweenLetters(script);
}
i18n_ubool i18n_uscript_is_cased(i18n_uscript_code_e script)
{
+ if(script >= I18N_USCRIPT_CODE_LIMIT || script <= I18N_USCRIPT_INVALID_CODE) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return false;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return uscript_isCased(script);
}
int i18n_utext_clone(i18n_utext_h dest, const i18n_utext_h src, i18n_ubool deep, i18n_ubool read_only, i18n_utext_h *ut)
{
+ retv_if(src == NULL, I18N_ERROR_INVALID_PARAMETER);
i18n_error_code_e i18n_error;
UErrorCode icu_error = U_ZERO_ERROR;
int64_t i18n_utext_native_length(i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_nativeLength((UText *)ut);
}
i18n_ubool i18n_utext_is_length_expensive(const i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_isLengthExpensive((UText *)ut);
}
i18n_uchar32 i18n_utext_char32_at(i18n_utext_h ut, int64_t native_index)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_char32At((UText *)ut, native_index);
}
i18n_uchar32 i18n_utext_current32(i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_current32((UText *)ut);
}
i18n_uchar32 i18n_utext_next32(i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_next32((UText *)ut);
}
i18n_uchar32 i18n_utext_previous32(i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_previous32((UText *)ut);
}
i18n_uchar32 i18n_utext_next32_from(i18n_utext_h ut, int64_t native_index)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_next32From((UText *)ut, native_index);
}
i18n_uchar32 i18n_utext_previous32_from(i18n_utext_h ut, int64_t native_index)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
return utext_previous32From((UText *)ut, native_index);
}
int64_t i18n_utext_get_native_index(const i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
+
return utext_getNativeIndex((UText *)ut);
}
void i18n_utext_set_native_index(i18n_utext_h ut, int64_t native_index)
{
+ if(ut == NULL || native_index == NULL)
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+
+ set_last_result(I18N_ERROR_NONE);
+
return utext_setNativeIndex((UText *)ut, native_index);
}
i18n_ubool i18n_utext_move_index32(i18n_utext_h ut, int32_t delta)
{
+ if(ut == NULL || delta == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
+
return utext_moveIndex32((UText *)ut, delta);
}
int64_t i18n_utext_get_previous_native_index(i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
+
return utext_getPreviousNativeIndex((UText *)ut);
}
i18n_ubool i18n_utext_is_writable(const i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
+
return utext_isWritable((UText *)ut);
}
i18n_ubool i18n_utext_has_meta_data(const i18n_utext_h ut)
{
+ if(ut == NULL) {
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+ return 0;
+ }
+
+ set_last_result(I18N_ERROR_NONE);
+
return utext_hasMetaData((UText *)ut);
}
void i18n_utext_freeze(i18n_utext_h ut)
{
+ if(ut == NULL)
+ set_last_result(I18N_ERROR_INVALID_PARAMETER);
+
+ set_last_result(I18N_ERROR_NONE);
+
utext_freeze((UText *)ut);
}