⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pspell.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	if(argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) {		WRONG_PARAM_COUNT;	}    	convert_to_string_ex(word);	PSPELL_FETCH_MANAGER;	array_init(return_value);	wl = pspell_manager_suggest(manager, Z_STRVAL_PP(word));	if(wl){		PspellStringEmulation *els = pspell_word_list_elements(wl);		while((sug = pspell_string_emulation_next(els)) != 0){			add_next_index_string(return_value,(char *)sug,1);		}		delete_pspell_string_emulation(els);	}else{		php_error(E_WARNING, "PSPELL had a problem. details: %s ", pspell_manager_error_message(manager));		RETURN_FALSE;	}}/* }}} *//* {{{ proto int pspell_store_replacement(int pspell, string misspell, string correct)   Notify the dictionary of a user-selected replacement */PHP_FUNCTION(pspell_store_replacement){	int type;	zval **scin,**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;	}    	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){		RETURN_TRUE;	}else{		php_error(E_WARNING, "pspell_store_replacement() gave error: %s", pspell_manager_error_message(manager));		RETURN_FALSE;	}}/* }}} *//* {{{ proto int pspell_add_to_personal(int pspell, string word)   Adds a word to a personal list */PHP_FUNCTION(pspell_add_to_personal){	int type;	zval **scin,**word;	PspellManager *manager;	int argc;	argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) {		WRONG_PARAM_COUNT;	}    	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){		RETURN_FALSE;	}		pspell_manager_add_to_personal(manager, Z_STRVAL_PP(word));	if(pspell_manager_error_number(manager) == 0){		RETURN_TRUE;	}else{		php_error(E_WARNING, "pspell_add_to_personal() gave error: %s", pspell_manager_error_message(manager));		RETURN_FALSE;	}}/* }}} *//* {{{ proto int pspell_add_to_session(int pspell, string word)   Adds a word to the current session */PHP_FUNCTION(pspell_add_to_session){	int type;	zval **scin,**word;	PspellManager *manager;	int argc;	argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc, &scin,&word) == FAILURE) {		WRONG_PARAM_COUNT;	}    	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){		RETURN_FALSE;	}	pspell_manager_add_to_session(manager, Z_STRVAL_PP(word));	if(pspell_manager_error_number(manager) == 0){		RETURN_TRUE;	}else{		php_error(E_WARNING, "pspell_add_to_session() gave error: %s", pspell_manager_error_message(manager));		RETURN_FALSE;	}}/* }}} *//* {{{ proto int pspell_clear_session(int pspell)   Clears the current session */PHP_FUNCTION(pspell_clear_session){	int type;	zval **scin;	PspellManager *manager;	int argc;	argc = ZEND_NUM_ARGS();	if (argc != 1 || zend_get_parameters_ex(argc, &scin) == FAILURE) {		WRONG_PARAM_COUNT;	}    	PSPELL_FETCH_MANAGER;	pspell_manager_clear_session(manager);	if(pspell_manager_error_number(manager) == 0){		RETURN_TRUE;	}else{		php_error(E_WARNING, "pspell_clear_session() gave error: %s", pspell_manager_error_message(manager));		RETURN_FALSE;	}}/* }}} *//* {{{ proto int pspell_save_wordlist(int pspell)   Saves the current (personal) wordlist */PHP_FUNCTION(pspell_save_wordlist){	int type;	zval **scin;	PspellManager *manager;	int argc;	argc = ZEND_NUM_ARGS();	if (argc != 1 || zend_get_parameters_ex(argc, &scin) == FAILURE) {		WRONG_PARAM_COUNT;	}    	PSPELL_FETCH_MANAGER;	pspell_manager_save_all_word_lists(manager);	if(pspell_manager_error_number(manager) == 0){		RETURN_TRUE;	}else{		php_error(E_WARNING, "pspell_save_wordlist() gave error: %s", pspell_manager_error_message(manager));		RETURN_FALSE;	}}/* }}} *//* {{{ proto int pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]])   Create a new config to be used later to create a manager */PHP_FUNCTION(pspell_config_create){	zval **language,**spelling,**jargon,**encoding;	int argc;	int ind;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc < 1 || argc > 4 || zend_get_parameters_ex(argc,&language,&spelling,&jargon,&encoding) == FAILURE) {		WRONG_PARAM_COUNT;	}	config = new_pspell_config();	convert_to_string_ex(language);	pspell_config_replace(config, "language-tag", Z_STRVAL_PP(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 > 2){		convert_to_string_ex(jargon);		if(Z_STRLEN_PP(jargon) > 0){			pspell_config_replace(config, "jargon", Z_STRVAL_PP(jargon));		}	}	if(argc > 3){		convert_to_string_ex(encoding);		if(Z_STRLEN_PP(encoding) > 0){			pspell_config_replace(config, "encoding", Z_STRVAL_PP(encoding));		}	}	/* By default I do not want to write anything anywhere because it'll try to write to $HOME	which is not what we want */	pspell_config_replace(config, "save-repl", "false");	ind = zend_list_insert(config, le_pspell_config);	RETURN_LONG(ind);}/* }}} *//* {{{ proto int pspell_config_runtogether(int conf, bool runtogether)   Consider run-together words as valid components */PHP_FUNCTION(pspell_config_runtogether){	int type;	zval **conf, **runtogether;	int argc;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc,&conf,&runtogether) == FAILURE) {		WRONG_PARAM_COUNT;	}	PSPELL_FETCH_CONFIG;	convert_to_boolean_ex(runtogether);	pspell_config_replace(config, "run-together", Z_LVAL_PP(runtogether) ? "true" : "false");		RETURN_TRUE;}/* }}} *//* {{{ proto int pspell_config_mode(int conf, long mode)   Select mode for config (PSPELL_FAST, PSPELL_NORMAL or PSPELL_BAD_SPELLERS) */PHP_FUNCTION(pspell_config_mode){	int type;	zval **conf, **mode;	int argc;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc,&conf,&mode) == FAILURE) {		WRONG_PARAM_COUNT;	}	PSPELL_FETCH_CONFIG;	convert_to_long_ex(mode);	/* First check what mode we want (how many suggestions) */	if(Z_LVAL_PP(mode) == PSPELL_FAST){		pspell_config_replace(config, "sug-mode", "fast");	}else if(Z_LVAL_PP(mode) == PSPELL_NORMAL){		pspell_config_replace(config, "sug-mode", "normal");	}else if(Z_LVAL_PP(mode) == PSPELL_BAD_SPELLERS){		pspell_config_replace(config, "sug-mode", "bad-spellers");	}	RETURN_TRUE;}/* }}} *//* {{{ proto int pspell_config_ignore(int conf, int ignore)   Ignore words <= n chars */PHP_FUNCTION(pspell_config_ignore){	int type;	zval **conf, **pignore;	int argc;	char ignore_str[MAX_LENGTH_OF_LONG + 1];		long ignore = 0L;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc,&conf,&pignore) == FAILURE) {		WRONG_PARAM_COUNT;	}	PSPELL_FETCH_CONFIG;	convert_to_long_ex(pignore);	ignore = Z_LVAL_PP(pignore);	sprintf(ignore_str, "%ld", ignore);	pspell_config_replace(config, "ignore", ignore_str);	RETURN_TRUE;}/* }}} *//* {{{ proto int pspell_config_personal(int conf, string personal)   Use a personal dictionary for this config */PHP_FUNCTION(pspell_config_personal){	int type;	zval **conf, **personal;	int argc;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc,&conf,&personal) == FAILURE) {		WRONG_PARAM_COUNT;	}	PSPELL_FETCH_CONFIG;	convert_to_string_ex(personal);	if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(personal), NULL, CHECKUID_CHECK_FILE_AND_DIR))) {		RETURN_FALSE;	}	if (php_check_open_basedir(Z_STRVAL_PP(personal) TSRMLS_CC)) {		RETURN_FALSE;	}	pspell_config_replace(config, "personal", Z_STRVAL_PP(personal));	RETURN_TRUE;}/* }}} *//* {{{ proto int pspell_config_repl(int conf, string repl)   Use a personal dictionary with replacement pairs for this config */PHP_FUNCTION(pspell_config_repl){	int type;	zval **conf, **repl;	int argc;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc,&conf,&repl) == FAILURE) {		WRONG_PARAM_COUNT;	}	PSPELL_FETCH_CONFIG;	pspell_config_replace(config, "save-repl", "true");	convert_to_string_ex(repl);	if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(repl), NULL, CHECKUID_CHECK_FILE_AND_DIR))) {		RETURN_FALSE;	}	if (php_check_open_basedir(Z_STRVAL_PP(repl) TSRMLS_CC)) {		RETURN_FALSE;	}	pspell_config_replace(config, "repl", Z_STRVAL_PP(repl));	RETURN_TRUE;}/* }}} *//* {{{ proto int pspell_config_save_repl(int conf, bool save)   Save replacement pairs when personal list is saved for this config */PHP_FUNCTION(pspell_config_save_repl){	int type;	zval **conf, **save;	int argc;	PspellConfig *config;		argc = ZEND_NUM_ARGS();	if (argc != 2 || zend_get_parameters_ex(argc,&conf,&save) == FAILURE) {		WRONG_PARAM_COUNT;	}	PSPELL_FETCH_CONFIG;	convert_to_boolean_ex(save);	pspell_config_replace(config, "save-repl", Z_LVAL_PP(save) ? "true" : "false");	RETURN_TRUE;}/* }}} *//* {{{ PHP_MINFO_FUNCTION */PHP_MINFO_FUNCTION(pspell){	php_info_print_table_start();	php_info_print_table_row(2, "PSpell Support", "enabled");	php_info_print_table_end();}/* }}} */#endif/* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim600: sw=4 ts=4 fdm=marker * vim<600: sw=4 ts=4 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -