cvs: php4 /ext/mbstring mbfilter.c mbfilter.h mbstring.c
| From: | Rui Hirokawa | 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;
+ }
+}
+/* }}} */