felipe Sat Aug 23 16:20:14 2008 UTC Modified files: /php-src/ext/pspell pspell.c /php-src/ext/pspell/tests 002.phpt Log: - MFB: New parameter parsing API - WS, Cosmetics
http://cvs.php.net/viewvc.cgi/php-src/ext/pspell/pspell.c?r1=1.62&r2=1.63&diff_format=u Index: php-src/ext/pspell/pspell.c diff -u php-src/ext/pspell/pspell.c:1.62 php-src/ext/pspell/pspell.c:1.63 --- php-src/ext/pspell/pspell.c:1.62 Wed Aug 13 08:08:30 2008 +++ php-src/ext/pspell/pspell.c Sat Aug 23 16:20:14 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pspell.c,v 1.62 2008/08/13 08:08:30 tony2001 Exp $ */ +/* $Id: pspell.c,v 1.63 2008/08/23 16:20:14 felipe Exp $ */ #define IS_EXT_MODULE @@ -247,18 +247,16 @@ } #define PSPELL_FETCH_CONFIG \ - convert_to_long_ex(conf); \ - config = (PspellConfig *) zend_list_find(Z_LVAL_PP(conf), &type); \ + config = (PspellConfig *) zend_list_find(conf, &type); \ if (config == NULL || type != le_pspell_config) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", Z_LVAL_PP(conf)); \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL config index", conf); \ RETURN_FALSE; \ } \ #define PSPELL_FETCH_MANAGER \ - convert_to_long_ex(scin); \ - manager = (PspellManager *) zend_list_find(Z_LVAL_PP(scin), &type); \ + manager = (PspellManager *) zend_list_find(scin, &type); \ if (!manager || type != le_pspell) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", Z_LVAL_PP(scin)); \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a PSPELL result index", scin); \ RETURN_FALSE; \ } \ @@ -280,9 +278,10 @@ Load a dictionary */ static PHP_FUNCTION(pspell_new) { - zval **language,**spelling,**jargon,**encoding,**pmode; + char *language, *spelling = NULL, *jargon = NULL, *encoding = NULL; + int language_len, spelling_len = 0, jargon_len = 0, encoding_len = 0; long mode = 0L, speed = 0L; - int argc; + int argc = ZEND_NUM_ARGS(); int ind; #ifdef PHP_WIN32 @@ -297,9 +296,9 @@ PspellManager *manager; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc < 1 || argc > 5 || zend_get_parameters_ex(argc,&language,&spelling,&jargon,&encoding,&pmode) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(argc TSRMLS_CC, "s|sssl", &language, &language_len, &spelling, &spelling_len, + &jargon, &jargon_len, &encoding, &encoding_len, &mode) == FAILURE) { + return; } config = new_pspell_config(); @@ -308,12 +307,12 @@ /* If aspell was installed using installer, we should have a key * pointing to the location of the dictionaries */ - if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { + if (0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { LONG result; dwLen = sizeof(aspell_dir) - 1; result = RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); RegCloseKey(hkey); - if(result == ERROR_SUCCESS) { + if (result == ERROR_SUCCESS) { strlcpy(data_dir, aspell_dir, sizeof(data_dir)); strlcat(data_dir, "\\data", sizeof(data_dir)); strlcpy(dict_dir, aspell_dir, sizeof(dict_dir)); @@ -325,46 +324,40 @@ } #endif - convert_to_string_ex(language); - pspell_config_replace(config, "language-tag", Z_STRVAL_PP(language)); + pspell_config_replace(config, "language-tag", language); - if(argc > 1){ - convert_to_string_ex(spelling); - if(Z_STRLEN_PP(spelling) > 0){ - pspell_config_replace(config, "spelling", Z_STRVAL_PP(spelling)); + if (argc > 1) { + if (spelling_len > 0) { + pspell_config_replace(config, "spelling", spelling); } } - if(argc > 2){ - convert_to_string_ex(jargon); - if(Z_STRLEN_PP(jargon) > 0){ - pspell_config_replace(config, "jargon", Z_STRVAL_PP(jargon)); + if (argc > 2) { + if (jargon_len > 0) { + pspell_config_replace(config, "jargon", jargon); } } - if(argc > 3){ - convert_to_string_ex(encoding); - if(Z_STRLEN_PP(encoding) > 0){ - pspell_config_replace(config, "encoding", Z_STRVAL_PP(encoding)); + if (argc > 3) { + if (encoding_len > 0) { + pspell_config_replace(config, "encoding", encoding); } } - if(argc > 4){ - convert_to_long_ex(pmode); - mode = Z_LVAL_PP(pmode); + if (argc > 4) { speed = mode & PSPELL_SPEED_MASK_INTERNAL; /* First check what mode we want (how many suggestions) */ - if(speed == PSPELL_FAST){ + if (speed == PSPELL_FAST) { pspell_config_replace(config, "sug-mode", "fast"); - }else if(speed == PSPELL_NORMAL){ + } else if (speed == PSPELL_NORMAL) { pspell_config_replace(config, "sug-mode", "normal"); - }else if(speed == PSPELL_BAD_SPELLERS){ + } else if (speed == PSPELL_BAD_SPELLERS) { pspell_config_replace(config, "sug-mode", "bad-spellers"); } /* Then we see if run-together words should be treated as valid components */ - if(mode & PSPELL_RUN_TOGETHER){ + if (mode & PSPELL_RUN_TOGETHER) { pspell_config_replace(config, "run-together", "true"); } } @@ -372,7 +365,7 @@ ret = new_pspell_manager(config); delete_pspell_config(config); - if(pspell_error_number(ret) != 0){ + if (pspell_error_number(ret) != 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't open the dictionary. reason: %s", pspell_error_message(ret)); delete_pspell_can_have_error(ret); RETURN_FALSE; @@ -388,9 +381,10 @@ Load a dictionary with a personal wordlist*/ static PHP_FUNCTION(pspell_new_personal) { - zval **personal, **language,**spelling,**jargon,**encoding,**pmode; + char *personal, *language, *spelling = NULL, *jargon = NULL, *encoding = NULL; + int personal_len, language_len, spelling_len = 0, jargon_len = 0, encoding_len = 0; long mode = 0L, speed = 0L; - int argc; + int argc = ZEND_NUM_ARGS(); int ind; #ifdef PHP_WIN32 @@ -405,9 +399,9 @@ PspellManager *manager; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc < 2 || argc > 6 || zend_get_parameters_ex(argc,&personal,&language,&spelling,&jargon,&encoding,&pmode) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(argc TSRMLS_CC, "ss|sssl", &personal, &personal_len, &language, &language_len, + &spelling, &spelling_len, &jargon, &jargon_len, &encoding, &encoding_len, &mode) == FAILURE) { + return; } config = new_pspell_config(); @@ -416,12 +410,12 @@ /* If aspell was installed using installer, we should have a key * pointing to the location of the dictionaries */ - if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { + if (0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { LONG result; dwLen = sizeof(aspell_dir) - 1; result = RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); RegCloseKey(hkey); - if(result == ERROR_SUCCESS) { + if (result == ERROR_SUCCESS) { strlcpy(data_dir, aspell_dir, sizeof(data_dir)); strlcat(data_dir, "\\data", sizeof(data_dir)); strlcpy(dict_dir, aspell_dir, sizeof(dict_dir)); @@ -433,56 +427,47 @@ } #endif - convert_to_string_ex(personal); - - if (php_check_open_basedir(Z_STRVAL_PP(personal) TSRMLS_CC)) { + if (php_check_open_basedir(personal TSRMLS_CC)) { delete_pspell_config(config); RETURN_FALSE; } - pspell_config_replace(config, "personal", Z_STRVAL_PP(personal)); + pspell_config_replace(config, "personal", personal); pspell_config_replace(config, "save-repl", "false"); + pspell_config_replace(config, "language-tag", language); - convert_to_string_ex(language); - pspell_config_replace(config, "language-tag", Z_STRVAL_PP(language)); - - if(argc > 2){ - convert_to_string_ex(spelling); - if(Z_STRLEN_PP(spelling) > 0){ - pspell_config_replace(config, "spelling", Z_STRVAL_PP(spelling)); + if (argc > 2) { + if (spelling_len > 0) { + pspell_config_replace(config, "spelling", spelling); } } - if(argc > 3){ - convert_to_string_ex(jargon); - if(Z_STRLEN_PP(jargon) > 0){ - pspell_config_replace(config, "jargon", Z_STRVAL_PP(jargon)); + if (argc > 3) { + if (jargon_len > 0) { + pspell_config_replace(config, "jargon", jargon); } } - if(argc > 4){ - convert_to_string_ex(encoding); - if(Z_STRLEN_PP(encoding) > 0){ - pspell_config_replace(config, "encoding", Z_STRVAL_PP(encoding)); + if (argc > 4) { + if (encoding_len > 0) { + pspell_config_replace(config, "encoding", encoding); } } - if(argc > 5){ - convert_to_long_ex(pmode); - mode = Z_LVAL_PP(pmode); + if (argc > 5) { speed = mode & PSPELL_SPEED_MASK_INTERNAL; /* First check what mode we want (how many suggestions) */ - if(speed == PSPELL_FAST){ + if (speed == PSPELL_FAST) { pspell_config_replace(config, "sug-mode", "fast"); - }else if(speed == PSPELL_NORMAL){ + } else if (speed == PSPELL_NORMAL) { pspell_config_replace(config, "sug-mode", "normal"); - }else if(speed == PSPELL_BAD_SPELLERS){ + } else if (speed == PSPELL_BAD_SPELLERS) { pspell_config_replace(config, "sug-mode", "bad-spellers"); } /* Then we see if run-together words should be treated as valid components */ - if(mode & PSPELL_RUN_TOGETHER){ + if (mode & PSPELL_RUN_TOGETHER) { pspell_config_replace(config, "run-together", "true"); } } @@ -490,7 +475,7 @@ ret = new_pspell_manager(config); delete_pspell_config(config); - if(pspell_error_number(ret) != 0){ + if (pspell_error_number(ret) != 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't open the dictionary. reason: %s", pspell_error_message(ret)); delete_pspell_can_have_error(ret); RETURN_FALSE; @@ -506,25 +491,21 @@ Load a dictionary based on the given config */ static PHP_FUNCTION(pspell_new_config) { - int type; - zval **conf; - int argc; - int ind; - + int type, ind; + long conf; PspellCanHaveError *ret; PspellManager *manager; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 1 || zend_get_parameters_ex(argc,&conf) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &conf) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; ret = new_pspell_manager(config); - if(pspell_error_number(ret) != 0){ + if (pspell_error_number(ret) != 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't open the dictionary. reason: %s", pspell_error_message(ret)); delete_pspell_can_have_error(ret); RETURN_FALSE; @@ -540,23 +521,20 @@ Returns true if word is valid */ static PHP_FUNCTION(pspell_check) { - int type; - zval **scin,**word; + int type, word_len; + long scin; + char *word; PspellManager *manager; - int argc; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &scin, &word, &word_len) == FAILURE) { + return; } - - convert_to_string_ex(word); PSPELL_FETCH_MANAGER; - if(pspell_manager_check(manager, Z_STRVAL_PP(word))){ + if (pspell_manager_check(manager, word)) { RETURN_TRUE; - }else{ + } else { RETURN_FALSE; } } @@ -566,31 +544,30 @@ Returns array of suggestions */ static PHP_FUNCTION(pspell_suggest) { - zval **scin, **word; - int argc; + long scin; + char *word; + int word_len; PspellManager *manager; int type; const PspellWordList *wl; const char *sug; - argc = ZEND_NUM_ARGS(); - if(argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &scin, &word, &word_len) == FAILURE) { + return; } - - convert_to_string_ex(word); + PSPELL_FETCH_MANAGER; array_init(return_value); - wl = pspell_manager_suggest(manager, Z_STRVAL_PP(word)); - if(wl){ + wl = pspell_manager_suggest(manager, word); + if (wl) { PspellStringEmulation *els = pspell_word_list_elements(wl); - while((sug = pspell_string_emulation_next(els)) != 0){ + while ((sug = pspell_string_emulation_next(els)) != 0) { add_next_index_string(return_value,(char *)sug,1); } delete_pspell_string_emulation(els); - }else{ + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL had a problem. details: %s", pspell_manager_error_message(manager)); RETURN_FALSE; } @@ -601,24 +578,21 @@ Notify the dictionary of a user-selected replacement */ static PHP_FUNCTION(pspell_store_replacement) { - int type; - zval **scin,**miss,**corr; + int type, miss_len, corr_len; + long scin; + char *miss, *corr; PspellManager *manager; - int argc; - argc = ZEND_NUM_ARGS(); - if (argc != 3 || zend_get_parameters_ex(argc, &scin,&miss,&corr) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lss", &scin, &miss, &miss_len, &corr, &corr_len) == FAILURE) { + return; } - - convert_to_string_ex(miss); - convert_to_string_ex(corr); + PSPELL_FETCH_MANAGER; - pspell_manager_store_replacement(manager, Z_STRVAL_PP(miss), Z_STRVAL_PP(corr)); - if(pspell_manager_error_number(manager) == 0){ + pspell_manager_store_replacement(manager, miss, corr); + if (pspell_manager_error_number(manager) == 0) { RETURN_TRUE; - }else{ + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "pspell_store_replacement() gave error: %s", pspell_manager_error_message(manager)); RETURN_FALSE; } @@ -629,28 +603,26 @@ Adds a word to a personal list */ static PHP_FUNCTION(pspell_add_to_personal) { - int type; - zval **scin,**word; + int type, word_len; + long scin; + char *word; PspellManager *manager; - int argc; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &scin, &word, &word_len) == FAILURE) { + return; } - - convert_to_string_ex(word); + PSPELL_FETCH_MANAGER; /*If the word is empty, we have to return; otherwise we'll segfault! ouch!*/ - if(Z_STRLEN_PP(word) == 0){ + if (word_len == 0) { RETURN_FALSE; } - pspell_manager_add_to_personal(manager, Z_STRVAL_PP(word)); - if(pspell_manager_error_number(manager) == 0){ + pspell_manager_add_to_personal(manager, word); + if (pspell_manager_error_number(manager) == 0) { RETURN_TRUE; - }else{ + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "pspell_add_to_personal() gave error: %s", pspell_manager_error_message(manager)); RETURN_FALSE; } @@ -661,28 +633,26 @@ Adds a word to the current session */ static PHP_FUNCTION(pspell_add_to_session) { - int type; - zval **scin,**word; + int type, word_len; + long scin; + char *word; PspellManager *manager; - int argc; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &scin, &word, &word_len) == FAILURE) { + return; } - convert_to_string_ex(word); PSPELL_FETCH_MANAGER; /*If the word is empty, we have to return; otherwise we'll segfault! ouch!*/ - if(Z_STRLEN_PP(word) == 0){ + if (word_len == 0) { RETURN_FALSE; } - pspell_manager_add_to_session(manager, Z_STRVAL_PP(word)); - if(pspell_manager_error_number(manager) == 0){ + pspell_manager_add_to_session(manager, word); + if (pspell_manager_error_number(manager) == 0) { RETURN_TRUE; - }else{ + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "pspell_add_to_session() gave error: %s", pspell_manager_error_message(manager)); RETURN_FALSE; } @@ -694,21 +664,19 @@ static PHP_FUNCTION(pspell_clear_session) { int type; - zval **scin; + long scin; PspellManager *manager; - int argc; - argc = ZEND_NUM_ARGS(); - if (argc != 1 || zend_get_parameters_ex(argc, &scin) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &scin) == FAILURE) { + return; } PSPELL_FETCH_MANAGER; pspell_manager_clear_session(manager); - if(pspell_manager_error_number(manager) == 0){ + if (pspell_manager_error_number(manager) == 0) { RETURN_TRUE; - }else{ + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "pspell_clear_session() gave error: %s", pspell_manager_error_message(manager)); RETURN_FALSE; } @@ -720,22 +688,20 @@ static PHP_FUNCTION(pspell_save_wordlist) { int type; - zval **scin; + long scin; PspellManager *manager; - int argc; - argc = ZEND_NUM_ARGS(); - if (argc != 1 || zend_get_parameters_ex(argc, &scin) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &scin) == FAILURE) { + return; } PSPELL_FETCH_MANAGER; pspell_manager_save_all_word_lists(manager); - if(pspell_manager_error_number(manager) == 0){ + if (pspell_manager_error_number(manager) == 0) { RETURN_TRUE; - }else{ + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "pspell_save_wordlist() gave error: %s", pspell_manager_error_message(manager)); RETURN_FALSE; } @@ -747,10 +713,9 @@ Create a new config to be used later to create a manager */ static PHP_FUNCTION(pspell_config_create) { - zval **language,**spelling,**jargon,**encoding; - int argc; + char *language, *spelling = NULL, *jargon = NULL, *encoding = NULL; + int language_len, spelling_len = 0, jargon_len = 0, encoding_len = 0; int ind; - PspellConfig *config; #ifdef PHP_WIN32 @@ -761,9 +726,9 @@ DWORD dwType,dwLen; #endif - argc = ZEND_NUM_ARGS(); - if (argc < 1 || argc > 4 || zend_get_parameters_ex(argc,&language,&spelling,&jargon,&encoding) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|sss", &language, &language_len, &spelling, &spelling_len, + &jargon, &jargon_len, &encoding, &encoding_len) == FAILURE) { + return; } config = new_pspell_config(); @@ -772,12 +737,12 @@ /* If aspell was installed using installer, we should have a key * pointing to the location of the dictionaries */ - if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { + if (0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { LONG result; dwLen = sizeof(aspell_dir) - 1; result = RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); RegCloseKey(hkey); - if(result == ERROR_SUCCESS) { + if (result == ERROR_SUCCESS) { strlcpy(data_dir, aspell_dir, sizeof(data_dir)); strlcat(data_dir, "\\data", sizeof(data_dir)); strlcpy(dict_dir, aspell_dir, sizeof(dict_dir)); @@ -789,28 +754,18 @@ } #endif - convert_to_string_ex(language); - pspell_config_replace(config, "language-tag", Z_STRVAL_PP(language)); + pspell_config_replace(config, "language-tag", language); - if(argc > 1){ - convert_to_string_ex(spelling); - if(Z_STRLEN_PP(spelling) > 0){ - pspell_config_replace(config, "spelling", Z_STRVAL_PP(spelling)); - } + if (spelling_len) { + pspell_config_replace(config, "spelling", spelling); } - if(argc > 2){ - convert_to_string_ex(jargon); - if(Z_STRLEN_PP(jargon) > 0){ - pspell_config_replace(config, "jargon", Z_STRVAL_PP(jargon)); - } + if (jargon_len) { + pspell_config_replace(config, "jargon", jargon); } - if(argc > 3){ - convert_to_string_ex(encoding); - if(Z_STRLEN_PP(encoding) > 0){ - pspell_config_replace(config, "encoding", Z_STRVAL_PP(encoding)); - } + if (encoding_len) { + pspell_config_replace(config, "encoding", encoding); } /* By default I do not want to write anything anywhere because it'll try to write to $HOME @@ -827,20 +782,17 @@ static PHP_FUNCTION(pspell_config_runtogether) { int type; - zval **conf, **runtogether; - int argc; - + long conf; + zend_bool runtogether; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc,&conf,&runtogether) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lb", &conf, &runtogether) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; - convert_to_boolean_ex(runtogether); - pspell_config_replace(config, "run-together", Z_LVAL_PP(runtogether) ? "true" : "false"); + pspell_config_replace(config, "run-together", runtogether ? "true" : "false"); RETURN_TRUE; } @@ -851,26 +803,21 @@ static PHP_FUNCTION(pspell_config_mode) { int type; - zval **conf, **mode; - int argc; - + long conf, mode; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc,&conf,&mode) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &conf, &mode) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; - convert_to_long_ex(mode); - /* First check what mode we want (how many suggestions) */ - if(Z_LVAL_PP(mode) == PSPELL_FAST){ + if (mode == PSPELL_FAST) { pspell_config_replace(config, "sug-mode", "fast"); - }else if(Z_LVAL_PP(mode) == PSPELL_NORMAL){ + } else if (mode == PSPELL_NORMAL) { pspell_config_replace(config, "sug-mode", "normal"); - }else if(Z_LVAL_PP(mode) == PSPELL_BAD_SPELLERS){ + } else if (mode == PSPELL_BAD_SPELLERS) { pspell_config_replace(config, "sug-mode", "bad-spellers"); } @@ -883,24 +830,16 @@ static PHP_FUNCTION(pspell_config_ignore) { int type; - zval **conf, **pignore; - int argc; - char ignore_str[MAX_LENGTH_OF_LONG + 1]; - long ignore = 0L; - + long conf, ignore = 0L; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc,&conf,&pignore) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &conf, &ignore) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; - convert_to_long_ex(pignore); - ignore = Z_LVAL_PP(pignore); - snprintf(ignore_str, sizeof(ignore_str), "%ld", ignore); pspell_config_replace(config, "ignore", ignore_str); @@ -911,24 +850,22 @@ static void pspell_config_path(INTERNAL_FUNCTION_PARAMETERS, char *option) { int type; - zval **conf, **value; - int argc; + long conf; + char *value; + int value_len; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc, &conf, &value) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &conf, &value, &value_len) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; - convert_to_string_ex(value); - - if (php_check_open_basedir(Z_STRVAL_PP(value) TSRMLS_CC)) { + if (php_check_open_basedir(value TSRMLS_CC)) { RETURN_FALSE; } - pspell_config_replace(config, option, Z_STRVAL_PP(value)); + pspell_config_replace(config, option, value); RETURN_TRUE; } @@ -962,27 +899,24 @@ static PHP_FUNCTION(pspell_config_repl) { int type; - zval **conf, **repl; - int argc; - + long conf; + char *repl; + int repl_len; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc,&conf,&repl) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls", &conf, &repl, &repl_len) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; pspell_config_replace(config, "save-repl", "true"); - convert_to_string_ex(repl); - - if (php_check_open_basedir(Z_STRVAL_PP(repl) TSRMLS_CC)) { + if (php_check_open_basedir(repl TSRMLS_CC)) { RETURN_FALSE; } - pspell_config_replace(config, "repl", Z_STRVAL_PP(repl)); + pspell_config_replace(config, "repl", repl); RETURN_TRUE; } @@ -993,20 +927,17 @@ static PHP_FUNCTION(pspell_config_save_repl) { int type; - zval **conf, **save; - int argc; - + long conf; + zend_bool save; PspellConfig *config; - argc = ZEND_NUM_ARGS(); - if (argc != 2 || zend_get_parameters_ex(argc,&conf,&save) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lb", &conf, &save) == FAILURE) { + return; } PSPELL_FETCH_CONFIG; - convert_to_boolean_ex(save); - pspell_config_replace(config, "save-repl", Z_LVAL_PP(save) ? "true" : "false"); + pspell_config_replace(config, "save-repl", save ? "true" : "false"); RETURN_TRUE; } http://cvs.php.net/viewvc.cgi/php-src/ext/pspell/tests/002.phpt?r1=1.3&r2=1.4&diff_format=u Index: php-src/ext/pspell/tests/002.phpt diff -u php-src/ext/pspell/tests/002.phpt:1.3 php-src/ext/pspell/tests/002.phpt:1.4 --- php-src/ext/pspell/tests/002.phpt:1.3 Thu Jun 29 22:54:42 2006 +++ php-src/ext/pspell/tests/002.phpt Sat Aug 23 16:20:14 2008 @@ -29,16 +29,14 @@ } ?> --EXPECTF-- -Warning: Wrong parameter count for pspell_check() in %s002.php on line 5 +Warning: pspell_check() expects exactly 2 parameters, 1 given in %s002.php on line %d NULL bool(false) bool(false) bool(true) bool(true) -Notice: Object of class stdClass could not be converted to int in %s002.php on line 12 - -Warning: pspell_clear_session(): 1 is not a PSPELL result index in %s002.php on line 12 -bool(false) +Warning: pspell_clear_session() expects parameter 1 to be long, object given in %s002.php on line %d +NULL bool(true) bool(false)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php