Browse Source

Rethink the version checks

As the actual behavior change happens with ICU >= 58, the new
functionality should stay same in the lower versions. This comply also
with lower PHP versions so far.
pull/2889/merge
Anatol Belski 9 years ago
parent
commit
0fe6724fce
  1. 4
      ext/intl/spoofchecker/spoofchecker.c
  2. 4
      ext/intl/spoofchecker/spoofchecker_class.c
  3. 2
      ext/intl/spoofchecker/spoofchecker_class.h
  4. 2
      ext/intl/spoofchecker/spoofchecker_create.c
  5. 4
      ext/intl/spoofchecker/spoofchecker_main.c
  6. 2
      ext/intl/spoofchecker/spoofchecker_main.h

4
ext/intl/spoofchecker/spoofchecker.c

@ -45,14 +45,12 @@ void spoofchecker_register_constants(INIT_FUNC_ARGS)
SPOOFCHECKER_EXPOSE_CLASS_CONST(INVISIBLE)
SPOOFCHECKER_EXPOSE_CLASS_CONST(CHAR_LIMIT)
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
SPOOFCHECKER_EXPOSE_CLASS_CONST(ASCII)
SPOOFCHECKER_EXPOSE_CLASS_CONST(HIGHLY_RESTRICTIVE)
SPOOFCHECKER_EXPOSE_CLASS_CONST(MODERATELY_RESTRICTIVE)
SPOOFCHECKER_EXPOSE_CLASS_CONST(MINIMALLY_RESTRICTIVE)
SPOOFCHECKER_EXPOSE_CLASS_CONST(UNRESTRICTIVE)
#endif
#if U_ICU_VERSION_MAJOR_NUM >= 53
SPOOFCHECKER_EXPOSE_CLASS_CONST(SINGLE_SCRIPT_RESTRICTIVE)
#endif

4
ext/intl/spoofchecker/spoofchecker_class.c

@ -84,7 +84,7 @@ ZEND_BEGIN_ARG_INFO_EX(spoofchecker_are_confusable, 0, 0, 2)
ZEND_ARG_INFO(1, error)
ZEND_END_ARG_INFO()
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
ZEND_BEGIN_ARG_INFO_EX(spoofchecker_set_restriction_level, 0, 0, 1)
ZEND_ARG_INFO(0, level)
ZEND_END_ARG_INFO()
@ -102,7 +102,7 @@ zend_function_entry Spoofchecker_class_functions[] = {
PHP_ME(Spoofchecker, areConfusable, spoofchecker_are_confusable, ZEND_ACC_PUBLIC)
PHP_ME(Spoofchecker, setAllowedLocales, spoofchecker_set_allowed_locales, ZEND_ACC_PUBLIC)
PHP_ME(Spoofchecker, setChecks, spoofchecker_set_checks, ZEND_ACC_PUBLIC)
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
PHP_ME(Spoofchecker, setRestrictionLevel, spoofchecker_set_restriction_level, ZEND_ACC_PUBLIC)
#endif
PHP_FE_END

2
ext/intl/spoofchecker/spoofchecker_class.h

@ -78,7 +78,7 @@ extern zend_class_entry *Spoofchecker_ce_ptr;
RETURN_FALSE; \
} \
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
#define SPOOFCHECKER_DEFAULT_RESTRICTION_LEVEL USPOOF_HIGHLY_RESTRICTIVE
#endif

2
ext/intl/spoofchecker/spoofchecker_create.c

@ -43,7 +43,7 @@ PHP_METHOD(Spoofchecker, __construct)
co->uspoof = uspoof_open(SPOOFCHECKER_ERROR_CODE_P(co));
INTL_METHOD_CHECK_STATUS(co, "spoofchecker: unable to open ICU Spoof Checker");
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
/* TODO save it into the object for further suspiction check comparison. */
/* ICU 58 removes WSC and MSC handling. However there are restriction
levels as defined in

4
ext/intl/spoofchecker/spoofchecker_main.c

@ -134,7 +134,7 @@ PHP_METHOD(Spoofchecker, setChecks)
}
/* }}} */
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
/* {{{ proto void Spoofchecker::setRestrictionLevel( int $restriction_level )
* Set the loosest restriction level allowed for strings.
*/
@ -150,9 +150,7 @@ PHP_METHOD(Spoofchecker, setRestrictionLevel)
SPOOFCHECKER_METHOD_FETCH_OBJECT;
if (USPOOF_ASCII != level &&
#if U_ICU_VERSION_MAJOR_NUM >= 53
USPOOF_SINGLE_SCRIPT_RESTRICTIVE != level &&
#endif
USPOOF_HIGHLY_RESTRICTIVE != level &&
USPOOF_MODERATELY_RESTRICTIVE != level &&
USPOOF_MINIMALLY_RESTRICTIVE != level &&

2
ext/intl/spoofchecker/spoofchecker_main.h

@ -23,7 +23,7 @@ PHP_METHOD(Spoofchecker, isSuspicious);
PHP_METHOD(Spoofchecker, areConfusable);
PHP_METHOD(Spoofchecker, setAllowedLocales);
PHP_METHOD(Spoofchecker, setChecks);
#if U_ICU_VERSION_MAJOR_NUM >= 51
#if U_ICU_VERSION_MAJOR_NUM >= 58
PHP_METHOD(Spoofchecker, setRestrictionLevel);
#endif

Loading…
Cancel
Save