summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mbstring/mbstring.c4
-rw-r--r--ext/mbstring/tests/ini_mbstring_invalid.phpt3
-rw-r--r--ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt3
-rw-r--r--ext/standard/html.c5
-rw-r--r--ext/standard/tests/strings/htmlentities01.phpt5
-rw-r--r--ext/standard/tests/strings/htmlentities02.phpt9
-rw-r--r--ext/standard/tests/strings/htmlentities03.phpt9
-rw-r--r--ext/standard/tests/strings/htmlentities10.phpt7
-rw-r--r--ext/standard/tests/strings/htmlentities11.phpt5
-rw-r--r--ext/standard/tests/strings/htmlentities12.phpt5
-rw-r--r--ext/standard/tests/strings/htmlentities13.phpt5
-rw-r--r--ext/standard/tests/strings/htmlentities14.phpt5
12 files changed, 34 insertions, 31 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index f42b449c34..84e28f4a4b 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -898,6 +898,10 @@ static int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, siz
if (!new_value || !new_value_length || !(encoding = mbfl_name2encoding(new_value))) {
/* falls back to UTF-8 if an unknown encoding name is given */
+ if (new_value) {
+ php_error_docref("ref.mbstring", E_WARNING,
+ "Unknown encoding \"%s\" in ini setting", new_value);
+ }
encoding = mbfl_no2encoding(mbfl_no_encoding_utf8);
}
MBSTRG(internal_encoding) = encoding;
diff --git a/ext/mbstring/tests/ini_mbstring_invalid.phpt b/ext/mbstring/tests/ini_mbstring_invalid.phpt
index 57f2404fc7..17a1efd245 100644
--- a/ext/mbstring/tests/ini_mbstring_invalid.phpt
+++ b/ext/mbstring/tests/ini_mbstring_invalid.phpt
@@ -23,6 +23,7 @@ PHP Deprecated: PHP Startup: Use of mbstring.http_input is deprecated in Unknow
PHP Warning: PHP Startup: INI setting contains invalid encoding "HTTP_INPUT" in Unknown on line 0
PHP Deprecated: PHP Startup: Use of mbstring.http_output is deprecated in Unknown on line 0
PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+PHP Warning: PHP Startup: Unknown encoding "UNKNOWN_ENCODING" in ini setting in Unknown on line 0
Warning: PHP Startup: INI setting contains invalid encoding "DETECT_ORDER" in Unknown on line 0
@@ -33,3 +34,5 @@ Warning: PHP Startup: INI setting contains invalid encoding "HTTP_INPUT" in Unkn
Deprecated: PHP Startup: Use of mbstring.http_output is deprecated in Unknown on line 0
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+
+Warning: PHP Startup: Unknown encoding "UNKNOWN_ENCODING" in ini setting in Unknown on line 0
diff --git a/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt b/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt
index 9f3ce5f8c5..4d2fb1eca1 100644
--- a/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt
+++ b/ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt
@@ -21,8 +21,11 @@ echo ini_get('mbstring.internal_encoding')."\n";
?>
--EXPECT--
PHP Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+PHP Warning: PHP Startup: Unknown encoding "BAD" in ini setting in Unknown on line 0
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
+
+Warning: PHP Startup: Unknown encoding "BAD" in ini setting in Unknown on line 0
*** Testing INI mbstring.internal_encoding: invalid encoding specified in INI ***
UTF-8
BAD
diff --git a/ext/standard/html.c b/ext/standard/html.c
index 5eaf7c6711..aa971d5098 100644
--- a/ext/standard/html.c
+++ b/ext/standard/html.c
@@ -386,10 +386,7 @@ static enum entity_charset determine_charset(char *charset_hint)
if (zenc != NULL) {
charset_hint = (char *)zend_multibyte_get_encoding_name(zenc);
if (charset_hint != NULL && (len=strlen(charset_hint)) != 0) {
- if ((len == 4) /* sizeof (auto|pass) */ &&
- /* XXX should the "wchar" be ignored as well?? */
- (!memcmp("pass", charset_hint, 4) ||
- !memcmp("auto", charset_hint, 4))) {
+ if (len == sizeof("auto")-1 && !memcmp("auto", charset_hint, sizeof("auto")-1)) {
charset_hint = NULL;
len = 0;
} else {
diff --git a/ext/standard/tests/strings/htmlentities01.phpt b/ext/standard/tests/strings/htmlentities01.phpt
index 269bd467b9..32f9e8edd1 100644
--- a/ext/standard/tests/strings/htmlentities01.phpt
+++ b/ext/standard/tests/strings/htmlentities01.phpt
@@ -2,11 +2,10 @@
htmlentities() test 1 (cp1252)
--INI--
output_handler=
-internal_encoding=pass
--FILE--
<?php
- var_dump(htmlentities("\x82\x86\x99\x9f", ENT_QUOTES, 'cp1252'));
- var_dump(htmlentities("\x80\xa2\xa3\xa4\xa5", ENT_QUOTES, 'cp1252'));
+var_dump(htmlentities("\x82\x86\x99\x9f", ENT_QUOTES, 'cp1252'));
+var_dump(htmlentities("\x80\xa2\xa3\xa4\xa5", ENT_QUOTES, 'cp1252'));
?>
--EXPECT--
string(28) "&sbquo;&dagger;&trade;&Yuml;"
diff --git a/ext/standard/tests/strings/htmlentities02.phpt b/ext/standard/tests/strings/htmlentities02.phpt
index 6dcc4de483..9e6a96e060 100644
--- a/ext/standard/tests/strings/htmlentities02.phpt
+++ b/ext/standard/tests/strings/htmlentities02.phpt
@@ -10,11 +10,12 @@ if (!$result) {
--INI--
output_handler=
default_charset=
-internal_encoding=pass
+internal_encoding=
--FILE--
<?php
- setlocale(LC_CTYPE, "fr_FR.ISO-8859-15", "fr_FR.ISO8859-15", 'fr_FR@euro');
- var_dump(htmlentities("\xbc\xbd\xbe", ENT_QUOTES, ''));
+// Locale-based encoding guessing no longer works.
+setlocale(LC_CTYPE, "fr_FR.ISO-8859-15", "fr_FR.ISO8859-15", 'fr_FR@euro');
+var_dump(htmlentities("\xbc\xbd\xbe", ENT_QUOTES, ''));
?>
--EXPECT--
-string(20) "&OElig;&oelig;&Yuml;"
+string(0) ""
diff --git a/ext/standard/tests/strings/htmlentities03.phpt b/ext/standard/tests/strings/htmlentities03.phpt
index b7e07fb375..4840653414 100644
--- a/ext/standard/tests/strings/htmlentities03.phpt
+++ b/ext/standard/tests/strings/htmlentities03.phpt
@@ -10,11 +10,12 @@ if (!$result || preg_match('/ISO/i', setlocale(LC_CTYPE, 0)) == 0) {
--INI--
output_handler=
default_charset=
-internal_encoding=pass
+internal_encoding=
--FILE--
<?php
- setlocale( LC_CTYPE, "de_DE.ISO-8859-1", "de_DE.ISO8859-1");
- var_dump(htmlentities("\xe4\xf6\xfc", ENT_QUOTES, ''));
+// Locale-based encoding guessing no longer works.
+setlocale( LC_CTYPE, "de_DE.ISO-8859-1", "de_DE.ISO8859-1");
+var_dump(htmlentities("\xe4\xf6\xfc", ENT_QUOTES));
?>
--EXPECT--
-string(18) "&auml;&ouml;&uuml;"
+string(0) ""
diff --git a/ext/standard/tests/strings/htmlentities10.phpt b/ext/standard/tests/strings/htmlentities10.phpt
index 2f8c42b7e5..58c0b14b1e 100644
--- a/ext/standard/tests/strings/htmlentities10.phpt
+++ b/ext/standard/tests/strings/htmlentities10.phpt
@@ -2,13 +2,12 @@
htmlentities() test 10 (default_charset / cp1252)
--INI--
output_handler=
-internal_encoding=pass
default_charset=cp1252
--FILE--
<?php
- print ini_get('default_charset')."\n";
- var_dump(htmlentities("\x82\x86\x99\x9f", ENT_QUOTES, ''));
- var_dump(htmlentities("\x80\xa2\xa3\xa4\xa5", ENT_QUOTES, ''));
+print ini_get('default_charset')."\n";
+var_dump(htmlentities("\x82\x86\x99\x9f", ENT_QUOTES, ''));
+var_dump(htmlentities("\x80\xa2\xa3\xa4\xa5", ENT_QUOTES, ''));
?>
--EXPECT--
cp1252
diff --git a/ext/standard/tests/strings/htmlentities11.phpt b/ext/standard/tests/strings/htmlentities11.phpt
index c803f76a53..f34db6e2dd 100644
--- a/ext/standard/tests/strings/htmlentities11.phpt
+++ b/ext/standard/tests/strings/htmlentities11.phpt
@@ -2,12 +2,11 @@
htmlentities() test 11 (default_charset / ISO-8859-15)
--INI--
output_handler=
-internal_encoding=pass
default_charset=ISO-8859-15
--FILE--
<?php
- print ini_get('default_charset')."\n";
- var_dump(htmlentities("\xbc\xbd\xbe", ENT_QUOTES, ''));
+print ini_get('default_charset')."\n";
+var_dump(htmlentities("\xbc\xbd\xbe", ENT_QUOTES, ''));
?>
--EXPECT--
ISO-8859-15
diff --git a/ext/standard/tests/strings/htmlentities12.phpt b/ext/standard/tests/strings/htmlentities12.phpt
index c2963f1c86..fdf52393f3 100644
--- a/ext/standard/tests/strings/htmlentities12.phpt
+++ b/ext/standard/tests/strings/htmlentities12.phpt
@@ -2,12 +2,11 @@
htmlentities() test 12 (default_charset / ISO-8859-1)
--INI--
output_handler=
-internal_encoding=pass
default_charset=ISO-8859-1
--FILE--
<?php
- print ini_get('default_charset')."\n";
- var_dump(htmlentities("\xe4\xf6\xfc", ENT_QUOTES, ''));
+print ini_get('default_charset')."\n";
+var_dump(htmlentities("\xe4\xf6\xfc", ENT_QUOTES, ''));
?>
--EXPECT--
ISO-8859-1
diff --git a/ext/standard/tests/strings/htmlentities13.phpt b/ext/standard/tests/strings/htmlentities13.phpt
index ac2c8cd4b0..03b970df15 100644
--- a/ext/standard/tests/strings/htmlentities13.phpt
+++ b/ext/standard/tests/strings/htmlentities13.phpt
@@ -2,13 +2,12 @@
htmlentities() test 13 (default_charset / EUC-JP)
--INI--
output_handler=
-internal_encoding=pass
default_charset=EUC-JP
filter.default=unsafe_raw
--FILE--
<?php
- print ini_get('default_charset')."\n";
- var_dump(htmlentities("\xa1\xa2\xa1\xa3\xa1\xa4", ENT_QUOTES, ''));
+print ini_get('default_charset')."\n";
+var_dump(htmlentities("\xa1\xa2\xa1\xa3\xa1\xa4", ENT_QUOTES, ''));
?>
--EXPECTF--
EUC-JP
diff --git a/ext/standard/tests/strings/htmlentities14.phpt b/ext/standard/tests/strings/htmlentities14.phpt
index 60226cbe10..6850f31f89 100644
--- a/ext/standard/tests/strings/htmlentities14.phpt
+++ b/ext/standard/tests/strings/htmlentities14.phpt
@@ -2,13 +2,12 @@
htmlentities() test 14 (default_charset / Shift_JIS)
--INI--
output_handler=
-internal_encoding=pass
default_charset=Shift_JIS
filter.default=unsafe_raw
--FILE--
<?php
- print ini_get('default_charset')."\n";
- var_dump(htmlentities("\x81\x41\x81\x42\x81\x43", ENT_QUOTES, ''));
+print ini_get('default_charset')."\n";
+var_dump(htmlentities("\x81\x41\x81\x42\x81\x43", ENT_QUOTES, ''));
?>
--EXPECTF--
Shift_JIS