diff --git a/ext/enchant/config.m4 b/ext/enchant/config.m4 index 6c8dd726ce98c..f8d4f1b3e2f85 100644 --- a/ext/enchant/config.m4 +++ b/ext/enchant/config.m4 @@ -4,7 +4,7 @@ PHP_ARG_WITH([enchant], [Include Enchant support])]) if test "$PHP_ENCHANT" != "no"; then - PKG_CHECK_MODULES([ENCHANT], [enchant]) + PKG_CHECK_MODULES([ENCHANT], [enchant >= 1.4.2]) PHP_EVAL_INCLINE($ENCHANT_CFLAGS) PHP_EVAL_LIBLINE($ENCHANT_LIBS, ENCHANT_SHARED_LIBADD) @@ -13,14 +13,14 @@ if test "$PHP_ENCHANT" != "no"; then PHP_CHECK_LIBRARY(enchant, enchant_get_version, [ - AC_DEFINE(HAVE_ENCHANT_GET_VERSION, 1, [ ]) + AC_DEFINE(HAVE_ENCHANT_GET_VERSION, 1, [ enchant_get_version since 1.6.0 ]) ], [ ], [ $ENCHANT_LIBS ]) PHP_CHECK_LIBRARY(enchant, enchant_broker_set_param, [ - AC_DEFINE(HAVE_ENCHANT_BROKER_SET_PARAM, 1, [ ]) + AC_DEFINE(HAVE_ENCHANT_BROKER_SET_PARAM, 1, [ enchant_broker_set_param since 1.5.0 and removed in 2.x ]) ], [ ], [ $ENCHANT_LIBS ]) diff --git a/ext/enchant/enchant.c b/ext/enchant/enchant.c index 640a48d548b63..01955553797d2 100644 --- a/ext/enchant/enchant.c +++ b/ext/enchant/enchant.c @@ -197,6 +197,9 @@ PHP_MINIT_FUNCTION(enchant) le_enchant_dict = zend_register_list_destructors_ex(php_enchant_dict_free, NULL, "enchant_dict", module_number); REGISTER_LONG_CONSTANT("ENCHANT_MYSPELL", PHP_ENCHANT_MYSPELL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("ENCHANT_ISPELL", PHP_ENCHANT_ISPELL, CONST_CS | CONST_PERSISTENT); +#ifdef HAVE_ENCHANT_GET_VERSION + REGISTER_STRING_CONSTANT("LIBENCHANT_VERSION", enchant_get_version(), CONST_CS | CONST_PERSISTENT); +#endif return SUCCESS; } /* }}} */ @@ -304,7 +307,7 @@ PHP_FUNCTION(enchant_broker_get_error) { zval *broker; enchant_broker *pbroker; - char *msg; + const char *msg; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) { RETURN_THROWS(); @@ -650,7 +653,7 @@ PHP_FUNCTION(enchant_dict_quick_check) for (i = 0; i < n_sugg; i++) { add_next_index_string(sugg, suggs[i]); } - enchant_dict_free_suggestions(pdict->pdict, suggs); + enchant_dict_free_string_list(pdict->pdict, suggs); } @@ -705,14 +708,14 @@ PHP_FUNCTION(enchant_dict_suggest) add_next_index_string(return_value, suggs[i]); } - enchant_dict_free_suggestions(pdict->pdict, suggs); + enchant_dict_free_string_list(pdict->pdict, suggs); } } /* }}} */ -/* {{{ proto void enchant_dict_add_to_personal(resource dict, string word) +/* {{{ proto void enchant_dict_add(resource dict, string word) add 'word' to personal word list */ -PHP_FUNCTION(enchant_dict_add_to_personal) +PHP_FUNCTION(enchant_dict_add) { zval *dict; char *word; @@ -725,7 +728,7 @@ PHP_FUNCTION(enchant_dict_add_to_personal) PHP_ENCHANT_GET_DICT; - enchant_dict_add_to_personal(pdict->pdict, word, wordlen); + enchant_dict_add(pdict->pdict, word, wordlen); } /* }}} */ @@ -748,9 +751,9 @@ PHP_FUNCTION(enchant_dict_add_to_session) } /* }}} */ -/* {{{ proto bool enchant_dict_is_in_session(resource dict, string word) +/* {{{ proto bool enchant_dict_is_added(resource dict, string word) whether or not 'word' exists in this spelling-session */ -PHP_FUNCTION(enchant_dict_is_in_session) +PHP_FUNCTION(enchant_dict_is_added) { zval *dict; char *word; @@ -763,7 +766,7 @@ PHP_FUNCTION(enchant_dict_is_in_session) PHP_ENCHANT_GET_DICT; - RETURN_BOOL(enchant_dict_is_in_session(pdict->pdict, word, wordlen)); + RETURN_BOOL(enchant_dict_is_added(pdict->pdict, word, wordlen)); } /* }}} */ @@ -796,7 +799,7 @@ PHP_FUNCTION(enchant_dict_get_error) { zval *dict; enchant_dict *pdict; - char *msg; + const char *msg; if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) { RETURN_THROWS(); diff --git a/ext/enchant/enchant.stub.php b/ext/enchant/enchant.stub.php index b68e9ae325603..cad28b9103860 100644 --- a/ext/enchant/enchant.stub.php +++ b/ext/enchant/enchant.stub.php @@ -14,10 +14,16 @@ function enchant_broker_free($broker): bool {} */ function enchant_broker_get_error($broker) {} -/** @param resource $broker */ +/** +* @param resource $broker +* @deprecated +*/ function enchant_broker_set_dict_path($broker, int $name, string $value): bool {} -/** @param resource $broker */ +/** +* @param resource $broker +* @deprecated +*/ function enchant_broker_get_dict_path($broker, int $name): string|false {} /** @param resource $broker */ @@ -57,12 +63,26 @@ function enchant_dict_check($dict, string $word): bool {} function enchant_dict_suggest($dict, string $word): ?array {} /** @param resource $dict */ +function enchant_dict_add($dict, string $word): void {} + +/** +* @param resource $dict +* @alias enchant_dict_add +* @deprecated +*/ function enchant_dict_add_to_personal($dict, string $word): void {} /** @param resource $dict */ function enchant_dict_add_to_session($dict, string $word): void {} /** @param resource $dict */ +function enchant_dict_is_added($dict, string $word): bool {} + +/** +* @param resource $dict +* @alias enchant_dict_is_added +* @deprecated +*/ function enchant_dict_is_in_session($dict, string $word): bool {} /** @param resource $dict */ diff --git a/ext/enchant/enchant_arginfo.h b/ext/enchant/enchant_arginfo.h index ab89ab71f3faf..967bdfcf72915 100644 --- a/ext/enchant/enchant_arginfo.h +++ b/ext/enchant/enchant_arginfo.h @@ -69,12 +69,16 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_suggest, 0, 2, IS_A ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_add_to_personal, 0, 2, IS_VOID, 0) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_add, 0, 2, IS_VOID, 0) ZEND_ARG_INFO(0, dict) ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0) ZEND_END_ARG_INFO() -#define arginfo_enchant_dict_add_to_session arginfo_enchant_dict_add_to_personal +#define arginfo_enchant_dict_add_to_personal arginfo_enchant_dict_add + +#define arginfo_enchant_dict_add_to_session arginfo_enchant_dict_add + +#define arginfo_enchant_dict_is_added arginfo_enchant_dict_check #define arginfo_enchant_dict_is_in_session arginfo_enchant_dict_check @@ -108,9 +112,9 @@ ZEND_FUNCTION(enchant_broker_describe); ZEND_FUNCTION(enchant_dict_quick_check); ZEND_FUNCTION(enchant_dict_check); ZEND_FUNCTION(enchant_dict_suggest); -ZEND_FUNCTION(enchant_dict_add_to_personal); +ZEND_FUNCTION(enchant_dict_add); ZEND_FUNCTION(enchant_dict_add_to_session); -ZEND_FUNCTION(enchant_dict_is_in_session); +ZEND_FUNCTION(enchant_dict_is_added); ZEND_FUNCTION(enchant_dict_store_replacement); ZEND_FUNCTION(enchant_dict_get_error); ZEND_FUNCTION(enchant_dict_describe); @@ -120,8 +124,8 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(enchant_broker_init, arginfo_enchant_broker_init) ZEND_FE(enchant_broker_free, arginfo_enchant_broker_free) ZEND_FE(enchant_broker_get_error, arginfo_enchant_broker_get_error) - ZEND_FE(enchant_broker_set_dict_path, arginfo_enchant_broker_set_dict_path) - ZEND_FE(enchant_broker_get_dict_path, arginfo_enchant_broker_get_dict_path) + ZEND_DEP_FE(enchant_broker_set_dict_path, arginfo_enchant_broker_set_dict_path) + ZEND_DEP_FE(enchant_broker_get_dict_path, arginfo_enchant_broker_get_dict_path) ZEND_FE(enchant_broker_list_dicts, arginfo_enchant_broker_list_dicts) ZEND_FE(enchant_broker_request_dict, arginfo_enchant_broker_request_dict) ZEND_FE(enchant_broker_request_pwl_dict, arginfo_enchant_broker_request_pwl_dict) @@ -132,9 +136,11 @@ static const zend_function_entry ext_functions[] = { ZEND_FE(enchant_dict_quick_check, arginfo_enchant_dict_quick_check) ZEND_FE(enchant_dict_check, arginfo_enchant_dict_check) ZEND_FE(enchant_dict_suggest, arginfo_enchant_dict_suggest) - ZEND_FE(enchant_dict_add_to_personal, arginfo_enchant_dict_add_to_personal) + ZEND_FE(enchant_dict_add, arginfo_enchant_dict_add) + ZEND_DEP_FALIAS(enchant_dict_add_to_personal, enchant_dict_add, arginfo_enchant_dict_add_to_personal) ZEND_FE(enchant_dict_add_to_session, arginfo_enchant_dict_add_to_session) - ZEND_FE(enchant_dict_is_in_session, arginfo_enchant_dict_is_in_session) + ZEND_FE(enchant_dict_is_added, arginfo_enchant_dict_is_added) + ZEND_DEP_FALIAS(enchant_dict_is_in_session, enchant_dict_is_added, arginfo_enchant_dict_is_in_session) ZEND_FE(enchant_dict_store_replacement, arginfo_enchant_dict_store_replacement) ZEND_FE(enchant_dict_get_error, arginfo_enchant_dict_get_error) ZEND_FE(enchant_dict_describe, arginfo_enchant_dict_describe) diff --git a/ext/enchant/tests/broker_free_02.phpt b/ext/enchant/tests/broker_free_02.phpt index 1b31c1fc37341..298a921d970b0 100644 --- a/ext/enchant/tests/broker_free_02.phpt +++ b/ext/enchant/tests/broker_free_02.phpt @@ -21,7 +21,7 @@ if (is_resource($broker)) { if ($requestDict) { echo("OK\n"); for($x=0;$x")) die('skip libenchant v1 only'); ?> --FILE-- --EXPECTF-- +Deprecated: Function enchant_broker_get_dict_path() is deprecated in %s + Warning: enchant_broker_get_dict_path(): dict_path not set in %s on line %d bool(false) +Deprecated: Function enchant_broker_get_dict_path() is deprecated in %s + Warning: enchant_broker_get_dict_path(): dict_path not set in %s on line %d bool(false) diff --git a/ext/enchant/tests/dict_add_to_personal.phpt b/ext/enchant/tests/dict_add_to_personal.phpt index 522ae8a2d1218..0c38734c5a5a2 100644 --- a/ext/enchant/tests/dict_add_to_personal.phpt +++ b/ext/enchant/tests/dict_add_to_personal.phpt @@ -1,5 +1,5 @@ --TEST-- -enchant_dict_add_to_personal() function +enchant_dict_add() function --CREDITS-- marcosptf - --SKIPIF-- @@ -20,7 +20,7 @@ if (is_resource($broker)) { if ($requestDict) { echo("OK\n"); - $AddtoPersonalDict = enchant_dict_add_to_personal($requestDict,$newWord); + $AddtoPersonalDict = enchant_dict_add($requestDict,$newWord); if (NULL === $AddtoPersonalDict) { var_dump($AddtoPersonalDict); diff --git a/ext/enchant/tests/dict_check.phpt b/ext/enchant/tests/dict_check.phpt index b48ed475841eb..ac0fc6fb4b079 100644 --- a/ext/enchant/tests/dict_check.phpt +++ b/ext/enchant/tests/dict_check.phpt @@ -20,7 +20,7 @@ if (is_resource($broker)) { if ($requestDict) { echo("OK\n"); - enchant_dict_add_to_personal($requestDict, $newWord); + enchant_dict_add($requestDict, $newWord); if (enchant_dict_check($requestDict, $newWord)) { echo("OK\n"); diff --git a/ext/enchant/tests/dict_is_in_session.phpt b/ext/enchant/tests/dict_is_in_session.phpt index 12771e552e8de..3084fc7122cbd 100644 --- a/ext/enchant/tests/dict_is_in_session.phpt +++ b/ext/enchant/tests/dict_is_in_session.phpt @@ -20,10 +20,10 @@ if (is_resource($broker)) { if ($requestDict) { echo("OK\n"); - $AddtoPersonalDict = enchant_dict_add_to_personal($requestDict,$newWord); + $AddtoPersonalDict = enchant_dict_add($requestDict,$newWord); if (NULL === $AddtoPersonalDict) { - var_dump(enchant_dict_is_in_session($requestDict,$newWord)); + var_dump(enchant_dict_is_added($requestDict,$newWord)); } else { echo("dict add to personal failed\n"); } diff --git a/ext/enchant/tests/enchant_broker_set_dict_path.phpt b/ext/enchant/tests/enchant_broker_set_dict_path.phpt index 9c21a86336aac..a072c2555519e 100644 --- a/ext/enchant/tests/enchant_broker_set_dict_path.phpt +++ b/ext/enchant/tests/enchant_broker_set_dict_path.phpt @@ -8,6 +8,7 @@ marcosptf - if(!extension_loaded('enchant')) die('skip, enchant not loader'); if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");} if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");} +if (defined("LIBENCHANT_VERSION") && version_compare(LIBENCHANT_VERSION, "2", ">")) die('skip libenchant v1 only'); ?> --FILE-- ---EXPECT-- +--EXPECTF-- OK + +Deprecated: Function enchant_broker_set_dict_path() is deprecated in %s OK + +Deprecated: Function enchant_broker_set_dict_path() is deprecated in %s OK + +Deprecated: Function enchant_broker_get_dict_path() is deprecated in %s + +Deprecated: Function enchant_broker_get_dict_path() is deprecated in %s OK