pajoye Thu, 08 Oct 2009 20:28:21 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=289366
Log: - [DOC] add enchant_broket_set_dict_path and enchant_broker_get_dict_path - add constants ENCHANT_MYSPELL and ENCHANT_ISPELL Changed paths: U php/php-src/branches/PHP_5_3/ext/enchant/config.m4 U php/php-src/branches/PHP_5_3/ext/enchant/docs/examples/example1.php U php/php-src/branches/PHP_5_3/ext/enchant/enchant.c U php/php-src/branches/PHP_5_3/ext/enchant/php_enchant.h U php/php-src/trunk/ext/enchant/config.m4 U php/php-src/trunk/ext/enchant/config.w32 U php/php-src/trunk/ext/enchant/docs/examples/example1.php U php/php-src/trunk/ext/enchant/enchant.c U php/php-src/trunk/ext/enchant/php_enchant.h
Modified: php/php-src/branches/PHP_5_3/ext/enchant/config.m4 =================================================================== --- php/php-src/branches/PHP_5_3/ext/enchant/config.m4 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/branches/PHP_5_3/ext/enchant/config.m4 2009-10-08 20:28:21 UTC (rev 289366) @@ -33,4 +33,10 @@ PHP_SUBST(ENCHANT_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(enchant, $ENCHANT_LIBDIR, ENCHANT_SHARED_LIBADD) PHP_ADD_INCLUDE($ENCHANT_INCDIR) + PHP_CHECK_LIBRARY(enchant, enchant_broker_set_param, + [ + AC_DEFINE(HAVE_ENCHANT_BROKER_SET_PARAM, 1, [ ]) + AC_DEFINE(ENCHANT_VERSION_STRING, "1.5.x", [ ]) + ], [], [ -L$ENCHANT_LIB $ENCHANT_SHARED_LIBADD]) + fi Modified: php/php-src/branches/PHP_5_3/ext/enchant/docs/examples/example1.php =================================================================== --- php/php-src/branches/PHP_5_3/ext/enchant/docs/examples/example1.php 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/branches/PHP_5_3/ext/enchant/docs/examples/example1.php 2009-10-08 20:28:21 UTC (rev 289366) @@ -13,7 +13,7 @@ $spellerrors = enchant_dict_check($d, "soong"); print_r($dprovides); echo "found $spellerrors spell errors\n"; - if (!$spellerrors) { + if (spellerrors) { $suggs = enchant_dict_suggest($d, "soong"); echo "Suggestions for 'soong':"; print_r($suggs); Modified: php/php-src/branches/PHP_5_3/ext/enchant/enchant.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/enchant/enchant.c 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/branches/PHP_5_3/ext/enchant/enchant.c 2009-10-08 20:28:21 UTC (rev 289366) @@ -22,17 +22,13 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#ifdef PHP_WIN32 -#include <glib/glist.h> -#include <glib/ghash.h> -#endif + #include <enchant.h> #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "php_enchant.h" - typedef EnchantBroker * EnchantBrokerPtr; typedef struct _broker_struct enchant_broker; typedef struct _dict_struct enchant_dict; @@ -64,6 +60,9 @@ /* If you declare any globals in php_enchant.h uncomment this:*/ /*ZEND_DECLARE_MODULE_GLOBALS(enchant)*/ +#define PHP_ENCHANT_MYSPELL 1 +#define PHP_ENCHANT_ISPELL 2 + /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO(arginfo_enchant_broker_init, 0) ZEND_END_ARG_INFO() @@ -72,6 +71,17 @@ ZEND_ARG_INFO(0, broker) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_set_dict_path, 0, 0, 3) + ZEND_ARG_INFO(0, broker) + ZEND_ARG_INFO(0, name) + ZEND_ARG_INFO(0, value) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_get_dict_path, 0, 0, 2) + ZEND_ARG_INFO(0, broker) + ZEND_ARG_INFO(0, name) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_request_dict, 0, 0, 2) ZEND_ARG_INFO(0, broker) ZEND_ARG_INFO(0, tag) @@ -118,6 +128,8 @@ PHP_FE(enchant_broker_init, arginfo_enchant_broker_init) PHP_FE(enchant_broker_free, arginfo_enchant_broker_free) PHP_FE(enchant_broker_get_error, arginfo_enchant_broker_free) + PHP_FE(enchant_broker_set_dict_path, arginfo_enchant_broker_set_dict_path) + PHP_FE(enchant_broker_get_dict_path, arginfo_enchant_broker_get_dict_path) PHP_FE(enchant_broker_list_dicts, arginfo_enchant_broker_free) PHP_FE(enchant_broker_request_dict, arginfo_enchant_broker_request_dict) PHP_FE(enchant_broker_request_pwl_dict, arginfo_enchant_broker_request_pwl_dict) @@ -277,7 +289,8 @@ { le_enchant_broker = zend_register_list_destructors_ex(php_enchant_broker_free, NULL, "enchant_broker", module_number); 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("ENCHAT_ISPELL", PHP_ENCHANT_ISPELL, CONST_CS | CONST_PERSISTENT); return SUCCESS; } /* }}} */ @@ -309,6 +322,11 @@ php_info_print_table_start(); php_info_print_table_header(2, "enchant support", "enabled"); php_info_print_table_row(2, "Version", PHP_ENCHANT_VERSION); +#ifdef ENCHANT_VERSION_STRING + php_info_print_table_row(2, "Libenchant Version", ENCHANT_VERSION_STRING); +#elif defined(HAVE_ENCHANT_BROKER_SET_PARAM) + php_info_print_table_row(2, "Libenchant Version", "1.5.0 or later"); +#endif php_info_print_table_row(2, "Revision", "$Revision$"); php_info_print_table_end(); @@ -397,13 +415,101 @@ } /* }}} */ +#if HAVE_ENCHANT_BROKER_SET_PARAM +/* {{{ proto bool enchant_broker_set_dict_path(resource broker, int dict_type, string value) + Set the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_set_dict_path) +{ + zval *broker; + enchant_broker *pbroker; + long dict_type; + char *value; + int value_len; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rls", &broker, &dict_type, &value, &value_len) == FAILURE) { + RETURN_FALSE; + } + + if (!value_len) { + RETURN_FALSE; + } + + switch (dict_type) { + case PHP_ENCHANT_MYSPELL: + PHP_ENCHANT_GET_BROKER; + enchant_broker_set_param(pbroker->pbroker, "enchant.myspell.dictionary.path", (const char *)value); + RETURN_TRUE; + break; + + case PHP_ENCHANT_ISPELL: + PHP_ENCHANT_GET_BROKER; + enchant_broker_set_param(pbroker->pbroker, "enchant.ispell.dictionary.path", (const char *)value); + RETURN_TRUE; + break; + + default: + RETURN_FALSE; + } +} +/* }}} */ + + +/* {{{ proto string enchant_broker_get_dict_path(resource broker, int dict_type) + Get the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_get_dict_path) +{ + zval *broker; + enchant_broker *pbroker; + long dict_type; + char *value; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &broker, &dict_type) == FAILURE) { + RETURN_FALSE; + } + + switch (dict_type) { + case PHP_ENCHANT_MYSPELL: + PHP_ENCHANT_GET_BROKER; + value = enchant_broker_get_param(pbroker->pbroker, "enchant.myspell.dictionary.path"); + break; + + case PHP_ENCHANT_ISPELL: + PHP_ENCHANT_GET_BROKER; + value = enchant_broker_get_param(pbroker->pbroker, "enchant.ispell.dictionary.path"); + break; + + default: + RETURN_FALSE; + } + + RETURN_STRING(value, 1); +} +/* }}} */ +#else +/* {{{ proto bool enchant_broker_set_dict_path(resource broker, int dict_type, string value) + Set the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_set_dict_path) +{ + RETURN_FALSE; +} +/* }}} */ + + +/* {{{ proto string enchant_broker_get_dict_path(resource broker, int dict_type) + Get the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_get_dict_path) +{ + RETURN_FALSE; +} +/* }}} */ +#endif + /* {{{ proto string enchant_broker_list_dicts(resource broker) Lists the dictionaries available for the given broker */ PHP_FUNCTION(enchant_broker_list_dicts) { zval *broker; enchant_broker *pbroker; - EnchantDictDescribeFn describetozval = php_enchant_list_dicts_fn; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &broker) == FAILURE) { RETURN_FALSE; Modified: php/php-src/branches/PHP_5_3/ext/enchant/php_enchant.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/enchant/php_enchant.h 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/branches/PHP_5_3/ext/enchant/php_enchant.h 2009-10-08 20:28:21 UTC (rev 289366) @@ -24,7 +24,7 @@ extern zend_module_entry enchant_module_entry; #define phpext_enchant_ptr &enchant_module_entry -#define PHP_ENCHANT_VERSION "1.0.2-dev" +#define PHP_ENCHANT_VERSION "1.1.0" #ifdef PHP_WIN32 #define PHP_ENCHANT_API __declspec(dllexport) @@ -46,6 +46,8 @@ PHP_FUNCTION(enchant_broker_init); PHP_FUNCTION(enchant_broker_free); PHP_FUNCTION(enchant_broker_get_error); +PHP_FUNCTION(enchant_broker_set_dict_path); +PHP_FUNCTION(enchant_broker_get_dict_path); PHP_FUNCTION(enchant_broker_list_dicts); PHP_FUNCTION(enchant_broker_request_dict); PHP_FUNCTION(enchant_broker_request_pwl_dict); Modified: php/php-src/trunk/ext/enchant/config.m4 =================================================================== --- php/php-src/trunk/ext/enchant/config.m4 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/trunk/ext/enchant/config.m4 2009-10-08 20:28:21 UTC (rev 289366) @@ -33,4 +33,10 @@ PHP_SUBST(ENCHANT_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(enchant, $ENCHANT_LIBDIR, ENCHANT_SHARED_LIBADD) PHP_ADD_INCLUDE($ENCHANT_INCDIR) + PHP_CHECK_LIBRARY(enchant, enchant_broker_set_param, + [ + AC_DEFINE(HAVE_ENCHANT_BROKER_SET_PARAM, 1, [ ]) + AC_DEFINE(ENCHANT_VERSION_STRING, "1.5.x", [ ]) + ], [], [ -L$ENCHANT_LIB $ENCHANT_SHARED_LIBADD]) + fi Modified: php/php-src/trunk/ext/enchant/config.w32 =================================================================== --- php/php-src/trunk/ext/enchant/config.w32 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/trunk/ext/enchant/config.w32 2009-10-08 20:28:21 UTC (rev 289366) @@ -9,6 +9,7 @@ CHECK_LIB("libenchant.lib", "enchant", PHP_ENCHANT) ) { EXTENSION("enchant", "enchant.c"); AC_DEFINE('HAVE_ENCHANT', 1, 'Have Enchant support', false); + AC_DEFINE('HAVE_ENCHANT_BROKER_SET_PARAM', 1); ADD_FLAG("CFLAG_ENCHANT", "/D _WIN32"); } else { WARNING('Could not find enchant.h; skipping'); Modified: php/php-src/trunk/ext/enchant/docs/examples/example1.php =================================================================== --- php/php-src/trunk/ext/enchant/docs/examples/example1.php 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/trunk/ext/enchant/docs/examples/example1.php 2009-10-08 20:28:21 UTC (rev 289366) @@ -19,7 +19,5 @@ print_r($suggs); } enchant_broker_free_dict($d); -} else { } enchant_broker_free($r); -?> Modified: php/php-src/trunk/ext/enchant/enchant.c =================================================================== --- php/php-src/trunk/ext/enchant/enchant.c 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/trunk/ext/enchant/enchant.c 2009-10-08 20:28:21 UTC (rev 289366) @@ -22,17 +22,13 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#ifdef PHP_WIN32 -#include <glib/glist.h> -#include <glib/ghash.h> -#endif + #include <enchant.h> #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "php_enchant.h" - typedef EnchantBroker * EnchantBrokerPtr; typedef struct _broker_struct enchant_broker; typedef struct _dict_struct enchant_dict; @@ -64,6 +60,9 @@ /* If you declare any globals in php_enchant.h uncomment this:*/ /*ZEND_DECLARE_MODULE_GLOBALS(enchant)*/ +#define PHP_ENCHANT_MYSPELL 1 +#define PHP_ENCHANT_ISPELL 2 + /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO(arginfo_enchant_broker_init, 0) ZEND_END_ARG_INFO() @@ -72,6 +71,17 @@ ZEND_ARG_INFO(0, broker) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_set_dict_path, 0, 0, 3) + ZEND_ARG_INFO(0, broker) + ZEND_ARG_INFO(0, name) + ZEND_ARG_INFO(0, value) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_get_dict_path, 0, 0, 2) + ZEND_ARG_INFO(0, broker) + ZEND_ARG_INFO(0, name) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_request_dict, 0, 0, 2) ZEND_ARG_INFO(0, broker) ZEND_ARG_INFO(0, tag) @@ -118,6 +128,8 @@ PHP_FE(enchant_broker_init, arginfo_enchant_broker_init) PHP_FE(enchant_broker_free, arginfo_enchant_broker_free) PHP_FE(enchant_broker_get_error, arginfo_enchant_broker_free) + PHP_FE(enchant_broker_set_dict_path, arginfo_enchant_broker_set_dict_path) + PHP_FE(enchant_broker_get_dict_path, arginfo_enchant_broker_get_dict_path) PHP_FE(enchant_broker_list_dicts, arginfo_enchant_broker_free) PHP_FE(enchant_broker_request_dict, arginfo_enchant_broker_request_dict) PHP_FE(enchant_broker_request_pwl_dict, arginfo_enchant_broker_request_pwl_dict) @@ -277,7 +289,8 @@ { le_enchant_broker = zend_register_list_destructors_ex(php_enchant_broker_free, NULL, "enchant_broker", module_number); 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("ENCHAT_ISPELL", PHP_ENCHANT_ISPELL, CONST_CS | CONST_PERSISTENT); return SUCCESS; } /* }}} */ @@ -309,6 +322,11 @@ php_info_print_table_start(); php_info_print_table_header(2, "enchant support", "enabled"); php_info_print_table_row(2, "Version", PHP_ENCHANT_VERSION); +#ifdef ENCHANT_VERSION_STRING + php_info_print_table_row(2, "Libenchant Version", ENCHANT_VERSION_STRING); +#elif defined(HAVE_ENCHANT_BROKER_SET_PARAM) + php_info_print_table_row(2, "Libenchant Version", "1.5.0 or later"); +#endif php_info_print_table_row(2, "Revision", "$Revision$"); php_info_print_table_end(); @@ -397,13 +415,101 @@ } /* }}} */ +#if HAVE_ENCHANT_BROKER_SET_PARAM +/* {{{ proto bool enchant_broker_set_dict_path(resource broker, int dict_type, string value) + Set the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_set_dict_path) +{ + zval *broker; + enchant_broker *pbroker; + long dict_type; + char *value; + int value_len; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rls", &broker, &dict_type, &value, &value_len) == FAILURE) { + RETURN_FALSE; + } + + if (!value_len) { + RETURN_FALSE; + } + + switch (dict_type) { + case PHP_ENCHANT_MYSPELL: + PHP_ENCHANT_GET_BROKER; + enchant_broker_set_param(pbroker->pbroker, "enchant.myspell.dictionary.path", (const char *)value); + RETURN_TRUE; + break; + + case PHP_ENCHANT_ISPELL: + PHP_ENCHANT_GET_BROKER; + enchant_broker_set_param(pbroker->pbroker, "enchant.ispell.dictionary.path", (const char *)value); + RETURN_TRUE; + break; + + default: + RETURN_FALSE; + } +} +/* }}} */ + + +/* {{{ proto string enchant_broker_get_dict_path(resource broker, int dict_type) + Get the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_get_dict_path) +{ + zval *broker; + enchant_broker *pbroker; + long dict_type; + char *value; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &broker, &dict_type) == FAILURE) { + RETURN_FALSE; + } + + switch (dict_type) { + case PHP_ENCHANT_MYSPELL: + PHP_ENCHANT_GET_BROKER; + value = enchant_broker_get_param(pbroker->pbroker, "enchant.myspell.dictionary.path"); + break; + + case PHP_ENCHANT_ISPELL: + PHP_ENCHANT_GET_BROKER; + value = enchant_broker_get_param(pbroker->pbroker, "enchant.ispell.dictionary.path"); + break; + + default: + RETURN_FALSE; + } + + RETURN_STRING(value, 1); +} +/* }}} */ +#else +/* {{{ proto bool enchant_broker_set_dict_path(resource broker, int dict_type, string value) + Set the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_set_dict_path) +{ + RETURN_FALSE; +} +/* }}} */ + + +/* {{{ proto string enchant_broker_get_dict_path(resource broker, int dict_type) + Get the directory path for a given backend, works with ispell and myspell */ +PHP_FUNCTION(enchant_broker_get_dict_path) +{ + RETURN_FALSE; +} +/* }}} */ +#endif + /* {{{ proto string enchant_broker_list_dicts(resource broker) Lists the dictionaries available for the given broker */ PHP_FUNCTION(enchant_broker_list_dicts) { zval *broker; enchant_broker *pbroker; - EnchantDictDescribeFn describetozval = php_enchant_list_dicts_fn; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &broker) == FAILURE) { RETURN_FALSE; Modified: php/php-src/trunk/ext/enchant/php_enchant.h =================================================================== --- php/php-src/trunk/ext/enchant/php_enchant.h 2009-10-08 20:10:51 UTC (rev 289365) +++ php/php-src/trunk/ext/enchant/php_enchant.h 2009-10-08 20:28:21 UTC (rev 289366) @@ -24,7 +24,7 @@ extern zend_module_entry enchant_module_entry; #define phpext_enchant_ptr &enchant_module_entry -#define PHP_ENCHANT_VERSION "1.0.2-dev" +#define PHP_ENCHANT_VERSION "1.1.0" #ifdef PHP_WIN32 #define PHP_ENCHANT_API __declspec(dllexport) @@ -46,6 +46,10 @@ PHP_FUNCTION(enchant_broker_init); PHP_FUNCTION(enchant_broker_free); PHP_FUNCTION(enchant_broker_get_error); +PHP_FUNCTION(enchant_broker_set_dict_path); +PHP_FUNCTION(enchant_broker_get_dict_path); +PHP_FUNCTION(enchant_broker_set_dict_path); +PHP_FUNCTION(enchant_broker_get_dict_path); PHP_FUNCTION(enchant_broker_list_dicts); PHP_FUNCTION(enchant_broker_request_dict); PHP_FUNCTION(enchant_broker_request_pwl_dict);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php