cvs: php4 /ext/mbstring mbstring.c
| From: | Edin Kadribasic | Date: | Mon, 15 Jul 2002 17:48:55 +0000 |
| Subject: | cvs: php4 /ext/mbstring mbstring.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-12846@lists.php.net to get a copy of this message | ||
edink Mon Jul 15 13:48:55 2002 EDT
Modified files:
/php4/ext/mbstring mbstring.c
Log:
Fix bug #16985 (wrong count of GET/POST variables).
Index: php4/ext/mbstring/mbstring.c
diff -u php4/ext/mbstring/mbstring.c:1.80 php4/ext/mbstring/mbstring.c:1.81
--- php4/ext/mbstring/mbstring.c:1.80 Fri Jul 12 00:57:14 2002
+++ php4/ext/mbstring/mbstring.c Mon Jul 15 13:48:54 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.80 2002/07/12 04:57:14 sebastian Exp $ */
+/* $Id: mbstring.c,v 1.81 2002/07/15 17:48:54 edink Exp $ */
/*
* PHP4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -1243,18 +1243,21 @@
mbfl_string_init_set(&string, MBSTRG(current_language), MBSTRG(current_internal_encoding));
mbfl_string_init_set(&resvar, MBSTRG(current_language), MBSTRG(current_internal_encoding));
mbfl_string_init_set(&resval, MBSTRG(current_language), MBSTRG(current_internal_encoding));
+
+ if (!res || *res == '\0') {
+ return;
+ }
/* count the variables contained in the query */
- num = 0;
+ num = 1;
var = res;
- n = strlen(res);
- while(n > 0) {
- if (*var == '=') {
- num++;
- }
- var++;
- n--;
+ n = strlen(separator);
+
+ while (var=strstr(var, separator)) {
+ num++;
+ var+=n;
}
+
num *= 2;
val_list = (char **)ecalloc(num, sizeof(char *));
len_list = (int *)ecalloc(num, sizeof(int));