cvs: php4 /ext/mbstring mbfilter.c mbfilter.h mbstring.c

From: Date: Tue, 08 May 2001 14:33:21 +0000
Subject: cvs: php4 /ext/mbstring mbfilter.c mbfilter.h mbstring.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-5595@lists.php.net to get a copy of this message
hirokawa Tue May 8 07:33:21 2001 EDT Modified files: /php4/ext/mbstring mbfilter.c mbfilter.h mbstring.c Log: added mb_language to ext/mbstring. Index: php4/ext/mbstring/mbfilter.c diff -u php4/ext/mbstring/mbfilter.c:1.4 php4/ext/mbstring/mbfilter.c:1.5 --- php4/ext/mbstring/mbfilter.c:1.4 Mon May 7 06:57:59 2001 +++ php4/ext/mbstring/mbfilter.c Tue May 8 07:33:20 2001 @@ -77,7 +77,7 @@ * */ -/* $Id: mbfilter.c,v 1.4 2001/05/07 13:57:59 hirokawa Exp $ */ +/* $Id: mbfilter.c,v 1.5 2001/05/08 14:33:20 hirokawa Exp $ */ #include <stdlib.h> @@ -1779,6 +1779,13 @@ } } + i = 0; + while ((language = mbfl_language_ptr_table[i++]) != NULL){ + if (strcasecmp(language->short_name, name) == 0) { + return language; + } + } + /* serch aliases */ i = 0; while ((language = mbfl_language_ptr_table[i++]) != NULL) { @@ -1824,6 +1831,20 @@ return language->no_language; } } + +const char * +mbfl_no_language2name(enum mbfl_no_language no_language) +{ + mbfl_language *language; + + language = mbfl_no2language(no_language); + if (language == NULL) { + return ""; + } else { + return language->name; + } +} + /* encoding resolver */ Index: php4/ext/mbstring/mbfilter.h diff -u php4/ext/mbstring/mbfilter.h:1.2 php4/ext/mbstring/mbfilter.h:1.3 --- php4/ext/mbstring/mbfilter.h:1.2 Mon May 7 06:57:59 2001 +++ php4/ext/mbstring/mbfilter.h Tue May 8 07:33:20 2001 @@ -84,7 +84,7 @@ * */ -/* $Id: mbfilter.h,v 1.2 2001/05/07 13:57:59 hirokawa Exp $ */ +/* $Id: mbfilter.h,v 1.3 2001/05/08 14:33:20 hirokawa Exp $ */ #ifndef MBFL_MBFILTER_H @@ -255,6 +255,7 @@ mbfl_language * mbfl_name2language(const char *name); mbfl_language * mbfl_no2language(enum mbfl_no_language no_language); enum mbfl_no_language mbfl_name2no_language(const char *name); +const char * mbfl_no_language2name(enum mbfl_no_language no_language); /* Index: php4/ext/mbstring/mbstring.c diff -u php4/ext/mbstring/mbstring.c:1.10 php4/ext/mbstring/mbstring.c:1.11 --- php4/ext/mbstring/mbstring.c:1.10 Sun May 6 15:25:14 2001 +++ php4/ext/mbstring/mbstring.c Tue May 8 07:33:20 2001 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.c,v 1.10 2001/05/06 22:25:14 eschmid Exp $ */ +/* $Id: mbstring.c,v 1.11 2001/05/08 14:33:20 hirokawa Exp $ */ /* * PHP4 Multibyte String module "mbstring" (currently only for Japanese) @@ -84,6 +84,7 @@ #endif function_entry mbstring_functions[] = { + PHP_FE(mb_language, NULL) PHP_FE(mb_internal_encoding, NULL) PHP_FE(mb_http_input, NULL) PHP_FE(mb_http_output, NULL) @@ -506,6 +507,40 @@ DISPLAY_INI_ENTRIES(); } + + + +/* {{{ proto string mb_language([string language]) + Sets the current language or Returns the current language as a string. */ +PHP_FUNCTION(mb_language) +{ + pval **arg1; + char *name; + enum mbfl_no_language no_language; + MBSTRLS_FETCH(); + + if (ZEND_NUM_ARGS() == 0) { + name = (char *)mbfl_no_language2name(MBSTRG(current_language)); + if (name != NULL) { + RETURN_STRING(name, 1); + } else { + RETURN_FALSE; + } + } else if (ZEND_NUM_ARGS() == 1 && zend_get_parameters_ex(1, &arg1) != FAILURE) { + convert_to_string_ex(arg1); + no_language = mbfl_name2no_language(Z_STRVAL_PP(arg1)); + if (no_language == mbfl_no_language_invalid) { + php_error(E_WARNING, "unknown language \"%s\"", Z_STRVAL_PP(arg1)); + RETURN_FALSE; + } else { + MBSTRG(current_language) = no_language; + RETURN_TRUE; + } + } else { + WRONG_PARAM_COUNT; + } +} +/* }}} */

« previous php.cvs (#5595) next »