summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/mbstring/mbstring.c61
-rw-r--r--ext/mbstring/mbstring.h2
-rw-r--r--ext/mbstring/tests/zend_multibyte-10.phpt3
-rw-r--r--ext/mbstring/tests/zend_multibyte-11.phpt3
-rw-r--r--ext/phar/tests/zip/notphar.phpt1
-rw-r--r--ext/standard/info.c6
6 files changed, 28 insertions, 48 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 72fe44b2a9..6c3a3260eb 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -77,9 +77,7 @@
#include "php_mbregex.h"
#endif
-#ifdef ZEND_MULTIBYTE
#include "zend_multibyte.h"
-#endif /* ZEND_MULTIBYTE */
#if HAVE_ONIG
#include "php_onig_compat.h"
@@ -98,12 +96,10 @@ ZEND_DECLARE_MODULE_GLOBALS(mbstring)
static PHP_GINIT_FUNCTION(mbstring);
static PHP_GSHUTDOWN_FUNCTION(mbstring);
-#ifdef ZEND_MULTIBYTE
static size_t php_mb_oddlen(const unsigned char *string, size_t length, const char *encoding TSRMLS_DC);
static int php_mb_encoding_converter(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length, const char *encoding_to, const char *encoding_from TSRMLS_DC);
static char* php_mb_encoding_detector(const unsigned char *arg_string, size_t arg_length, char *arg_list TSRMLS_DC);
static int php_mb_set_zend_encoding(TSRMLS_D);
-#endif
/* }}} */
/* {{{ php_mb_default_identify_list */
@@ -1126,12 +1122,14 @@ static PHP_INI_MH(OnUpdate_mbstring_internal_encoding)
}
/* }}} */
-#ifdef ZEND_MULTIBYTE
/* {{{ static PHP_INI_MH(OnUpdate_mbstring_script_encoding) */
static PHP_INI_MH(OnUpdate_mbstring_script_encoding)
{
int *list, size;
+ if (!CG(multibyte)) {
+ return FAILURE;
+ }
if (php_mb_parse_encoding_list(new_value, new_value_length, &list, &size, 1 TSRMLS_CC)) {
if (MBSTRG(script_encoding_list) != NULL) {
free(MBSTRG(script_encoding_list));
@@ -1150,7 +1148,6 @@ static PHP_INI_MH(OnUpdate_mbstring_script_encoding)
return SUCCESS;
}
/* }}} */
-#endif /* ZEND_MULTIBYTE */
/* {{{ static PHP_INI_MH(OnUpdate_mbstring_substitute_character) */
static PHP_INI_MH(OnUpdate_mbstring_substitute_character)
@@ -1249,9 +1246,7 @@ PHP_INI_BEGIN()
PHP_INI_ENTRY("mbstring.http_input", "pass", PHP_INI_ALL, OnUpdate_mbstring_http_input)
PHP_INI_ENTRY("mbstring.http_output", "pass", PHP_INI_ALL, OnUpdate_mbstring_http_output)
STD_PHP_INI_ENTRY("mbstring.internal_encoding", NULL, PHP_INI_ALL, OnUpdate_mbstring_internal_encoding, internal_encoding_name, zend_mbstring_globals, mbstring_globals)
-#ifdef ZEND_MULTIBYTE
PHP_INI_ENTRY("mbstring.script_encoding", NULL, PHP_INI_ALL, OnUpdate_mbstring_script_encoding)
-#endif /* ZEND_MULTIBYTE */
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, OnUpdateLong, func_overload, zend_mbstring_globals, mbstring_globals)
@@ -1278,10 +1273,8 @@ static PHP_GINIT_FUNCTION(mbstring)
mbstring_globals->language = mbfl_no_language_uni;
mbstring_globals->internal_encoding = mbfl_no_encoding_invalid;
mbstring_globals->current_internal_encoding = mbstring_globals->internal_encoding;
-#ifdef ZEND_MULTIBYTE
mbstring_globals->script_encoding_list = NULL;
mbstring_globals->script_encoding_list_size = 0;
-#endif /* ZEND_MULTIBYTE */
mbstring_globals->http_output_encoding = mbfl_no_encoding_pass;
mbstring_globals->current_http_output_encoding = mbfl_no_encoding_pass;
mbstring_globals->http_input_identify = mbfl_no_encoding_invalid;
@@ -1319,11 +1312,9 @@ static PHP_GSHUTDOWN_FUNCTION(mbstring)
if (mbstring_globals->http_input_list) {
free(mbstring_globals->http_input_list);
}
-#ifdef ZEND_MULTIBYTE
if (mbstring_globals->script_encoding_list) {
free(mbstring_globals->script_encoding_list);
}
-#endif /* ZEND_MULTIBYTE */
if (mbstring_globals->detect_order_list) {
free(mbstring_globals->detect_order_list);
}
@@ -1441,10 +1432,10 @@ PHP_RINIT_FUNCTION(mbstring)
#if HAVE_MBREGEX
PHP_RINIT(mb_regex) (INIT_FUNC_ARGS_PASSTHRU);
#endif
-#ifdef ZEND_MULTIBYTE
- zend_multibyte_set_internal_encoding(mbfl_no_encoding2name(MBSTRG(internal_encoding)) TSRMLS_CC);
- php_mb_set_zend_encoding(TSRMLS_C);
-#endif /* ZEND_MULTIBYTE */
+ if (CG(multibyte)) {
+ zend_multibyte_set_internal_encoding(mbfl_no_encoding2name(MBSTRG(internal_encoding)) TSRMLS_CC);
+ php_mb_set_zend_encoding(TSRMLS_C);
+ }
return SUCCESS;
}
@@ -1568,12 +1559,10 @@ PHP_FUNCTION(mb_internal_encoding)
RETURN_FALSE;
} else {
MBSTRG(current_internal_encoding) = no_encoding;
-#ifdef ZEND_MULTIBYTE
/* TODO: make independent from mbstring.encoding_translation? */
- if (MBSTRG(encoding_translation)) {
+ if (CG(multibyte) && MBSTRG(encoding_translation)) {
zend_multibyte_set_internal_encoding(name TSRMLS_CC);
}
-#endif /* ZEND_MULTIBYTE */
RETURN_TRUE;
}
}
@@ -4116,9 +4105,7 @@ PHP_FUNCTION(mb_get_info)
zval *row1, *row2;
const mbfl_language *lang = mbfl_no2language(MBSTRG(language));
enum mbfl_no_encoding *entry;
-#ifdef ZEND_MULTIBYTE
zval *row3;
-#endif /* ZEND_MULTIBYTE */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len) == FAILURE) {
RETURN_FALSE;
@@ -4201,22 +4188,22 @@ PHP_FUNCTION(mb_get_info)
} else {
add_assoc_string(return_value, "strict_detection", "Off", 1);
}
-#ifdef ZEND_MULTIBYTE
- entry = MBSTRG(script_encoding_list);
- n = MBSTRG(script_encoding_list_size);
- if(n > 0) {
- MAKE_STD_ZVAL(row3);
- array_init(row3);
- while (n > 0) {
- if ((name = (char *)mbfl_no_encoding2name(*entry)) != NULL) {
- add_next_index_string(row3, name, 1);
+ if (CG(multibyte)) {
+ entry = MBSTRG(script_encoding_list);
+ n = MBSTRG(script_encoding_list_size);
+ if(n > 0) {
+ MAKE_STD_ZVAL(row3);
+ array_init(row3);
+ while (n > 0) {
+ if ((name = (char *)mbfl_no_encoding2name(*entry)) != NULL) {
+ add_next_index_string(row3, name, 1);
+ }
+ entry++;
+ n--;
}
- entry++;
- n--;
+ add_assoc_zval(return_value, "script_encoding", row3);
}
- add_assoc_zval(return_value, "script_encoding", row3);
}
-#endif /* ZEND_MULTIBYTE */
} else if (!strcasecmp("internal_encoding", typ)) {
if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) {
RETVAL_STRING(name, 1);
@@ -4303,8 +4290,7 @@ PHP_FUNCTION(mb_get_info)
RETVAL_STRING("Off", 1);
}
} else {
-#ifdef ZEND_MULTIBYTE
- if (!strcasecmp("script_encoding", typ)) {
+ if (CG(multibyte) && !strcasecmp("script_encoding", typ)) {
entry = MBSTRG(script_encoding_list);
n = MBSTRG(script_encoding_list_size);
if(n > 0) {
@@ -4320,7 +4306,6 @@ PHP_FUNCTION(mb_get_info)
}
return;
}
-#endif /* ZEND_MULTIBYTE */
RETURN_FALSE;
}
}
@@ -4706,7 +4691,6 @@ MBSTRING_API int php_mb_stripos(int mode, const char *old_haystack, unsigned int
}
/* }}} */
-#ifdef ZEND_MULTIBYTE
/* {{{ php_mb_set_zend_encoding() */
static int php_mb_set_zend_encoding(TSRMLS_D)
{
@@ -4864,7 +4848,6 @@ static size_t php_mb_oddlen(const unsigned char *string, size_t length, const ch
return mbfl_oddlen(&mb_string);
}
/* }}} */
-#endif /* ZEND_MULTIBYTE */
#endif /* HAVE_MBSTRING */
diff --git a/ext/mbstring/mbstring.h b/ext/mbstring/mbstring.h
index 8e9a5806e1..77f1c9d5ef 100644
--- a/ext/mbstring/mbstring.h
+++ b/ext/mbstring/mbstring.h
@@ -167,10 +167,8 @@ ZEND_BEGIN_MODULE_GLOBALS(mbstring)
enum mbfl_no_language language;
enum mbfl_no_encoding internal_encoding;
enum mbfl_no_encoding current_internal_encoding;
-#ifdef ZEND_MULTIBYTE
enum mbfl_no_encoding *script_encoding_list;
int script_encoding_list_size;
-#endif /* ZEND_MULTIBYTE */
enum mbfl_no_encoding http_output_encoding;
enum mbfl_no_encoding current_http_output_encoding;
enum mbfl_no_encoding http_input_identify;
diff --git a/ext/mbstring/tests/zend_multibyte-10.phpt b/ext/mbstring/tests/zend_multibyte-10.phpt
index c3543c937a..435c339752 100644
--- a/ext/mbstring/tests/zend_multibyte-10.phpt
+++ b/ext/mbstring/tests/zend_multibyte-10.phpt
@@ -11,6 +11,7 @@ if (ini_set("mbstring.script_encoding","SJIS") != "SJIS") {
<?php
declare(encoding="ISO-8859-15");
declare(encoding="ISO-8859-1");
+echo "ok\n";
?>
--EXPECTF--
-Fatal error: Encoding declaration pragma must be the very first statement in the script in %s on line 3
+ok
diff --git a/ext/mbstring/tests/zend_multibyte-11.phpt b/ext/mbstring/tests/zend_multibyte-11.phpt
index 84e16ae467..b79e4339ba 100644
--- a/ext/mbstring/tests/zend_multibyte-11.phpt
+++ b/ext/mbstring/tests/zend_multibyte-11.phpt
@@ -11,7 +11,8 @@ if (ini_set("mbstring.script_encoding","SJIS") != "SJIS") {
<?php
declare(encoding="ISO-8859-15") {
declare(encoding="ISO-8859-1");
+ echo "ok\n";
}
?>
--EXPECTF--
-Fatal error: Encoding declaration pragma must be the very first statement in the script in %s on line 3
+ok
diff --git a/ext/phar/tests/zip/notphar.phpt b/ext/phar/tests/zip/notphar.phpt
index 3450c84bbd..c0648c4953 100644
--- a/ext/phar/tests/zip/notphar.phpt
+++ b/ext/phar/tests/zip/notphar.phpt
@@ -4,6 +4,7 @@ Phar: a non-executable zip with no stub named .phar.zip
<?php if (!extension_loaded("phar")) die("skip"); ?>
--INI--
phar.readonly=1
+detect_unicode=0
--FILE--
<?php
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.zip';
diff --git a/ext/standard/info.c b/ext/standard/info.c
index 28f30a66a4..ee379b4f0a 100644
--- a/ext/standard/info.c
+++ b/ext/standard/info.c
@@ -759,11 +759,7 @@ PHPAPI void php_print_info(int flag TSRMLS_DC)
php_info_print_table_row(2, "Zend Memory Manager", is_zend_mm(TSRMLS_C) ? "enabled" : "disabled" );
-#ifdef ZEND_MULTIBYTE
- php_info_print_table_row(2, "Zend Multibyte Support", "enabled");
-#else
- php_info_print_table_row(2, "Zend Multibyte Support", "disabled");
-#endif
+ php_info_print_table_row(2, "Zend Multibyte Support", CG(multibyte) ? "enabled" : "disabled");
#if HAVE_IPV6
php_info_print_table_row(2, "IPv6 Support", "enabled" );