summaryrefslogtreecommitdiff
path: root/Zend/zend_multibyte.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_multibyte.c')
-rw-r--r--Zend/zend_multibyte.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c
index 8453d25785..4d8ff969e8 100644
--- a/Zend/zend_multibyte.c
+++ b/Zend/zend_multibyte.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
- | Copyright (c) 1998-2017 Zend Technologies Ltd. (http://www.zend.com) |
+ | Copyright (c) 1998-2018 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -67,6 +67,7 @@ static int dummy_internal_encoding_setter(const zend_encoding *encoding)
return FAILURE;
}
+static zend_multibyte_functions multibyte_functions_dummy;
static zend_multibyte_functions multibyte_functions = {
NULL,
dummy_encoding_fetcher,
@@ -108,6 +109,7 @@ ZEND_API int zend_multibyte_set_functions(const zend_multibyte_functions *functi
return FAILURE;
}
+ multibyte_functions_dummy = multibyte_functions;
multibyte_functions = *functions;
/* As zend_multibyte_set_functions() gets called after ini settings were
@@ -120,6 +122,11 @@ ZEND_API int zend_multibyte_set_functions(const zend_multibyte_functions *functi
return SUCCESS;
}
+ZEND_API void zend_multibyte_restore_functions(void)
+{
+ multibyte_functions = multibyte_functions_dummy;
+}
+
ZEND_API const zend_multibyte_functions *zend_multibyte_get_functions(void)
{
return multibyte_functions.provider_name ? &multibyte_functions: NULL;