cvs: php4 /ext/mbstring mbstring.c
| From: | Marcus B�rger | Date: | Sun, 04 Aug 2002 14:10:59 +0000 |
| Subject: | cvs: php4 /ext/mbstring mbstring.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-13108@lists.php.net to get a copy of this message | ||
helly Sun Aug 4 10:10:59 2002 EDT
Modified files:
/php4/ext/mbstring mbstring.c
Log:
-Allow double quotes for encoding lists (if used in ini for example)
-New parameter 'L' for mb_http_input() to retieve input encoding as
comma separated string.
@New parameter 'L' for mb_http_input() to retrieve input encoding as
comma separated string. (marcus)
Index: php4/ext/mbstring/mbstring.c
diff -u php4/ext/mbstring/mbstring.c:1.87 php4/ext/mbstring/mbstring.c:1.88
--- php4/ext/mbstring/mbstring.c:1.87 Sat Aug 3 05:48:34 2002
+++ php4/ext/mbstring/mbstring.c Sun Aug 4 10:10:58 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.87 2002/08/03 09:48:34 andi Exp $ */
+/* $Id: mbstring.c,v 1.88 2002/08/04 14:10:58 helly Exp $ */
/*
* PHP4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -288,7 +288,12 @@
return 0;
} else {
/* copy the value string for work */
- tmpstr = (char *)estrndup(value, value_length);
+ if (value[0]=='"' && value[value_length-1]=='"' &&
value_length>2) {
+ tmpstr = (char *)estrndup(value+1, value_length-2);
+ value_length -= 2;
+ }
+ else
+ tmpstr = (char *)estrndup(value, value_length);
if (tmpstr == NULL) {
return 0;
}
@@ -644,7 +649,7 @@
PHP_INI_ENTRY("mbstring.substitute_character", NULL, PHP_INI_ALL,
OnUpdate_mbstring_substitute_character)
STD_PHP_INI_ENTRY("mbstring.func_overload", "0", PHP_INI_SYSTEM, OnUpdateInt,
func_overload, zend_mbstring_globals, mbstring_globals)
#if !defined(COMPILE_DL_MBSTRING)
- STD_PHP_INI_BOOLEAN("mbstring.encoding_translation", "0", PHP_INI_SYSTEM,
OnUpdateBool, encoding_translation, zend_mbstring_globals, mbstring_globals)
+ STD_PHP_INI_BOOLEAN("mbstring.encoding_translation", "0", PHP_INI_ALL,
OnUpdateBool, encoding_translation, zend_mbstring_globals, mbstring_globals)
#endif /* !defined(COMPILE_DL_MBSTRING) */
PHP_INI_END()
@@ -995,7 +1000,7 @@
{
pval **arg1;
int result=0, retname, n, *entry;
- char *name;
+ char *name, *list, *temp;
retname = 1;
if (ZEND_NUM_ARGS() == 0) {
@@ -1034,6 +1039,32 @@
entry++;
n--;
}
+ retname = 0;
+ break;
+ case 'L':
+ case 'l':
+ entry = MBSTRG(http_input_list);
+ n = MBSTRG(http_input_list_size);
+ list = NULL;
+ while (n > 0) {
+ name = (char *)mbfl_no_encoding2name(*entry);
+ if (name) {
+ if (list) {
+ temp = list;
+ spprintf(&list, 0, "%s,%s", temp, name);
+ efree(temp);
+ if (!list)
+ break;
+ } else {
+ list = estrdup(name);
+ }
+ }
+ entry++;
+ n--;
+ }
+ if (!list)
+ RETURN_FALSE;
+ RETVAL_STRING(list, 0);
retname = 0;
break;
default: