summaryrefslogtreecommitdiff
path: root/ext/mbstring
diff options
context:
space:
mode:
authorRui Hirokawa <hirokawa@php.net>2003-10-25 10:29:07 +0000
committerRui Hirokawa <hirokawa@php.net>2003-10-25 10:29:07 +0000
commitc4b163de889605fa333a4eaf67ef165872b342ad (patch)
tree17300b4d6f2b9bc3429cc2e3eb6ef25dcdba4fdd /ext/mbstring
parente1fd9aed8f1d60fc59c80ac7141189a0dcfd1efb (diff)
downloadphp-git-c4b163de889605fa333a4eaf67ef165872b342ad.tar.gz
encoding detection shouldn't be performed if mbstring.http_input is set to auto or any valid encoding.
Diffstat (limited to 'ext/mbstring')
-rw-r--r--ext/mbstring/mbstring.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index d0dd74602b..bb86dc0633 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -3354,6 +3354,10 @@ MBSTRING_API int php_mb_gpc_encoding_converter(char **str, int *len, int num, co
from_encoding = MBSTRG(http_input_identify);
}
+ if (from_encoding == mbfl_no_encoding_pass) {
+ return 0;
+ }
+
/* initialize string */
mbfl_string_init(&string);
mbfl_string_init(&result);
@@ -3396,6 +3400,19 @@ MBSTRING_API int php_mb_gpc_encoding_detector(char **arg_string, int *arg_length
int size, *list;
+ if (MBSTRG(http_input_list_size) == 1 &&
+ MBSTRG(http_input_list)[0] == mbfl_no_encoding_pass) {
+ MBSTRG(http_input_identify) = mbfl_no_encoding_pass;
+ return SUCCESS;
+ }
+
+ if (MBSTRG(http_input_list_size) == 1 &&
+ MBSTRG(http_input_list)[0] != mbfl_no_encoding_auto &&
+ mbfl_no_encoding2name(MBSTRG(http_input_list)[0]) != NULL) {
+ MBSTRG(http_input_identify) = MBSTRG(http_input_list)[0];
+ return SUCCESS;
+ }
+
if (arg_list && strlen(arg_list)>0) {
/* make encoding list */
list = NULL;