summaryrefslogtreecommitdiff
path: root/ext/mbstring
diff options
context:
space:
mode:
authorkrakjoe <joe.watkins@live.co.uk>2014-05-05 22:45:29 +0100
committerkrakjoe <joe.watkins@live.co.uk>2014-05-05 22:45:29 +0100
commitd7c529ed327cca4fad2c42fe74fabc367f24dc5b (patch)
tree919d9e6800c6244436ddce9d09d707922fd859a4 /ext/mbstring
parent875c48ae679158cb2194c4e277810883e0b21768 (diff)
parent211d32c81429730e2692c65577d021616a525726 (diff)
downloadphp-git-d7c529ed327cca4fad2c42fe74fabc367f24dc5b.tar.gz
Merge branch 'phpng' of git.php.net:php-src into phpng
Diffstat (limited to 'ext/mbstring')
-rw-r--r--ext/mbstring/mb_gpc.c70
-rw-r--r--ext/mbstring/mbstring.c793
-rw-r--r--ext/mbstring/php_mbregex.c140
-rw-r--r--ext/mbstring/tests/bug26639.phpt54
-rw-r--r--ext/mbstring/tests/mb_http_output.phpt4
-rw-r--r--ext/mbstring/tests/mb_internal_encoding.phpt6
-rw-r--r--ext/mbstring/tests/mb_internal_encoding_error1.phpt2
-rw-r--r--ext/mbstring/tests/mb_internal_encoding_variation1.phpt2
-rw-r--r--ext/mbstring/tests/mb_stripos.phpt8
-rw-r--r--ext/mbstring/tests/mb_stripos_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_stripos_variation1.phpt4
-rw-r--r--ext/mbstring/tests/mb_stripos_variation2.phpt2
-rw-r--r--ext/mbstring/tests/mb_stripos_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_stripos_variation4.phpt4
-rw-r--r--ext/mbstring/tests/mb_stristr_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_stristr_variation1.phpt12
-rw-r--r--ext/mbstring/tests/mb_stristr_variation2.phpt12
-rw-r--r--ext/mbstring/tests/mb_stristr_variation3.phpt16
-rw-r--r--ext/mbstring/tests/mb_stristr_variation4.phpt12
-rw-r--r--ext/mbstring/tests/mb_strlen_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strlen_variation1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strlen_variation2.phpt2
-rw-r--r--ext/mbstring/tests/mb_strpos.phpt8
-rw-r--r--ext/mbstring/tests/mb_strpos_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strpos_variation1.phpt2
-rw-r--r--ext/mbstring/tests/mb_strpos_variation2.phpt2
-rw-r--r--ext/mbstring/tests/mb_strpos_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strpos_variation4.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrchr_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrchr_variation1.phpt12
-rw-r--r--ext/mbstring/tests/mb_strrchr_variation2.phpt12
-rw-r--r--ext/mbstring/tests/mb_strrchr_variation3.phpt16
-rw-r--r--ext/mbstring/tests/mb_strrchr_variation4.phpt12
-rw-r--r--ext/mbstring/tests/mb_strrichr_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrichr_variation1.phpt12
-rw-r--r--ext/mbstring/tests/mb_strrichr_variation2.phpt12
-rw-r--r--ext/mbstring/tests/mb_strrichr_variation3.phpt16
-rw-r--r--ext/mbstring/tests/mb_strrichr_variation4.phpt12
-rw-r--r--ext/mbstring/tests/mb_strripos_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strripos_variation1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strripos_variation2.phpt4
-rw-r--r--ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt14
-rw-r--r--ext/mbstring/tests/mb_strripos_variation4.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrpos_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation2.phpt2
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation4.phpt4
-rw-r--r--ext/mbstring/tests/mb_strstr_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strstr_variation1.phpt12
-rw-r--r--ext/mbstring/tests/mb_strstr_variation2.phpt12
-rw-r--r--ext/mbstring/tests/mb_strstr_variation3.phpt16
-rw-r--r--ext/mbstring/tests/mb_strstr_variation4.phpt12
-rw-r--r--ext/mbstring/tests/zend_multibyte-02.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-06.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-08.phpt3
-rw-r--r--ext/mbstring/tests/zend_multibyte-10.phpt3
-rw-r--r--ext/mbstring/tests/zend_multibyte-11.phpt3
-rw-r--r--ext/mbstring/tests/zend_multibyte-12.phpt1
58 files changed, 711 insertions, 722 deletions
diff --git a/ext/mbstring/mb_gpc.c b/ext/mbstring/mb_gpc.c
index 8036485d6d..a2dd62da53 100644
--- a/ext/mbstring/mb_gpc.c
+++ b/ext/mbstring/mb_gpc.c
@@ -55,7 +55,7 @@ MBSTRING_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data)
{
char *res = NULL, *separator=NULL;
const char *c_var;
- zval *array_ptr;
+ zval v_array;
int free_buffer=0;
const mbfl_encoding *detected;
php_mb_encoding_handler_info_t info;
@@ -74,28 +74,26 @@ MBSTRING_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data)
case PARSE_POST:
case PARSE_GET:
case PARSE_COOKIE:
- ALLOC_ZVAL(array_ptr);
- array_init(array_ptr);
- INIT_PZVAL(array_ptr);
+ array_init(&v_array);
switch (arg) {
case PARSE_POST:
- PG(http_globals)[TRACK_VARS_POST] = array_ptr;
+ ZVAL_COPY_VALUE(&PG(http_globals)[TRACK_VARS_POST], &v_array);
break;
case PARSE_GET:
- PG(http_globals)[TRACK_VARS_GET] = array_ptr;
+ ZVAL_COPY_VALUE(&PG(http_globals)[TRACK_VARS_GET], &v_array);
break;
case PARSE_COOKIE:
- PG(http_globals)[TRACK_VARS_COOKIE] = array_ptr;
+ ZVAL_COPY_VALUE(&PG(http_globals)[TRACK_VARS_COOKIE], &v_array);
break;
}
break;
default:
- array_ptr=destArray;
+ ZVAL_COPY_VALUE(&v_array, destArray);
break;
}
- if (arg==PARSE_POST) {
- sapi_handle_post(array_ptr TSRMLS_CC);
+ if (arg == PARSE_POST) {
+ sapi_handle_post(&v_array TSRMLS_CC);
return;
}
@@ -125,29 +123,29 @@ MBSTRING_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data)
}
switch (arg) {
- case PARSE_POST:
- case PARSE_GET:
- case PARSE_STRING:
- separator = (char *) estrdup(PG(arg_separator).input);
- break;
- case PARSE_COOKIE:
- separator = ";\0";
- break;
+ case PARSE_POST:
+ case PARSE_GET:
+ case PARSE_STRING:
+ separator = (char *) estrdup(PG(arg_separator).input);
+ break;
+ case PARSE_COOKIE:
+ separator = ";\0";
+ break;
}
- switch(arg) {
- case PARSE_POST:
- MBSTRG(http_input_identify_post) = NULL;
- break;
- case PARSE_GET:
- MBSTRG(http_input_identify_get) = NULL;
- break;
- case PARSE_COOKIE:
- MBSTRG(http_input_identify_cookie) = NULL;
- break;
- case PARSE_STRING:
- MBSTRG(http_input_identify_string) = NULL;
- break;
+ switch (arg) {
+ case PARSE_POST:
+ MBSTRG(http_input_identify_post) = NULL;
+ break;
+ case PARSE_GET:
+ MBSTRG(http_input_identify_get) = NULL;
+ break;
+ case PARSE_COOKIE:
+ MBSTRG(http_input_identify_cookie) = NULL;
+ break;
+ case PARSE_STRING:
+ MBSTRG(http_input_identify_string) = NULL;
+ break;
}
info.data_type = arg;
@@ -161,7 +159,7 @@ MBSTRING_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data)
MBSTRG(illegalchars) = 0;
- detected = _php_mb_encoding_handler_ex(&info, array_ptr, res TSRMLS_CC);
+ detected = _php_mb_encoding_handler_ex(&info, &v_array, res TSRMLS_CC);
MBSTRG(http_input_identify) = detected;
if (detected) {
@@ -364,7 +362,7 @@ SAPI_POST_HANDLER_FUNC(php_mb_post_handler)
{
const mbfl_encoding *detected;
php_mb_encoding_handler_info_t info;
- char *post_data_str = NULL;
+ zend_string *post_data_str = NULL;
MBSTRG(http_input_identify_post) = NULL;
@@ -378,9 +376,9 @@ SAPI_POST_HANDLER_FUNC(php_mb_post_handler)
info.from_language = MBSTRG(language);
php_stream_rewind(SG(request_info).request_body);
- php_stream_copy_to_mem(SG(request_info).request_body, &post_data_str, PHP_STREAM_COPY_ALL, 0);
- detected = _php_mb_encoding_handler_ex(&info, arg, post_data_str TSRMLS_CC);
- STR_FREE(post_data_str);
+ post_data_str = php_stream_copy_to_mem(SG(request_info).request_body, PHP_STREAM_COPY_ALL, 0);
+ detected = _php_mb_encoding_handler_ex(&info, arg, post_data_str->val TSRMLS_CC);
+ STR_RELEASE(post_data_str);
MBSTRG(http_input_identify) = detected;
if (detected) {
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 7d4eacf14d..49990332ae 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -56,7 +56,6 @@
#include "ext/standard/php_string.h"
#include "ext/standard/php_mail.h"
#include "ext/standard/exec.h"
-#include "ext/standard/php_smart_str.h"
#include "ext/standard/url.h"
#include "main/php_output.h"
#include "ext/standard/info.h"
@@ -721,7 +720,7 @@ php_mb_parse_encoding_list(const char *value, size_t value_length, const mbfl_en
endp = tmpstr + value_length;
n = 1;
p1 = tmpstr;
- while ((p2 = php_memnstr(p1, ",", 1, endp)) != NULL) {
+ while ((p2 = (char*)php_memnstr(p1, ",", 1, endp)) != NULL) {
p1 = p2 + 1;
n++;
}
@@ -734,7 +733,7 @@ php_mb_parse_encoding_list(const char *value, size_t value_length, const mbfl_en
bauto = 0;
p1 = tmpstr;
do {
- p2 = p = php_memnstr(p1, ",", 1, endp);
+ p2 = p = (char*)php_memnstr(p1, ",", 1, endp);
if (p == NULL) {
p = endp;
}
@@ -811,7 +810,7 @@ php_mb_parse_encoding_list(const char *value, size_t value_length, const mbfl_en
static int
php_mb_parse_encoding_array(zval *array, const mbfl_encoding ***return_list, size_t *return_size, int persistent TSRMLS_DC)
{
- zval **hash_entry;
+ zval *hash_entry;
HashTable *target_hash;
int i, n, size, bauto, ret = SUCCESS;
const mbfl_encoding **list, **entry;
@@ -828,11 +827,11 @@ php_mb_parse_encoding_array(zval *array, const mbfl_encoding ***return_list, siz
bauto = 0;
n = 0;
while (i > 0) {
- if (zend_hash_get_current_data(target_hash, (void **) &hash_entry) == FAILURE) {
+ if ((hash_entry = zend_hash_get_current_data(target_hash)) == NULL) {
break;
}
convert_to_string_ex(hash_entry);
- if (strcasecmp(Z_STRVAL_PP(hash_entry), "auto") == 0) {
+ if (strcasecmp(Z_STRVAL_P(hash_entry), "auto") == 0) {
if (!bauto) {
const enum mbfl_no_encoding *src = MBSTRG(default_detect_order_list);
const size_t identify_list_size = MBSTRG(default_detect_order_list_size);
@@ -845,7 +844,7 @@ php_mb_parse_encoding_array(zval *array, const mbfl_encoding ***return_list, siz
}
}
} else {
- const mbfl_encoding *encoding = mbfl_name2encoding(Z_STRVAL_PP(hash_entry));
+ const mbfl_encoding *encoding = mbfl_name2encoding(Z_STRVAL_P(hash_entry));
if (encoding) {
*entry++ = encoding;
n++;
@@ -1627,19 +1626,19 @@ PHP_RINIT_FUNCTION(mbstring)
while (p->type > 0) {
if ((MBSTRG(func_overload) & p->type) == p->type &&
- zend_hash_find(EG(function_table), p->save_func,
- strlen(p->save_func)+1, (void **)&orig) != SUCCESS) {
+ (orig = zend_hash_str_find_ptr(EG(function_table), p->save_func,
+ strlen(p->save_func))) == NULL) {
- zend_hash_find(EG(function_table), p->ovld_func, strlen(p->ovld_func)+1 , (void **)&func);
+ func = zend_hash_str_find_ptr(EG(function_table), p->ovld_func, strlen(p->ovld_func));
- if (zend_hash_find(EG(function_table), p->orig_func, strlen(p->orig_func)+1, (void **)&orig) != SUCCESS) {
+ if ((orig = zend_hash_str_find_ptr(EG(function_table), p->orig_func, strlen(p->orig_func))) == NULL) {
php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring couldn't find function %s.", p->orig_func);
return FAILURE;
} else {
- zend_hash_add(EG(function_table), p->save_func, strlen(p->save_func)+1, orig, sizeof(zend_function), NULL);
+ ZEND_ASSERT(orig->type == ZEND_INTERNAL_FUNCTION);
+ zend_hash_str_add_mem(EG(function_table), p->save_func, strlen(p->save_func), orig, sizeof(zend_internal_function));
- if (zend_hash_update(EG(function_table), p->orig_func, strlen(p->orig_func)+1, func, sizeof(zend_function),
- NULL) == FAILURE) {
+ if (zend_hash_str_update_mem(EG(function_table), p->orig_func, strlen(p->orig_func), func, sizeof(zend_internal_function)) == NULL) {
php_error_docref("ref.mbstring" TSRMLS_CC, E_WARNING, "mbstring couldn't replace function %s.", p->orig_func);
return FAILURE;
}
@@ -1686,11 +1685,10 @@ PHP_RSHUTDOWN_FUNCTION(mbstring)
p = &(mb_ovld[0]);
while (p->type > 0) {
if ((MBSTRG(func_overload) & p->type) == p->type &&
- zend_hash_find(EG(function_table), p->save_func,
- strlen(p->save_func)+1, (void **)&orig) == SUCCESS) {
+ (orig = zend_hash_str_find_ptr(EG(function_table), p->save_func, strlen(p->save_func)))) {
- zend_hash_update(EG(function_table), p->orig_func, strlen(p->orig_func)+1, orig, sizeof(zend_function), NULL);
- zend_hash_del(EG(function_table), p->save_func, strlen(p->save_func)+1);
+ zend_hash_str_update_mem(EG(function_table), p->orig_func, strlen(p->orig_func), orig, sizeof(zend_internal_function));
+ zend_hash_str_del(EG(function_table), p->save_func, strlen(p->save_func));
}
p++;
}
@@ -1741,16 +1739,16 @@ PHP_FUNCTION(mb_language)
return;
}
if (name == NULL) {
- RETVAL_STRING((char *)mbfl_no_language2name(MBSTRG(language)), 1);
+ RETVAL_STRING((char *)mbfl_no_language2name(MBSTRG(language)));
} else {
- if (FAILURE == zend_alter_ini_entry(
- "mbstring.language", sizeof("mbstring.language"),
- name, name_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME)) {
+ zend_string *ini_name = STR_INIT("mbstring.language", sizeof("mbstring.language") - 1, 0);
+ if (FAILURE == zend_alter_ini_entry(ini_name, name, name_len, PHP_INI_USER, PHP_INI_STAGE_RUNTIME)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown language \"%s\"", name);
RETVAL_FALSE;
} else {
RETVAL_TRUE;
}
+ STR_RELEASE(ini_name);
}
}
/* }}} */
@@ -1764,12 +1762,12 @@ PHP_FUNCTION(mb_internal_encoding)
const mbfl_encoding *encoding;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &name, &name_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (name == NULL) {
name = MBSTRG(current_internal_encoding) ? MBSTRG(current_internal_encoding)->name: NULL;
if (name != NULL) {
- RETURN_STRING(name, 1);
+ RETURN_STRING(name);
} else {
RETURN_FALSE;
}
@@ -1798,7 +1796,7 @@ PHP_FUNCTION(mb_http_input)
retname = 1;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (typ == NULL) {
result = MBSTRG(http_input_identify);
@@ -1828,7 +1826,7 @@ PHP_FUNCTION(mb_http_input)
size_t i;
array_init(return_value);
for (i = 0; i < n; i++) {
- add_next_index_string(return_value, (*entry)->name, 1);
+ add_next_index_string(return_value, (*entry)->name);
entry++;
}
retname = 0;
@@ -1858,7 +1856,8 @@ PHP_FUNCTION(mb_http_input)
if (!list) {
RETURN_FALSE;
}
- RETVAL_STRING(list, 0);
+ RETVAL_STRING(list);
+ efree(list);
retname = 0;
break;
default:
@@ -1869,7 +1868,7 @@ PHP_FUNCTION(mb_http_input)
if (retname) {
if (result) {
- RETVAL_STRING(result->name, 1);
+ RETVAL_STRING(result->name);
} else {
RETVAL_FALSE;
}
@@ -1885,14 +1884,14 @@ PHP_FUNCTION(mb_http_output)
int name_len;
const mbfl_encoding *encoding;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", (char **)&name, &name_len) == FAILURE) {
- RETURN_FALSE;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &name, &name_len) == FAILURE) {
+ return;
}
if (name == NULL) {
name = MBSTRG(current_http_output_encoding) ? MBSTRG(current_http_output_encoding)->name: NULL;
if (name != NULL) {
- RETURN_STRING(name, 1);
+ RETURN_STRING(name);
} else {
RETURN_FALSE;
}
@@ -1913,9 +1912,9 @@ PHP_FUNCTION(mb_http_output)
Sets the current detect_order or Return the current detect_order as a array */
PHP_FUNCTION(mb_detect_order)
{
- zval **arg1 = NULL;
+ zval *arg1 = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|Z", &arg1) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|z", &arg1) == FAILURE) {
return;
}
@@ -1925,30 +1924,30 @@ PHP_FUNCTION(mb_detect_order)
const mbfl_encoding **entry = MBSTRG(current_detect_order_list);
array_init(return_value);
for (i = 0; i < n; i++) {
- add_next_index_string(return_value, (*entry)->name, 1);
+ add_next_index_string(return_value, (*entry)->name);
entry++;
}
} else {
const mbfl_encoding **list = NULL;
size_t size = 0;
- switch (Z_TYPE_PP(arg1)) {
- case IS_ARRAY:
- if (FAILURE == php_mb_parse_encoding_array(*arg1, &list, &size, 0 TSRMLS_CC)) {
- if (list) {
- efree(list);
+ switch (Z_TYPE_P(arg1)) {
+ case IS_ARRAY:
+ if (FAILURE == php_mb_parse_encoding_array(arg1, &list, &size, 0 TSRMLS_CC)) {
+ if (list) {
+ efree(list);
+ }
+ RETURN_FALSE;
}
- RETURN_FALSE;
- }
- break;
- default:
- convert_to_string_ex(arg1);
- if (FAILURE == php_mb_parse_encoding_list(Z_STRVAL_PP(arg1), Z_STRLEN_PP(arg1), &list, &size, 0 TSRMLS_CC)) {
- if (list) {
- efree(list);
+ break;
+ default:
+ convert_to_string_ex(arg1);
+ if (FAILURE == php_mb_parse_encoding_list(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), &list, &size, 0 TSRMLS_CC)) {
+ if (list) {
+ efree(list);
+ }
+ RETURN_FALSE;
}
- RETURN_FALSE;
- }
- break;
+ break;
}
if (list == NULL) {
@@ -1969,55 +1968,55 @@ PHP_FUNCTION(mb_detect_order)
Sets the current substitute_character or returns the current substitute_character */
PHP_FUNCTION(mb_substitute_character)
{
- zval **arg1 = NULL;
+ zval *arg1 = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|Z", &arg1) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|z", &arg1) == FAILURE) {
return;
}
if (!arg1) {
if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
- RETURN_STRING("none", 1);
+ RETURN_STRING("none");
} else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
- RETURN_STRING("long", 1);
+ RETURN_STRING("long");
} else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY) {
- RETURN_STRING("entity", 1);
+ RETURN_STRING("entity");
} else {
RETURN_LONG(MBSTRG(current_filter_illegal_substchar));
}
} else {
RETVAL_TRUE;
- switch (Z_TYPE_PP(arg1)) {
- case IS_STRING:
- if (strncasecmp("none", Z_STRVAL_PP(arg1), Z_STRLEN_PP(arg1)) == 0) {
- MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE;
- } else if (strncasecmp("long", Z_STRVAL_PP(arg1), Z_STRLEN_PP(arg1)) == 0) {
- MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG;
- } else if (strncasecmp("entity", Z_STRVAL_PP(arg1), Z_STRLEN_PP(arg1)) == 0) {
- MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY;
- } else {
- convert_to_long_ex(arg1);
+ switch (Z_TYPE_P(arg1)) {
+ case IS_STRING:
+ if (strncasecmp("none", Z_STRVAL_P(arg1), Z_STRLEN_P(arg1)) == 0) {
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE;
+ } else if (strncasecmp("long", Z_STRVAL_P(arg1), Z_STRLEN_P(arg1)) == 0) {
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG;
+ } else if (strncasecmp("entity", Z_STRVAL_P(arg1), Z_STRLEN_P(arg1)) == 0) {
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY;
+ } else {
+ convert_to_long_ex(arg1);
- if (Z_LVAL_PP(arg1) < 0xffff && Z_LVAL_PP(arg1) > 0x0) {
+ if (Z_LVAL_P(arg1) < 0xffff && Z_LVAL_P(arg1) > 0x0) {
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
+ MBSTRG(current_filter_illegal_substchar) = Z_LVAL_P(arg1);
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown character.");
+ RETURN_FALSE;
+ }
+ }
+ break;
+ default:
+ convert_to_long_ex(arg1);
+ if (Z_LVAL_P(arg1) < 0xffff && Z_LVAL_P(arg1) > 0x0) {
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
- MBSTRG(current_filter_illegal_substchar) = Z_LVAL_PP(arg1);
+ MBSTRG(current_filter_illegal_substchar) = Z_LVAL_P(arg1);
} else {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown character.");
RETURN_FALSE;
}
- }
- break;
- default:
- convert_to_long_ex(arg1);
- if (Z_LVAL_PP(arg1) < 0xffff && Z_LVAL_PP(arg1) > 0x0) {
- MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
- MBSTRG(current_filter_illegal_substchar) = Z_LVAL_PP(arg1);
- } else {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown character.");
- RETURN_FALSE;
- }
- break;
+ break;
}
}
}
@@ -2044,7 +2043,7 @@ PHP_FUNCTION(mb_preferred_mime_name)
php_error_docref(NULL TSRMLS_CC, E_WARNING, "No MIME preferred name corresponding to \"%s\"", name);
RETVAL_FALSE;
} else {
- RETVAL_STRING((char *)preferred_name, 1);
+ RETVAL_STRING((char *)preferred_name);
}
}
}
@@ -2071,6 +2070,7 @@ PHP_FUNCTION(mb_parse_str)
if (track_vars_array != NULL) {
/* Clear out the array */
+ ZVAL_DEREF(track_vars_array);
zval_dtor(track_vars_array);
array_init(track_vars_array);
}
@@ -2093,7 +2093,7 @@ PHP_FUNCTION(mb_parse_str)
if (!EG(active_symbol_table)) {
zend_rebuild_symbol_table(TSRMLS_C);
}
- Z_ARRVAL(tmp) = EG(active_symbol_table);
+ ZVAL_ARR(&tmp, EG(active_symbol_table));
detected = _php_mb_encoding_handler_ex(&info, &tmp, encstr TSRMLS_CC);
}
@@ -2135,7 +2135,7 @@ PHP_FUNCTION(mb_output_handler)
MBSTRG(outconv) = NULL;
}
if (encoding == &mbfl_encoding_pass) {
- RETURN_STRINGL(arg_string, arg_string_len, 1);
+ RETURN_STRINGL(arg_string, arg_string_len);
}
/* analyze mime type */
@@ -2173,7 +2173,7 @@ PHP_FUNCTION(mb_output_handler)
/* just return if the converter is not activated. */
if (MBSTRG(outconv) == NULL) {
- RETURN_STRINGL(arg_string, arg_string_len, 1);
+ RETURN_STRINGL(arg_string, arg_string_len);
}
/* flag */
@@ -2196,7 +2196,9 @@ PHP_FUNCTION(mb_output_handler)
}
/* get the converter output, and return it */
mbfl_buffer_converter_result(MBSTRG(outconv), &result);
- RETVAL_STRINGL((char *)result.val, result.len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)result.val, result.len); /* the string is already strdup()'ed */
+ efree(result.val);
/* delete the converter if it is the last feed. */
if (last_feed) {
@@ -2219,7 +2221,7 @@ PHP_FUNCTION(mb_strlen)
mbfl_string_init(&string);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s", (char **)&string.val, &string.len, &enc_name, &enc_name_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
string.no_language = MBSTRG(language);
@@ -2261,7 +2263,7 @@ PHP_FUNCTION(mb_strpos)
offset = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|ls", (char **)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &offset, &enc_name, &enc_name_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (enc_name != NULL) {
@@ -2314,7 +2316,7 @@ PHP_FUNCTION(mb_strrpos)
mbfl_string haystack, needle;
char *enc_name = NULL;
int enc_name_len;
- zval **zoffset = NULL;
+ zval *zoffset = NULL;
long offset = 0, str_flg;
char *enc_name2 = NULL;
int enc_name_len2;
@@ -2326,48 +2328,48 @@ PHP_FUNCTION(mb_strrpos)
needle.no_language = MBSTRG(language);
needle.no_encoding = MBSTRG(current_internal_encoding)->no_encoding;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|Zs", (char **)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &zoffset, &enc_name, &enc_name_len) == FAILURE) {
- RETURN_FALSE;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|zs", (char **)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &zoffset, &enc_name, &enc_name_len) == FAILURE) {
+ return;
}
if (zoffset) {
- if (Z_TYPE_PP(zoffset) == IS_STRING) {
- enc_name2 = Z_STRVAL_PP(zoffset);
- enc_name_len2 = Z_STRLEN_PP(zoffset);
+ if (Z_TYPE_P(zoffset) == IS_STRING) {
+ enc_name2 = Z_STRVAL_P(zoffset);
+ enc_name_len2 = Z_STRLEN_P(zoffset);
str_flg = 1;
if (enc_name2 != NULL) {
switch (*enc_name2) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case ' ':
- case '-':
- case '.':
- break;
- default :
- str_flg = 0;
- break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ' ':
+ case '-':
+ case '.':
+ break;
+ default :
+ str_flg = 0;
+ break;
}
}
if (str_flg) {
convert_to_long_ex(zoffset);
- offset = Z_LVAL_PP(zoffset);
+ offset = Z_LVAL_P(zoffset);
} else {
enc_name = enc_name2;
enc_name_len = enc_name_len2;
}
} else {
convert_to_long_ex(zoffset);
- offset = Z_LVAL_PP(zoffset);
+ offset = Z_LVAL_P(zoffset);
}
}
@@ -2417,7 +2419,7 @@ PHP_FUNCTION(mb_stripos)
offset = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|ls", (char **)&haystack.val, (int *)&haystack.len, (char **)&needle.val, (int *)&needle.len, &offset, &from_encoding, &from_encoding_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (needle.len == 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Empty delimiter");
@@ -2446,7 +2448,7 @@ PHP_FUNCTION(mb_strripos)
offset = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|ls", (char **)&haystack.val, (int *)&haystack.len, (char **)&needle.val, (int *)&needle.len, &offset, &from_encoding, &from_encoding_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
n = php_mb_stripos(1, (char *)haystack.val, haystack.len, (char *)needle.val, needle.len, offset, from_encoding TSRMLS_CC);
@@ -2477,7 +2479,7 @@ PHP_FUNCTION(mb_strstr)
needle.no_encoding = MBSTRG(current_internal_encoding)->no_encoding;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|bs", (char **)&haystack.val, (int *)&haystack.len, (char **)&needle.val, (int *)&needle.len, &part, &enc_name, &enc_name_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (enc_name != NULL) {
@@ -2498,7 +2500,9 @@ PHP_FUNCTION(mb_strstr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2506,7 +2510,9 @@ PHP_FUNCTION(mb_strstr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2535,7 +2541,7 @@ PHP_FUNCTION(mb_strrchr)
needle.no_encoding = MBSTRG(current_internal_encoding)->no_encoding;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|bs", (char **)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &part, &enc_name, &enc_name_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (enc_name != NULL) {
@@ -2558,7 +2564,9 @@ PHP_FUNCTION(mb_strrchr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2566,7 +2574,9 @@ PHP_FUNCTION(mb_strrchr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2595,7 +2605,7 @@ PHP_FUNCTION(mb_stristr)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|bs", (char **)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &part, &from_encoding, &from_encoding_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (!needle.len) {
@@ -2620,7 +2630,9 @@ PHP_FUNCTION(mb_stristr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2628,7 +2640,9 @@ PHP_FUNCTION(mb_stristr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocaton ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2653,7 +2667,7 @@ PHP_FUNCTION(mb_strrichr)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|bs", (char **)&haystack.val, &haystack.len, (char **)&needle.val, &needle.len, &part, &from_encoding, &from_encoding_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
haystack.no_encoding = needle.no_encoding = mbfl_name2no_encoding(from_encoding);
@@ -2673,7 +2687,9 @@ PHP_FUNCTION(mb_strrichr)
if (part) {
ret = mbfl_substr(&haystack, &result, 0, n);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2681,7 +2697,9 @@ PHP_FUNCTION(mb_strrichr)
len = (mblen - n);
ret = mbfl_substr(&haystack, &result, n, len);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -2739,10 +2757,10 @@ PHP_FUNCTION(mb_substr)
char *str, *encoding;
long from, len;
int mblen, str_len, encoding_len;
- zval **z_len = NULL;
+ zval *z_len = NULL;
mbfl_string string, result, *ret;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|Zs", &str, &str_len, &from, &z_len, &encoding, &encoding_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|zs", &str, &str_len, &from, &z_len, &encoding, &encoding_len) == FAILURE) {
return;
}
@@ -2761,11 +2779,11 @@ PHP_FUNCTION(mb_substr)
string.val = (unsigned char *)str;
string.len = str_len;
- if (argc < 3 || Z_TYPE_PP(z_len) == IS_NULL) {
+ if (argc < 3 || Z_TYPE_P(z_len) == IS_NULL) {
len = str_len;
} else {
convert_to_long_ex(z_len);
- len = Z_LVAL_PP(z_len);
+ len = Z_LVAL_P(z_len);
}
/* measures length */
@@ -2804,7 +2822,9 @@ PHP_FUNCTION(mb_substr)
RETURN_FALSE;
}
- RETURN_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
}
/* }}} */
@@ -2816,14 +2836,14 @@ PHP_FUNCTION(mb_strcut)
char *encoding;
long from, len;
int encoding_len;
- zval **z_len = NULL;
+ zval *z_len = NULL;
mbfl_string string, result, *ret;
mbfl_string_init(&string);
string.no_language = MBSTRG(language);
string.no_encoding = MBSTRG(current_internal_encoding)->no_encoding;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|Zs", (char **)&string.val, (int **)&string.len, &from, &z_len, &encoding, &encoding_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|zs", (char **)&string.val, (int **)&string.len, &from, &z_len, &encoding, &encoding_len) == FAILURE) {
return;
}
@@ -2835,11 +2855,11 @@ PHP_FUNCTION(mb_strcut)
}
}
- if (argc < 3 || Z_TYPE_PP(z_len) == IS_NULL) {
+ if (argc < 3 || Z_TYPE_P(z_len) == IS_NULL) {
len = string.len;
} else {
convert_to_long_ex(z_len);
- len = Z_LVAL_PP(z_len);
+ len = Z_LVAL_P(z_len);
}
/* if "from" position is negative, count start position from the end
@@ -2871,7 +2891,9 @@ PHP_FUNCTION(mb_strcut)
RETURN_FALSE;
}
- RETURN_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
}
/* }}} */
@@ -2963,8 +2985,9 @@ PHP_FUNCTION(mb_strimwidth)
if (ret == NULL) {
RETURN_FALSE;
}
-
- RETVAL_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
}
/* }}} */
@@ -3066,7 +3089,7 @@ PHP_FUNCTION(mb_convert_encoding)
size_t size, l, n;
char *_from_encodings = NULL, *ret, *s_free = NULL;
- zval **hash_entry;
+ zval *hash_entry;
HashTable *target_hash;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|z", &arg_str, &str_len, &arg_new, &new_len, &arg_old) == FAILURE) {
@@ -3075,50 +3098,52 @@ PHP_FUNCTION(mb_convert_encoding)
if (ZEND_NUM_ARGS() == 3) {
switch (Z_TYPE_P(arg_old)) {
- case IS_ARRAY:
- target_hash = Z_ARRVAL_P(arg_old);
- zend_hash_internal_pointer_reset(target_hash);
- i = zend_hash_num_elements(target_hash);
- _from_encodings = NULL;
+ case IS_ARRAY:
+ target_hash = Z_ARRVAL_P(arg_old);
+ zend_hash_internal_pointer_reset(target_hash);
+ i = zend_hash_num_elements(target_hash);
+ _from_encodings = NULL;
- while (i > 0) {
- if (zend_hash_get_current_data(target_hash, (void **) &hash_entry) == FAILURE) {
- break;
- }
+ while (i > 0) {
+ if ((hash_entry = zend_hash_get_current_data(target_hash)) == NULL) {
+ break;
+ }
- convert_to_string_ex(hash_entry);
+ convert_to_string_ex(hash_entry);
- if ( _from_encodings) {
- l = strlen(_from_encodings);
- n = strlen(Z_STRVAL_PP(hash_entry));
- _from_encodings = erealloc(_from_encodings, l+n+2);
- strcpy(_from_encodings+l, ",");
- strcpy(_from_encodings+l+1, Z_STRVAL_PP(hash_entry));
- } else {
- _from_encodings = estrdup(Z_STRVAL_PP(hash_entry));
- }
+ if ( _from_encodings) {
+ l = strlen(_from_encodings);
+ n = strlen(Z_STRVAL_P(hash_entry));
+ _from_encodings = erealloc(_from_encodings, l+n+2);
+ memcpy(_from_encodings + l, ",", 1);
+ memcpy(_from_encodings + l + 1, Z_STRVAL_P(hash_entry), Z_STRLEN_P(hash_entry) + 1);
+ } else {
+ _from_encodings = estrdup(Z_STRVAL_P(hash_entry));
+ }
- zend_hash_move_forward(target_hash);
- i--;
- }
+ zend_hash_move_forward(target_hash);
+ i--;
+ }
- if (_from_encodings != NULL && !strlen(_from_encodings)) {
- efree(_from_encodings);
- _from_encodings = NULL;
+ if (_from_encodings != NULL && !strlen(_from_encodings)) {
+ efree(_from_encodings);
+ _from_encodings = NULL;
+ }
+ s_free = _from_encodings;
+ break;
+ default:
+ convert_to_string(arg_old);
+ _from_encodings = Z_STRVAL_P(arg_old);
+ break;
}
- s_free = _from_encodings;
- break;
- default:
- convert_to_string(arg_old);
- _from_encodings = Z_STRVAL_P(arg_old);
- break;
- }
}
/* new encoding */
ret = php_mb_convert_encoding(arg_str, str_len, arg_new, _from_encodings, &size TSRMLS_CC);
if (ret != NULL) {
- RETVAL_STRINGL(ret, size, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(ret, size); /* the string is already strdup()'ed */
+ efree(ret);
} else {
RETVAL_FALSE;
}
@@ -3142,13 +3167,16 @@ PHP_FUNCTION(mb_convert_case)
RETVAL_FALSE;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|s!", &str, &str_len,
- &case_mode, &from_encoding, &from_encoding_len) == FAILURE)
- RETURN_FALSE;
+ &case_mode, &from_encoding, &from_encoding_len) == FAILURE) {
+ return;
+ }
newstr = php_unicode_convert_case(case_mode, str, (size_t) str_len, &ret_len, from_encoding TSRMLS_CC);
if (newstr) {
- RETVAL_STRINGL(newstr, ret_len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(newstr, ret_len);
+ efree(newstr);
}
}
/* }}} */
@@ -3171,7 +3199,10 @@ PHP_FUNCTION(mb_strtoupper)
newstr = php_unicode_convert_case(PHP_UNICODE_CASE_UPPER, str, (size_t) str_len, &ret_len, from_encoding TSRMLS_CC);
if (newstr) {
- RETURN_STRINGL(newstr, ret_len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(newstr, ret_len);
+ efree(newstr);
+ return;
}
RETURN_FALSE;
}
@@ -3195,7 +3226,10 @@ PHP_FUNCTION(mb_strtolower)
newstr = php_unicode_convert_case(PHP_UNICODE_CASE_LOWER, str, (size_t) str_len, &ret_len, from_encoding TSRMLS_CC);
if (newstr) {
- RETURN_STRINGL(newstr, ret_len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL(newstr, ret_len);
+ efree(newstr);
+ return;
}
RETURN_FALSE;
}
@@ -3222,7 +3256,7 @@ PHP_FUNCTION(mb_detect_encoding)
/* make encoding list */
list = NULL;
size = 0;
- if (ZEND_NUM_ARGS() >= 2 && !ZVAL_IS_NULL(encoding_list)) {
+ if (ZEND_NUM_ARGS() >= 2 && !Z_ISNULL_P(encoding_list)) {
switch (Z_TYPE_P(encoding_list)) {
case IS_ARRAY:
if (FAILURE == php_mb_parse_encoding_array(encoding_list, &list, &size, 0 TSRMLS_CC)) {
@@ -3274,7 +3308,7 @@ PHP_FUNCTION(mb_detect_encoding)
RETURN_FALSE;
}
- RETVAL_STRING((char *)ret->name, 1);
+ RETVAL_STRING((char *)ret->name);
}
/* }}} */
@@ -3290,7 +3324,7 @@ PHP_FUNCTION(mb_list_encodings)
i = 0;
encodings = mbfl_get_supported_encodings();
while ((encoding = encodings[i++]) != NULL) {
- add_next_index_string(return_value, (char *) encoding->name, 1);
+ add_next_index_string(return_value, (char *) encoding->name);
}
}
/* }}} */
@@ -3304,7 +3338,7 @@ PHP_FUNCTION(mb_encoding_aliases)
int name_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
encoding = mbfl_name2encoding(name);
@@ -3317,7 +3351,7 @@ PHP_FUNCTION(mb_encoding_aliases)
if (encoding->aliases != NULL) {
const char **alias;
for (alias = *encoding->aliases; *alias; ++alias) {
- add_next_index_string(return_value, (char *)*alias, 1);
+ add_next_index_string(return_value, (char *)*alias);
}
}
}
@@ -3373,7 +3407,9 @@ PHP_FUNCTION(mb_encode_mimeheader)
mbfl_string_init(&result);
ret = mbfl_mime_header_encode(&string, &result, charset, transenc, linefeed, indent);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -3397,7 +3433,9 @@ PHP_FUNCTION(mb_decode_mimeheader)
mbfl_string_init(&result);
ret = mbfl_mime_header_decode(&string, &result, MBSTRG(current_internal_encoding)->no_encoding);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -3500,7 +3538,9 @@ PHP_FUNCTION(mb_convert_kana)
ret = mbfl_ja_jp_hantozen(&string, &result, opt);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -3513,7 +3553,7 @@ PHP_FUNCTION(mb_convert_kana)
Converts the string resource in variables to desired encoding */
PHP_FUNCTION(mb_convert_variables)
{
- zval ***args, ***stack, **var, **hash_entry, **zfrom_enc;
+ zval *args, *stack, *var, *hash_entry, *hash_entry_ptr, *zfrom_enc;
HashTable *target_hash;
mbfl_string string, result, *ret;
const mbfl_encoding *from_encoding, *to_encoding;
@@ -3525,7 +3565,7 @@ PHP_FUNCTION(mb_convert_variables)
char *to_enc;
void *ptmp;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sZ+", &to_enc, &to_enc_len, &zfrom_enc, &args, &argc) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz+", &to_enc, &to_enc_len, &zfrom_enc, &args, &argc) == FAILURE) {
return;
}
@@ -3533,7 +3573,6 @@ PHP_FUNCTION(mb_convert_variables)
to_encoding = mbfl_name2encoding(to_enc);
if (!to_encoding) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown encoding \"%s\"", to_enc);
- efree(args);
RETURN_FALSE;
}
@@ -3547,15 +3586,16 @@ PHP_FUNCTION(mb_convert_variables)
/* pre-conversion encoding */
elist = NULL;
elistsz = 0;
- switch (Z_TYPE_PP(zfrom_enc)) {
- case IS_ARRAY:
- php_mb_parse_encoding_array(*zfrom_enc, &elist, &elistsz, 0 TSRMLS_CC);
- break;
- default:
- convert_to_string_ex(zfrom_enc);
- php_mb_parse_encoding_list(Z_STRVAL_PP(zfrom_enc), Z_STRLEN_PP(zfrom_enc), &elist, &elistsz, 0 TSRMLS_CC);
- break;
+ switch (Z_TYPE_P(zfrom_enc)) {
+ case IS_ARRAY:
+ php_mb_parse_encoding_array(zfrom_enc, &elist, &elistsz, 0 TSRMLS_CC);
+ break;
+ default:
+ convert_to_string_ex(zfrom_enc);
+ php_mb_parse_encoding_list(Z_STRVAL_P(zfrom_enc), Z_STRLEN_P(zfrom_enc), &elist, &elistsz, 0 TSRMLS_CC);
+ break;
}
+
if (elistsz <= 0) {
from_encoding = &mbfl_encoding_pass;
} else if (elistsz == 1) {
@@ -3564,55 +3604,60 @@ PHP_FUNCTION(mb_convert_variables)
/* auto detect */
from_encoding = NULL;
stack_max = PHP_MBSTR_STACK_BLOCK_SIZE;
- stack = (zval ***)safe_emalloc(stack_max, sizeof(zval **), 0);
+ stack = (zval *)safe_emalloc(stack_max, sizeof(zval), 0);
stack_level = 0;
identd = mbfl_encoding_detector_new2(elist, elistsz, MBSTRG(strict_detection));
if (identd != NULL) {
n = 0;
while (n < argc || stack_level > 0) {
if (stack_level <= 0) {
- var = args[n++];
- if (Z_TYPE_PP(var) == IS_ARRAY || Z_TYPE_PP(var) == IS_OBJECT) {
- target_hash = HASH_OF(*var);
+ var = &args[n++];
+ ZVAL_DEREF(var);
+ if (Z_TYPE_P(var) == IS_ARRAY || Z_TYPE_P(var) == IS_OBJECT) {
+ target_hash = HASH_OF(var);
if (target_hash != NULL) {
zend_hash_internal_pointer_reset(target_hash);
}
}
} else {
stack_level--;
- var = stack[stack_level];
+ var = &stack[stack_level];
}
- if (Z_TYPE_PP(var) == IS_ARRAY || Z_TYPE_PP(var) == IS_OBJECT) {
- target_hash = HASH_OF(*var);
+ if (Z_TYPE_P(var) == IS_ARRAY || Z_TYPE_P(var) == IS_OBJECT) {
+ target_hash = HASH_OF(var);
if (target_hash != NULL) {
- while (zend_hash_get_current_data(target_hash, (void **) &hash_entry) != FAILURE) {
+ while ((hash_entry = zend_hash_get_current_data(target_hash)) != NULL) {
zend_hash_move_forward(target_hash);
- if (Z_TYPE_PP(hash_entry) == IS_ARRAY || Z_TYPE_PP(hash_entry) == IS_OBJECT) {
+ if (Z_TYPE_P(hash_entry) == IS_INDIRECT) {
+ hash_entry = Z_INDIRECT_P(hash_entry);
+ }
+ ZVAL_DEREF(hash_entry);
+ if (Z_TYPE_P(hash_entry) == IS_ARRAY || Z_TYPE_P(hash_entry) == IS_OBJECT) {
if (stack_level >= stack_max) {
stack_max += PHP_MBSTR_STACK_BLOCK_SIZE;
- ptmp = erealloc(stack, sizeof(zval **)*stack_max);
- stack = (zval ***)ptmp;
+ ptmp = erealloc(stack, sizeof(zval) * stack_max);
+ stack = (zval *)ptmp;
}
- stack[stack_level] = var;
+ ZVAL_COPY_VALUE(&stack[stack_level], var);
stack_level++;
var = hash_entry;
- target_hash = HASH_OF(*var);
+ target_hash = HASH_OF(var);
if (target_hash != NULL) {
zend_hash_internal_pointer_reset(target_hash);
continue;
}
- } else if (Z_TYPE_PP(hash_entry) == IS_STRING) {
- string.val = (unsigned char *)Z_STRVAL_PP(hash_entry);
- string.len = Z_STRLEN_PP(hash_entry);
+ } else if (Z_TYPE_P(hash_entry) == IS_STRING) {
+ string.val = (unsigned char *)Z_STRVAL_P(hash_entry);
+ string.len = Z_STRLEN_P(hash_entry);
if (mbfl_encoding_detector_feed(identd, &string)) {
goto detect_end; /* complete detecting */
}
}
}
}
- } else if (Z_TYPE_PP(var) == IS_STRING) {
- string.val = (unsigned char *)Z_STRVAL_PP(var);
- string.len = Z_STRLEN_PP(var);
+ } else if (Z_TYPE_P(var) == IS_STRING) {
+ string.val = (unsigned char *)Z_STRVAL_P(var);
+ string.len = Z_STRLEN_P(var);
if (mbfl_encoding_detector_feed(identd, &string)) {
goto detect_end; /* complete detecting */
}
@@ -3647,65 +3692,70 @@ detect_end:
/* convert */
if (convd != NULL) {
stack_max = PHP_MBSTR_STACK_BLOCK_SIZE;
- stack = (zval ***)safe_emalloc(stack_max, sizeof(zval **), 0);
+ stack = (zval*)safe_emalloc(stack_max, sizeof(zval), 0);
stack_level = 0;
n = 0;
while (n < argc || stack_level > 0) {
if (stack_level <= 0) {
- var = args[n++];
- if (Z_TYPE_PP(var) == IS_ARRAY || Z_TYPE_PP(var) == IS_OBJECT) {
- target_hash = HASH_OF(*var);
+ var = &args[n++];
+ ZVAL_DEREF(var);
+ if (Z_TYPE_P(var) == IS_ARRAY || Z_TYPE_P(var) == IS_OBJECT) {
+ target_hash = HASH_OF(var);
if (target_hash != NULL) {
zend_hash_internal_pointer_reset(target_hash);
}
}
} else {
stack_level--;
- var = stack[stack_level];
+ var = &stack[stack_level];
}
- if (Z_TYPE_PP(var) == IS_ARRAY || Z_TYPE_PP(var) == IS_OBJECT) {
- target_hash = HASH_OF(*var);
+ if (Z_TYPE_P(var) == IS_ARRAY || Z_TYPE_P(var) == IS_OBJECT) {
+ target_hash = HASH_OF(var);
if (target_hash != NULL) {
- while (zend_hash_get_current_data(target_hash, (void **) &hash_entry) != FAILURE) {
+ while ((hash_entry_ptr = zend_hash_get_current_data(target_hash)) != NULL) {
zend_hash_move_forward(target_hash);
- if (Z_TYPE_PP(hash_entry) == IS_ARRAY || Z_TYPE_PP(hash_entry) == IS_OBJECT) {
+ if (Z_TYPE_P(hash_entry_ptr) == IS_INDIRECT) {
+ hash_entry_ptr = Z_INDIRECT_P(hash_entry_ptr);
+ }
+ hash_entry = hash_entry_ptr;
+ ZVAL_DEREF(hash_entry);
+ if (Z_TYPE_P(hash_entry) == IS_ARRAY || Z_TYPE_P(hash_entry) == IS_OBJECT) {
if (stack_level >= stack_max) {
stack_max += PHP_MBSTR_STACK_BLOCK_SIZE;
- ptmp = erealloc(stack, sizeof(zval **)*stack_max);
- stack = (zval ***)ptmp;
+ ptmp = erealloc(stack, sizeof(zval) * stack_max);
+ stack = (zval *)ptmp;
}
- stack[stack_level] = var;
+ ZVAL_COPY_VALUE(&stack[stack_level], var);
stack_level++;
var = hash_entry;
SEPARATE_ZVAL(hash_entry);
- target_hash = HASH_OF(*var);
+ target_hash = HASH_OF(var);
if (target_hash != NULL) {
zend_hash_internal_pointer_reset(target_hash);
continue;
}
- } else if (Z_TYPE_PP(hash_entry) == IS_STRING) {
- string.val = (unsigned char *)Z_STRVAL_PP(hash_entry);
- string.len = Z_STRLEN_PP(hash_entry);
+ } else if (Z_TYPE_P(hash_entry) == IS_STRING) {
+ string.val = (unsigned char *)Z_STRVAL_P(hash_entry);
+ string.len = Z_STRLEN_P(hash_entry);
ret = mbfl_buffer_converter_feed_result(convd, &string, &result);
if (ret != NULL) {
- if (Z_REFCOUNT_PP(hash_entry) > 1) {
- Z_DELREF_PP(hash_entry);
- MAKE_STD_ZVAL(*hash_entry);
- } else {
- zval_dtor(*hash_entry);
- }
- ZVAL_STRINGL(*hash_entry, (char *)ret->val, ret->len, 0);
+ zval_ptr_dtor(hash_entry_ptr);
+ // TODO: avoid reallocation ???
+ ZVAL_STRINGL(hash_entry_ptr, (char *)ret->val, ret->len);
+ efree(ret->val);
+ }
}
}
}
- }
- } else if (Z_TYPE_PP(var) == IS_STRING) {
- string.val = (unsigned char *)Z_STRVAL_PP(var);
- string.len = Z_STRLEN_PP(var);
- ret = mbfl_buffer_converter_feed_result(convd, &string, &result);
- if (ret != NULL) {
- zval_dtor(*var);
- ZVAL_STRINGL(*var, (char *)ret->val, ret->len, 0);
+ } else if (Z_TYPE_P(var) == IS_STRING) {
+ string.val = (unsigned char *)Z_STRVAL_P(var);
+ string.len = Z_STRLEN_P(var);
+ ret = mbfl_buffer_converter_feed_result(convd, &string, &result);
+ if (ret != NULL) {
+ zval_ptr_dtor(var);
+ // TODO: avoid reallocation ???
+ ZVAL_STRINGL(var, (char *)ret->val, ret->len);
+ efree(ret->val);
}
}
}
@@ -3715,10 +3765,8 @@ detect_end:
mbfl_buffer_converter_delete(convd);
}
- efree(args);
-
if (from_encoding) {
- RETURN_STRING(from_encoding->name, 1);
+ RETURN_STRING(from_encoding->name);
} else {
RETURN_FALSE;
}
@@ -3732,7 +3780,7 @@ php_mb_numericentity_exec(INTERNAL_FUNCTION_PARAMETERS, int type)
{
char *str, *encoding;
int str_len, encoding_len;
- zval *zconvmap, **hash_entry;
+ zval *zconvmap, *hash_entry;
HashTable *target_hash;
size_t argc = ZEND_NUM_ARGS();
int i, *convmap, *mapelm, mapsize=0;
@@ -3778,11 +3826,11 @@ php_mb_numericentity_exec(INTERNAL_FUNCTION_PARAMETERS, int type)
mapelm = convmap;
mapsize = 0;
while (i > 0) {
- if (zend_hash_get_current_data(target_hash, (void **) &hash_entry) == FAILURE) {
+ if ((hash_entry = zend_hash_get_current_data(target_hash)) == NULL) {
break;
}
convert_to_long_ex(hash_entry);
- *mapelm++ = Z_LVAL_PP(hash_entry);
+ *mapelm++ = Z_LVAL_P(hash_entry);
mapsize++;
i--;
zend_hash_move_forward(target_hash);
@@ -3796,7 +3844,9 @@ php_mb_numericentity_exec(INTERNAL_FUNCTION_PARAMETERS, int type)
ret = mbfl_html_numeric_entity(&string, &result, convmap, mapsize, type);
if (ret != NULL) {
- RETVAL_STRINGL((char *)ret->val, ret->len, 0);
+ // TODO: avoid reallocation ???
+ RETVAL_STRINGL((char *)ret->val, ret->len);
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -3841,46 +3891,19 @@ PHP_FUNCTION(mb_decode_numericentity)
*pp = ' '; \
} \
-#define APPEND_ONE_CHAR(ch) do { \
- if (token.a > 0) { \
- smart_str_appendc(&token, ch); \
- } else {\
- token.len++; \
- } \
-} while (0)
-
-#define SEPARATE_SMART_STR(str) do {\
- if ((str)->a == 0) { \
- char *tmp_ptr; \
- (str)->a = 1; \
- while ((str)->a < (str)->len) { \
- (str)->a <<= 1; \
- } \
- tmp_ptr = emalloc((str)->a + 1); \
- memcpy(tmp_ptr, (str)->c, (str)->len); \
- (str)->c = tmp_ptr; \
- } \
-} while (0)
-
-static void my_smart_str_dtor(smart_str *s)
-{
- if (s->a > 0) {
- smart_str_free(s);
- }
-}
-
static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t str_len)
{
const char *ps;
size_t icnt;
int state = 0;
int crlf_state = -1;
-
- smart_str token = { 0, 0, 0 };
- smart_str fld_name = { 0, 0, 0 }, fld_val = { 0, 0, 0 };
+ char *token;
+ size_t token_pos;
+ zend_string *fld_name, *fld_val;
ps = str;
icnt = str_len;
+ fld_name = fld_val = NULL;
/*
* C o n t e n t - T y p e : t e x t / h t m l \r\n
@@ -3897,15 +3920,15 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
switch (*ps) {
case ':':
if (crlf_state == 1) {
- APPEND_ONE_CHAR('\r');
+ token_pos++;
}
if (state == 0 || state == 1) {
- fld_name = token;
+ fld_name = STR_INIT(token, token_pos, 0);
state = 2;
} else {
- APPEND_ONE_CHAR(*ps);
+ token_pos++;
}
crlf_state = 0;
@@ -3920,7 +3943,7 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
case '\r':
if (crlf_state == 1) {
- APPEND_ONE_CHAR('\r');
+ token_pos++;
} else {
crlf_state = 1;
}
@@ -3930,7 +3953,6 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
if (crlf_state == -1) {
if (state == 3) {
/* continuing from the previous line */
- SEPARATE_SMART_STR(&token);
state = 4;
} else {
/* simply skipping this new line */
@@ -3938,10 +3960,10 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
}
} else {
if (crlf_state == 1) {
- APPEND_ONE_CHAR('\r');
+ token_pos++;
}
if (state == 1 || state == 3) {
- APPEND_ONE_CHAR(*ps);
+ token_pos++;
}
}
crlf_state = 0;
@@ -3950,17 +3972,15 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
default:
switch (state) {
case 0:
- token.c = (char *)ps;
- token.len = 0;
- token.a = 0;
+ token = (char*)ps;
+ token_pos = 0;
state = 1;
break;
case 2:
if (crlf_state != -1) {
- token.c = (char *)ps;
- token.len = 0;
- token.a = 0;
+ token = (char*)ps;
+ token_pos = 0;
state = 3;
break;
@@ -3969,43 +3989,39 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
case 3:
if (crlf_state == -1) {
- fld_val = token;
-
- if (fld_name.c != NULL && fld_val.c != NULL) {
- char *dummy;
+ fld_val = STR_INIT(token, token_pos, 0);
+ if (fld_name != NULL && fld_val != NULL) {
+ zval val;
/* FIXME: some locale free implementation is
* really required here,,, */
- SEPARATE_SMART_STR(&fld_name);
- php_strtoupper(fld_name.c, fld_name.len);
+ php_strtoupper(fld_name->val, fld_name->len);
+ ZVAL_STR(&val, fld_val);
- zend_hash_update(ht, (char *)fld_name.c, fld_name.len, &fld_val, sizeof(smart_str), (void **)&dummy);
+ zend_hash_update(ht, fld_name, &val);
- my_smart_str_dtor(&fld_name);
+ STR_RELEASE(fld_name);
}
- memset(&fld_name, 0, sizeof(smart_str));
- memset(&fld_val, 0, sizeof(smart_str));
-
- token.c = (char *)ps;
- token.len = 0;
- token.a = 0;
+ fld_name = fld_val = NULL;
+ token = (char*)ps;
+ token_pos = 0;
state = 1;
}
break;
case 4:
- APPEND_ONE_CHAR(' ');
+ token_pos++;
state = 3;
break;
}
if (crlf_state == 1) {
- APPEND_ONE_CHAR('\r');
+ token_pos++;
}
- APPEND_ONE_CHAR(*ps);
+ token_pos++;
crlf_state = 0;
break;
@@ -4014,26 +4030,24 @@ static int _php_mbstr_parse_mail_headers(HashTable *ht, const char *str, size_t
}
out:
if (state == 2) {
- token.c = "";
- token.len = 0;
- token.a = 0;
+ token = "";
+ token_pos = 0;
state = 3;
}
if (state == 3) {
- fld_val = token;
-
- if (fld_name.c != NULL && fld_val.c != NULL) {
- void *dummy;
+ fld_val = STR_INIT(token, 0, 0);
+ if (fld_name != NULL && fld_val != NULL) {
+ zval val;
/* FIXME: some locale free implementation is
* really required here,,, */
- SEPARATE_SMART_STR(&fld_name);
- php_strtoupper(fld_name.c, fld_name.len);
+ php_strtoupper(fld_name->val, fld_name->len);
+ ZVAL_STR(&val, fld_val);
- zend_hash_update(ht, (char *)fld_name.c, fld_name.len, &fld_val, sizeof(smart_str), (void **)&dummy);
+ zend_hash_update(ht, fld_name, &val);
- my_smart_str_dtor(&fld_name);
+ STR_RELEASE(fld_name);
}
}
return state;
@@ -4049,9 +4063,8 @@ PHP_FUNCTION(mb_send_mail)
char *headers = NULL;
int headers_len;
char *subject = NULL;
+ zend_string *extra_cmd = NULL;
int subject_len;
- char *extra_cmd = NULL;
- int extra_cmd_len;
int i;
char *to_r = NULL;
char *force_extra_parameters = INI_STR("mail.force_extra_parameters");
@@ -4071,7 +4084,7 @@ PHP_FUNCTION(mb_send_mail)
const mbfl_language *lang;
int err = 0;
HashTable ht_headers;
- smart_str *s;
+ zval *s;
extern void mbfl_memory_device_unput(mbfl_memory_device *device);
char *pp, *ee;
@@ -4091,7 +4104,7 @@ PHP_FUNCTION(mb_send_mail)
body_enc = lang->mail_body_encoding;
}
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss|ss", &to, &to_len, &subject, &subject_len, &message, &message_len, &headers, &headers_len, &extra_cmd, &extra_cmd_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss|sS", &to, &to_len, &subject, &subject_len, &message, &message_len, &headers, &headers_len, &extra_cmd) == FAILURE) {
return;
}
@@ -4103,24 +4116,21 @@ PHP_FUNCTION(mb_send_mail)
MAIL_ASCIIZ_CHECK_MBSTRING(headers, headers_len);
}
if (extra_cmd) {
- MAIL_ASCIIZ_CHECK_MBSTRING(extra_cmd, extra_cmd_len);
+ MAIL_ASCIIZ_CHECK_MBSTRING(extra_cmd->val, extra_cmd->len);
}
- zend_hash_init(&ht_headers, 0, NULL, (dtor_func_t) my_smart_str_dtor, 0);
+ zend_hash_init(&ht_headers, 0, NULL, ZVAL_PTR_DTOR, 0);
if (headers != NULL) {
_php_mbstr_parse_mail_headers(&ht_headers, headers, headers_len);
}
- if (zend_hash_find(&ht_headers, "CONTENT-TYPE", sizeof("CONTENT-TYPE") - 1, (void **)&s) == SUCCESS) {
+ if ((s = zend_hash_str_find_ptr(&ht_headers, "CONTENT-TYPE", sizeof("CONTENT-TYPE") - 1))) {
char *tmp;
char *param_name;
char *charset = NULL;
- SEPARATE_SMART_STR(s);
- smart_str_0(s);
-
- p = strchr(s->c, ';');
+ p = strchr(Z_STRVAL_P(s), ';');
if (p != NULL) {
/* skipping the padded spaces */
@@ -4150,12 +4160,10 @@ PHP_FUNCTION(mb_send_mail)
suppressed_hdrs.cnt_type = 1;
}
- if (zend_hash_find(&ht_headers, "CONTENT-TRANSFER-ENCODING", sizeof("CONTENT-TRANSFER-ENCODING") - 1, (void **)&s) == SUCCESS) {
+ if ((s = zend_hash_str_find_ptr(&ht_headers, "CONTENT-TRANSFER-ENCODING", sizeof("CONTENT-TRANSFER-ENCODING") - 1))) {
enum mbfl_no_encoding _body_enc;
- SEPARATE_SMART_STR(s);
- smart_str_0(s);
- _body_enc = mbfl_name2no_encoding(s->c);
+ _body_enc = mbfl_name2no_encoding(Z_STRVAL_P(s));
switch (_body_enc) {
case mbfl_no_encoding_base64:
case mbfl_no_encoding_7bit:
@@ -4164,7 +4172,7 @@ PHP_FUNCTION(mb_send_mail)
break;
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsupported transfer encoding \"%s\" - will be regarded as 8bit", s->c);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsupported transfer encoding \"%s\" - will be regarded as 8bit", Z_STRVAL_P(s));
body_enc = mbfl_no_encoding_8bit;
break;
}
@@ -4264,7 +4272,7 @@ PHP_FUNCTION(mb_send_mail)
}
}
- if (!zend_hash_exists(&ht_headers, "MIME-VERSION", sizeof("MIME-VERSION") - 1)) {
+ if (!zend_hash_str_exists(&ht_headers, "MIME-VERSION", sizeof("MIME-VERSION") - 1)) {
mbfl_memory_device_strncat(&device, PHP_MBSTR_MAIL_MIME_HEADER1, sizeof(PHP_MBSTR_MAIL_MIME_HEADER1) - 1);
mbfl_memory_device_strncat(&device, "\n", 1);
}
@@ -4296,18 +4304,19 @@ PHP_FUNCTION(mb_send_mail)
if (force_extra_parameters) {
extra_cmd = php_escape_shell_cmd(force_extra_parameters);
} else if (extra_cmd) {
- extra_cmd = php_escape_shell_cmd(extra_cmd);
+ extra_cmd = php_escape_shell_cmd(extra_cmd->val);
}
- if (!err && php_mail(to_r, subject, message, headers, extra_cmd TSRMLS_CC)) {
+ if (!err && php_mail(to_r, subject, message, headers, extra_cmd ? extra_cmd->val : NULL TSRMLS_CC)) {
RETVAL_TRUE;
} else {
RETVAL_FALSE;
}
if (extra_cmd) {
- efree(extra_cmd);
+ STR_RELEASE(extra_cmd);
}
+
if (to_r != to) {
efree(to_r);
}
@@ -4323,8 +4332,6 @@ PHP_FUNCTION(mb_send_mail)
#undef SKIP_LONG_HEADER_SEP_MBSTRING
#undef MAIL_ASCIIZ_CHECK_MBSTRING
-#undef APPEND_ONE_CHAR
-#undef SEPARATE_SMART_STR
#undef PHP_MBSTR_MAIL_MIME_HEADER1
#undef PHP_MBSTR_MAIL_MIME_HEADER2
#undef PHP_MBSTR_MAIL_MIME_HEADER3
@@ -4340,104 +4347,102 @@ PHP_FUNCTION(mb_get_info)
size_t n;
char *name;
const struct mb_overload_def *over_func;
- zval *row1, *row2;
+ zval row1, row2;
const mbfl_language *lang = mbfl_no2language(MBSTRG(language));
const mbfl_encoding **entry;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (!typ || !strcasecmp("all", typ)) {
array_init(return_value);
if (MBSTRG(current_internal_encoding)) {
- add_assoc_string(return_value, "internal_encoding", (char *)MBSTRG(current_internal_encoding)->name, 1);
+ add_assoc_string(return_value, "internal_encoding", (char *)MBSTRG(current_internal_encoding)->name);
}
if (MBSTRG(http_input_identify)) {
- add_assoc_string(return_value, "http_input", (char *)MBSTRG(http_input_identify)->name, 1);
+ add_assoc_string(return_value, "http_input", (char *)MBSTRG(http_input_identify)->name);
}
if (MBSTRG(current_http_output_encoding)) {
- add_assoc_string(return_value, "http_output", (char *)MBSTRG(current_http_output_encoding)->name, 1);
+ add_assoc_string(return_value, "http_output", (char *)MBSTRG(current_http_output_encoding)->name);
}
- if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes"), 0)) != NULL) {
- add_assoc_string(return_value, "http_output_conv_mimetypes", name, 1);
+ if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes") - 1, 0)) != NULL) {
+ add_assoc_string(return_value, "http_output_conv_mimetypes", name);
}
add_assoc_long(return_value, "func_overload", MBSTRG(func_overload));
if (MBSTRG(func_overload)){
over_func = &(mb_ovld[0]);
- MAKE_STD_ZVAL(row1);
- array_init(row1);
+ array_init(&row1);
while (over_func->type > 0) {
if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) {
- add_assoc_string(row1, over_func->orig_func, over_func->ovld_func, 1);
+ add_assoc_string(&row1, over_func->orig_func, over_func->ovld_func);
}
over_func++;
}
- add_assoc_zval(return_value, "func_overload_list", row1);
+ add_assoc_zval(return_value, "func_overload_list", &row1);
} else {
- add_assoc_string(return_value, "func_overload_list", "no overload", 1);
+ add_assoc_string(return_value, "func_overload_list", "no overload");
}
if (lang != NULL) {
if ((name = (char *)mbfl_no_encoding2name(lang->mail_charset)) != NULL) {
- add_assoc_string(return_value, "mail_charset", name, 1);
+ add_assoc_string(return_value, "mail_charset", name);
}
if ((name = (char *)mbfl_no_encoding2name(lang->mail_header_encoding)) != NULL) {
- add_assoc_string(return_value, "mail_header_encoding", name, 1);
+ add_assoc_string(return_value, "mail_header_encoding", name);
}
if ((name = (char *)mbfl_no_encoding2name(lang->mail_body_encoding)) != NULL) {
- add_assoc_string(return_value, "mail_body_encoding", name, 1);
+ add_assoc_string(return_value, "mail_body_encoding", name);
}
}
add_assoc_long(return_value, "illegal_chars", MBSTRG(illegalchars));
if (MBSTRG(encoding_translation)) {
- add_assoc_string(return_value, "encoding_translation", "On", 1);
+ add_assoc_string(return_value, "encoding_translation", "On");
} else {
- add_assoc_string(return_value, "encoding_translation", "Off", 1);
+ add_assoc_string(return_value, "encoding_translation", "Off");
}
if ((name = (char *)mbfl_no_language2name(MBSTRG(language))) != NULL) {
- add_assoc_string(return_value, "language", name, 1);
+ add_assoc_string(return_value, "language", name);
}
n = MBSTRG(current_detect_order_list_size);
entry = MBSTRG(current_detect_order_list);
if (n > 0) {
size_t i;
- MAKE_STD_ZVAL(row2);
- array_init(row2);
+ array_init(&row2);
for (i = 0; i < n; i++) {
- add_next_index_string(row2, (*entry)->name, 1);
+ add_next_index_string(&row2, (*entry)->name);
entry++;
}
- add_assoc_zval(return_value, "detect_order", row2);
+ add_assoc_zval(return_value, "detect_order", &row2);
}
if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
- add_assoc_string(return_value, "substitute_character", "none", 1);
+ add_assoc_string(return_value, "substitute_character", "none");
} else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
- add_assoc_string(return_value, "substitute_character", "long", 1);
+ add_assoc_string(return_value, "substitute_character", "long");
} else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY) {
- add_assoc_string(return_value, "substitute_character", "entity", 1);
+ add_assoc_string(return_value, "substitute_character", "entity");
} else {
add_assoc_long(return_value, "substitute_character", MBSTRG(current_filter_illegal_substchar));
}
if (MBSTRG(strict_detection)) {
- add_assoc_string(return_value, "strict_detection", "On", 1);
+ add_assoc_string(return_value, "strict_detection", "On");
} else {
- add_assoc_string(return_value, "strict_detection", "Off", 1);
+ add_assoc_string(return_value, "strict_detection", "Off");
}
} else if (!strcasecmp("internal_encoding", typ)) {
if (MBSTRG(current_internal_encoding)) {
- RETVAL_STRING((char *)MBSTRG(current_internal_encoding)->name, 1);
+ RETVAL_STRING((char *)MBSTRG(current_internal_encoding)->name);
}
} else if (!strcasecmp("http_input", typ)) {
if (MBSTRG(http_input_identify)) {
- RETVAL_STRING((char *)MBSTRG(http_input_identify)->name, 1);
+ RETVAL_STRING((char *)MBSTRG(http_input_identify)->name);
}
} else if (!strcasecmp("http_output", typ)) {
if (MBSTRG(current_http_output_encoding)) {
- RETVAL_STRING((char *)MBSTRG(current_http_output_encoding)->name, 1);
+ RETVAL_STRING((char *)MBSTRG(current_http_output_encoding)->name);
}
} else if (!strcasecmp("http_output_conv_mimetypes", typ)) {
- if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes"), 0)) != NULL) {
- RETVAL_STRING(name, 1);
+ if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes") - 1, 0)) != NULL) {
+ RETVAL_STRING(name);
}
} else if (!strcasecmp("func_overload", typ)) {
RETVAL_LONG(MBSTRG(func_overload));
@@ -4447,36 +4452,36 @@ PHP_FUNCTION(mb_get_info)
array_init(return_value);
while (over_func->type > 0) {
if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) {
- add_assoc_string(return_value, over_func->orig_func, over_func->ovld_func, 1);
+ add_assoc_string(return_value, over_func->orig_func, over_func->ovld_func);
}
over_func++;
}
} else {
- RETVAL_STRING("no overload", 1);
+ RETVAL_STRING("no overload");
}
} else if (!strcasecmp("mail_charset", typ)) {
if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_charset)) != NULL) {
- RETVAL_STRING(name, 1);
+ RETVAL_STRING(name);
}
} else if (!strcasecmp("mail_header_encoding", typ)) {
if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_header_encoding)) != NULL) {
- RETVAL_STRING(name, 1);
+ RETVAL_STRING(name);
}
} else if (!strcasecmp("mail_body_encoding", typ)) {
if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_body_encoding)) != NULL) {
- RETVAL_STRING(name, 1);
+ RETVAL_STRING(name);
}
} else if (!strcasecmp("illegal_chars", typ)) {
RETVAL_LONG(MBSTRG(illegalchars));
} else if (!strcasecmp("encoding_translation", typ)) {
if (MBSTRG(encoding_translation)) {
- RETVAL_STRING("On", 1);
+ RETVAL_STRING("On");
} else {
- RETVAL_STRING("Off", 1);
+ RETVAL_STRING("Off");
}
} else if (!strcasecmp("language", typ)) {
if ((name = (char *)mbfl_no_language2name(MBSTRG(language))) != NULL) {
- RETVAL_STRING(name, 1);
+ RETVAL_STRING(name);
}
} else if (!strcasecmp("detect_order", typ)) {
n = MBSTRG(current_detect_order_list_size);
@@ -4485,25 +4490,25 @@ PHP_FUNCTION(mb_get_info)
size_t i;
array_init(return_value);
for (i = 0; i < n; i++) {
- add_next_index_string(return_value, (*entry)->name, 1);
+ add_next_index_string(return_value, (*entry)->name);
entry++;
}
}
} else if (!strcasecmp("substitute_character", typ)) {
if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
- RETVAL_STRING("none", 1);
+ RETVAL_STRING("none");
} else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
- RETVAL_STRING("long", 1);
+ RETVAL_STRING("long");
} else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_ENTITY) {
- RETVAL_STRING("entity", 1);
+ RETVAL_STRING("entity");
} else {
RETVAL_LONG(MBSTRG(current_filter_illegal_substchar));
}
} else if (!strcasecmp("strict_detection", typ)) {
if (MBSTRG(strict_detection)) {
- RETVAL_STRING("On", 1);
+ RETVAL_STRING("On");
} else {
- RETVAL_STRING("Off", 1);
+ RETVAL_STRING("Off");
}
} else {
RETURN_FALSE;
@@ -4525,7 +4530,7 @@ PHP_FUNCTION(mb_check_encoding)
long illegalchars = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ss", &var, &var_len, &enc, &enc_len) == FAILURE) {
- RETURN_FALSE;
+ return;
}
if (var == NULL) {
@@ -4568,7 +4573,6 @@ PHP_FUNCTION(mb_check_encoding)
}
/* }}} */
-
/* {{{ php_mb_populate_current_detect_order_list */
static void php_mb_populate_current_detect_order_list(TSRMLS_D)
{
@@ -4595,6 +4599,7 @@ static void php_mb_populate_current_detect_order_list(TSRMLS_D)
MBSTRG(current_detect_order_list) = entry;
MBSTRG(current_detect_order_list_size) = nentries;
}
+/* }}} */
/* {{{ static int php_mb_encoding_translation() */
static int php_mb_encoding_translation(TSRMLS_D)
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
index 4b1b924d06..c0e61aa660 100644
--- a/ext/mbstring/php_mbregex.c
+++ b/ext/mbstring/php_mbregex.c
@@ -43,7 +43,7 @@ struct _zend_mb_regex_globals {
OnigEncoding default_mbctype;
OnigEncoding current_mbctype;
HashTable ht_rc;
- zval *search_str;
+ zval search_str;
zval *search_str_val;
unsigned int search_pos;
php_mb_regex_t *search_re;
@@ -55,9 +55,8 @@ struct _zend_mb_regex_globals {
#define MBREX(g) (MBSTRG(mb_regex_globals)->g)
/* {{{ static void php_mb_regex_free_cache() */
-static void php_mb_regex_free_cache(php_mb_regex_t **pre)
-{
- onig_free(*pre);
+static void php_mb_regex_free_cache(zval *el) {
+ onig_free((php_mb_regex_t *)Z_PTR_P(el));
}
/* }}} */
@@ -66,8 +65,8 @@ static int _php_mb_regex_globals_ctor(zend_mb_regex_globals *pglobals TSRMLS_DC)
{
pglobals->default_mbctype = ONIG_ENCODING_EUC_JP;
pglobals->current_mbctype = ONIG_ENCODING_EUC_JP;
- zend_hash_init(&(pglobals->ht_rc), 0, NULL, (void (*)(void *)) php_mb_regex_free_cache, 1);
- pglobals->search_str = (zval*) NULL;
+ zend_hash_init(&(pglobals->ht_rc), 0, NULL, php_mb_regex_free_cache, 1);
+ ZVAL_UNDEF(&pglobals->search_str);
pglobals->search_re = (php_mb_regex_t*)NULL;
pglobals->search_pos = 0;
pglobals->search_regs = (OnigRegion*)NULL;
@@ -139,9 +138,9 @@ PHP_RSHUTDOWN_FUNCTION(mb_regex)
{
MBREX(current_mbctype) = MBREX(default_mbctype);
- if (MBREX(search_str) != NULL) {
+ if (!Z_ISUNDEF(MBREX(search_str))) {
zval_ptr_dtor(&MBREX(search_str));
- MBREX(search_str) = (zval *)NULL;
+ ZVAL_UNDEF(&MBREX(search_str));
}
MBREX(search_pos) = 0;
@@ -448,22 +447,21 @@ const char *php_mb_regex_get_default_mbctype(TSRMLS_D)
static php_mb_regex_t *php_mbregex_compile_pattern(const char *pattern, int patlen, OnigOptionType options, OnigEncoding enc, OnigSyntaxType *syntax TSRMLS_DC)
{
int err_code = 0;
- int found = 0;
- php_mb_regex_t *retval = NULL, **rc = NULL;
+ php_mb_regex_t *retval = NULL, *rc = NULL;
OnigErrorInfo err_info;
OnigUChar err_str[ONIG_MAX_ERROR_MESSAGE_LEN];
- found = zend_hash_find(&MBREX(ht_rc), (char *)pattern, patlen+1, (void **) &rc);
- if (found == FAILURE || (*rc)->options != options || (*rc)->enc != enc || (*rc)->syntax != syntax) {
+ rc = zend_hash_str_find_ptr(&MBREX(ht_rc), (char *)pattern, patlen);
+ if (!rc || rc->options != options || rc->enc != enc || rc->syntax != syntax) {
if ((err_code = onig_new(&retval, (OnigUChar *)pattern, (OnigUChar *)(pattern + patlen), options, enc, syntax, &err_info)) != ONIG_NORMAL) {
onig_error_code_to_str(err_str, err_code, err_info);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "mbregex compile err: %s", err_str);
retval = NULL;
goto out;
}
- zend_hash_update(&MBREX(ht_rc), (char *) pattern, patlen + 1, (void *) &retval, sizeof(retval), NULL);
- } else if (found == SUCCESS) {
- retval = *rc;
+ zend_hash_str_update_ptr(&MBREX(ht_rc), (char *)pattern, patlen, retval);
+ } else if (rc) {
+ retval = rc;
}
out:
return retval;
@@ -671,7 +669,7 @@ PHP_FUNCTION(mb_regex_encoding)
RETURN_FALSE;
}
- RETURN_STRING((char *)retval, 1);
+ RETURN_STRING((char *)retval);
} else if (argc == 1) {
mbctype = _php_mb_regex_name2mbctype(encoding);
@@ -689,7 +687,7 @@ PHP_FUNCTION(mb_regex_encoding)
/* {{{ _php_mb_regex_ereg_exec */
static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
{
- zval **arg_pattern, *array;
+ zval *arg_pattern, *array;
char *string;
int string_len;
php_mb_regex_t *re;
@@ -700,7 +698,7 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
array = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zs|z", &arg_pattern, &string, &string_len, &array) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zs|z", &arg_pattern, &string, &string_len, &array) == FAILURE) {
RETURN_FALSE;
}
@@ -710,22 +708,22 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
}
/* compile the regular expression from the supplied regex */
- if (Z_TYPE_PP(arg_pattern) != IS_STRING) {
+ if (Z_TYPE_P(arg_pattern) != IS_STRING) {
/* we convert numbers to integers and treat them as a string */
- if (Z_TYPE_PP(arg_pattern) == IS_DOUBLE) {
+ if (Z_TYPE_P(arg_pattern) == IS_DOUBLE) {
convert_to_long_ex(arg_pattern); /* get rid of decimal places */
}
convert_to_string_ex(arg_pattern);
/* don't bother doing an extended regex with just a number */
}
- if (!Z_STRVAL_PP(arg_pattern) || Z_STRLEN_PP(arg_pattern) == 0) {
+ if (!Z_STRVAL_P(arg_pattern) || Z_STRLEN_P(arg_pattern) == 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "empty pattern");
RETVAL_FALSE;
goto out;
}
- re = php_mbregex_compile_pattern(Z_STRVAL_PP(arg_pattern), Z_STRLEN_PP(arg_pattern), options, MBREX(current_mbctype), MBREX(regex_default_syntax) TSRMLS_CC);
+ re = php_mbregex_compile_pattern(Z_STRVAL_P(arg_pattern), Z_STRLEN_P(arg_pattern), options, MBREX(current_mbctype), MBREX(regex_default_syntax) TSRMLS_CC);
if (re == NULL) {
RETVAL_FALSE;
goto out;
@@ -742,14 +740,16 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
match_len = 1;
str = string;
if (array != NULL) {
- match_len = regs->end[0] - regs->beg[0];
+ ZVAL_DEREF(array);
zval_dtor(array);
array_init(array);
+
+ match_len = regs->end[0] - regs->beg[0];
for (i = 0; i < regs->num_regs; i++) {
beg = regs->beg[i];
end = regs->end[i];
if (beg >= 0 && beg < end && end <= string_len) {
- add_index_stringl(array, i, (char *)&str[beg], end - beg, 1);
+ add_index_stringl(array, i, (char *)&str[beg], end - beg);
} else {
add_index_bool(array, i, 0);
}
@@ -786,7 +786,7 @@ PHP_FUNCTION(mb_eregi)
/* {{{ _php_mb_regex_ereg_replace_exec */
static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOptionType options, int is_callable)
{
- zval **arg_pattern_zval;
+ zval *arg_pattern_zval;
char *arg_pattern;
int arg_pattern_len;
@@ -804,8 +804,8 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
php_mb_regex_t *re;
OnigSyntaxType *syntax;
OnigRegion *regs = NULL;
- smart_str out_buf = { 0 };
- smart_str eval_buf = { 0 };
+ smart_str out_buf = {0};
+ smart_str eval_buf = {0};
smart_str *pbuf;
int i, err, eval, n;
OnigUChar *pos;
@@ -830,7 +830,7 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
int option_str_len = 0;
if (!is_callable) {
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zss|s",
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zss|s",
&arg_pattern_zval,
&replace, &replace_len,
&string, &string_len,
@@ -838,7 +838,7 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
RETURN_FALSE;
}
} else {
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zfs|s",
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zfs|s",
&arg_pattern_zval,
&arg_replace_fci, &arg_replace_fci_cache,
&string, &string_len,
@@ -854,13 +854,13 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
syntax = MBREX(regex_default_syntax);
}
}
- if (Z_TYPE_PP(arg_pattern_zval) == IS_STRING) {
- arg_pattern = Z_STRVAL_PP(arg_pattern_zval);
- arg_pattern_len = Z_STRLEN_PP(arg_pattern_zval);
+ if (Z_TYPE_P(arg_pattern_zval) == IS_STRING) {
+ arg_pattern = Z_STRVAL_P(arg_pattern_zval);
+ arg_pattern_len = Z_STRLEN_P(arg_pattern_zval);
} else {
/* FIXME: this code is not multibyte aware! */
convert_to_long_ex(arg_pattern_zval);
- pat_buf[0] = (char)Z_LVAL_PP(arg_pattern_zval);
+ pat_buf[0] = (char)Z_LVAL_P(arg_pattern_zval);
pat_buf[1] = '\0';
arg_pattern = pat_buf;
@@ -940,9 +940,9 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
/* null terminate buffer */
smart_str_0(&eval_buf);
/* do eval */
- if (zend_eval_stringl(eval_buf.c, eval_buf.len, &v, description TSRMLS_CC) == FAILURE) {
+ if (zend_eval_stringl(eval_buf.s->val, eval_buf.s->len, &v, description TSRMLS_CC) == FAILURE) {
efree(description);
- php_error_docref(NULL TSRMLS_CC,E_ERROR, "Failed evaluating code: %s%s", PHP_EOL, eval_buf.c);
+ php_error_docref(NULL TSRMLS_CC,E_ERROR, "Failed evaluating code: %s%s", PHP_EOL, eval_buf.s->val);
/* zend_error() does not return in this case */
}
@@ -950,33 +950,33 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
convert_to_string(&v);
smart_str_appendl(&out_buf, Z_STRVAL(v), Z_STRLEN(v));
/* Clean up */
- eval_buf.len = 0;
+ eval_buf.s->len = 0;
zval_dtor(&v);
} else if (is_callable) {
- zval *retval_ptr;
- zval **args[1];
- zval *subpats;
+ zval args[1];
+ zval subpats, retval;
int i;
- MAKE_STD_ZVAL(subpats);
- array_init(subpats);
-
+ array_init(&subpats);
for (i = 0; i < regs->num_regs; i++) {
- add_next_index_stringl(subpats, string + regs->beg[i], regs->end[i] - regs->beg[i], 1);
+ add_next_index_stringl(&subpats, string + regs->beg[i], regs->end[i] - regs->beg[i]);
}
- args[0] = &subpats;
+ ZVAL_COPY_VALUE(&args[0], &subpats);
/* null terminate buffer */
smart_str_0(&eval_buf);
arg_replace_fci.param_count = 1;
arg_replace_fci.params = args;
- arg_replace_fci.retval_ptr_ptr = &retval_ptr;
- if (zend_call_function(&arg_replace_fci, &arg_replace_fci_cache TSRMLS_CC) == SUCCESS && arg_replace_fci.retval_ptr_ptr) {
- convert_to_string_ex(&retval_ptr);
- smart_str_appendl(&out_buf, Z_STRVAL_P(retval_ptr), Z_STRLEN_P(retval_ptr));
- eval_buf.len = 0;
- zval_ptr_dtor(&retval_ptr);
+ arg_replace_fci.retval = &retval;
+ if (zend_call_function(&arg_replace_fci, &arg_replace_fci_cache TSRMLS_CC) == SUCCESS &&
+ !Z_ISUNDEF(retval)) {
+ convert_to_string_ex(&retval);
+ smart_str_appendl(&out_buf, Z_STRVAL(retval), Z_STRLEN(retval));
+ if (eval_buf.s) {
+ eval_buf.s->len = 0;
+ }
+ zval_ptr_dtor(&retval);
} else {
efree(description);
if (!EG(exception)) {
@@ -1015,9 +1015,11 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
if (err <= -2) {
smart_str_free(&out_buf);
RETVAL_FALSE;
+ } else if (out_buf.s) {
+ smart_str_0(&out_buf);
+ RETVAL_STR(out_buf.s);
} else {
- smart_str_appendc(&out_buf, '\0');
- RETVAL_STRINGL((char *)out_buf.c, out_buf.len - 1, 0);
+ RETVAL_EMPTY_STRING();
}
}
/* }}} */
@@ -1090,7 +1092,7 @@ PHP_FUNCTION(mb_split)
/* add it to the array */
if ((pos - (OnigUChar *)string) < end) {
if (beg < string_len && beg >= (chunk_pos - (OnigUChar *)string)) {
- add_next_index_stringl(return_value, (char *)chunk_pos, ((OnigUChar *)(string + beg) - chunk_pos), 1);
+ add_next_index_stringl(return_value, (char *)chunk_pos, ((OnigUChar *)(string + beg) - chunk_pos));
--count;
} else {
err = -2;
@@ -1118,9 +1120,9 @@ PHP_FUNCTION(mb_split)
/* otherwise we just have one last element to add to the array */
n = ((OnigUChar *)(string + string_len) - chunk_pos);
if (n > 0) {
- add_next_index_stringl(return_value, (char *)chunk_pos, n, 1);
+ add_next_index_stringl(return_value, (char *)chunk_pos, n);
} else {
- add_next_index_stringl(return_value, "", 0, 1);
+ add_next_index_stringl(return_value, "", 0);
}
}
/* }}} */
@@ -1206,9 +1208,9 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
pos = MBREX(search_pos);
str = NULL;
len = 0;
- if (MBREX(search_str) != NULL && Z_TYPE_P(MBREX(search_str)) == IS_STRING){
- str = (OnigUChar *)Z_STRVAL_P(MBREX(search_str));
- len = Z_STRLEN_P(MBREX(search_str));
+ if (!Z_ISUNDEF(MBREX(search_str)) && Z_TYPE(MBREX(search_str)) == IS_STRING){
+ str = (OnigUChar *)Z_STRVAL(MBREX(search_str));
+ len = Z_STRLEN(MBREX(search_str));
}
if (MBREX(search_re) == NULL) {
@@ -1254,7 +1256,7 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
beg = MBREX(search_regs)->beg[i];
end = MBREX(search_regs)->end[i];
if (beg >= 0 && beg <= end && end <= len) {
- add_index_stringl(return_value, i, (char *)&str[beg], end - beg, 1);
+ add_index_stringl(return_value, i, (char *)&str[beg], end - beg);
} else {
add_index_bool(return_value, i, 0);
}
@@ -1338,20 +1340,18 @@ PHP_FUNCTION(mb_ereg_search_init)
}
}
- if (MBREX(search_str) != NULL) {
+ if (!Z_ISNULL(MBREX(search_str))) {
zval_ptr_dtor(&MBREX(search_str));
- MBREX(search_str) = (zval *)NULL;
}
- MBREX(search_str) = arg_str;
- Z_ADDREF_P(MBREX(search_str));
+ ZVAL_COPY(&MBREX(search_str), arg_str);
SEPARATE_ZVAL_IF_NOT_REF(&MBREX(search_str));
MBREX(search_pos) = 0;
if (MBREX(search_regs) != NULL) {
onig_region_free(MBREX(search_regs), 1);
- MBREX(search_regs) = (OnigRegion *) NULL;
+ MBREX(search_regs) = NULL;
}
RETURN_TRUE;
@@ -1365,17 +1365,17 @@ PHP_FUNCTION(mb_ereg_search_getregs)
int n, i, len, beg, end;
OnigUChar *str;
- if (MBREX(search_regs) != NULL && Z_TYPE_P(MBREX(search_str)) == IS_STRING && Z_STRVAL_P(MBREX(search_str)) != NULL) {
+ if (MBREX(search_regs) != NULL && Z_TYPE(MBREX(search_str)) == IS_STRING) {
array_init(return_value);
- str = (OnigUChar *)Z_STRVAL_P(MBREX(search_str));
- len = Z_STRLEN_P(MBREX(search_str));
+ str = (OnigUChar *)Z_STRVAL(MBREX(search_str));
+ len = Z_STRLEN(MBREX(search_str));
n = MBREX(search_regs)->num_regs;
for (i = 0; i < n; i++) {
beg = MBREX(search_regs)->beg[i];
end = MBREX(search_regs)->end[i];
if (beg >= 0 && beg <= end && end <= len) {
- add_index_stringl(return_value, i, (char *)&str[beg], end - beg, 1);
+ add_index_stringl(return_value, i, (char *)&str[beg], end - beg);
} else {
add_index_bool(return_value, i, 0);
}
@@ -1404,7 +1404,7 @@ PHP_FUNCTION(mb_ereg_search_setpos)
return;
}
- if (position < 0 || (MBREX(search_str) != NULL && Z_TYPE_P(MBREX(search_str)) == IS_STRING && position >= Z_STRLEN_P(MBREX(search_str)))) {
+ if (position < 0 || (!Z_ISUNDEF(MBREX(search_str)) && Z_TYPE(MBREX(search_str)) == IS_STRING && position >= Z_STRLEN(MBREX(search_str)))) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Position is out of range");
MBREX(search_pos) = 0;
RETURN_FALSE;
@@ -1454,7 +1454,7 @@ PHP_FUNCTION(mb_regex_set_options)
}
_php_mb_regex_get_option_string(buf, sizeof(buf), opt, syntax);
- RETVAL_STRING(buf, 1);
+ RETVAL_STRING(buf);
}
/* }}} */
diff --git a/ext/mbstring/tests/bug26639.phpt b/ext/mbstring/tests/bug26639.phpt
index a87e912ba6..3f5b8e5acd 100644
--- a/ext/mbstring/tests/bug26639.phpt
+++ b/ext/mbstring/tests/bug26639.phpt
@@ -70,54 +70,54 @@ unset($a);
unset($b);
unset($c);
?>
---EXPECT--
-string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(2)
-string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(2)
-string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(1)
-string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(1)
-array(1) refcount(2){
+--EXPECTF--
+string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(%d)
+string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
+string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
+string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
+array(1) refcount(%d){
[0]=>
- string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(2)
+ string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(%d)
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(1)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- &string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(2)
+ &string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(%d)
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(1)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(2)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(2)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(2)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(2)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
-array(1) refcount(3){
+array(1) refcount(%d){
[0]=>
- array(1) refcount(1){
+ array(1) refcount(%d){
[0]=>
- string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(1)
+ string(10) "‚ ‚¢‚¤‚¦‚¨" refcount(%d)
}
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- array(1) refcount(1){
+ array(1) refcount(%d){
[0]=>
- string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(1)
+ string(10) "¤¢¤¤¤¦¤¨¤ª" refcount(%d)
}
}
diff --git a/ext/mbstring/tests/mb_http_output.phpt b/ext/mbstring/tests/mb_http_output.phpt
index 6f149bfc9f..a6cac3fb35 100644
--- a/ext/mbstring/tests/mb_http_output.phpt
+++ b/ext/mbstring/tests/mb_http_output.phpt
@@ -49,12 +49,12 @@ $enc = mb_http_output();
print "$enc\n";
$r = mb_http_output($t_ary);
-($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
+($r === NULL) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
$enc = mb_http_output();
print "$enc\n";
$r = mb_http_output($t_obj);
-($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
+($r === NULL) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
$enc = mb_http_output();
print "$enc\n";
diff --git a/ext/mbstring/tests/mb_internal_encoding.phpt b/ext/mbstring/tests/mb_internal_encoding.phpt
index e1b99c3ba2..acb3c6fbb6 100644
--- a/ext/mbstring/tests/mb_internal_encoding.phpt
+++ b/ext/mbstring/tests/mb_internal_encoding.phpt
@@ -32,17 +32,17 @@ print "== INVALID PARAMETER ==\n";
// Note: Other than string type, PHP raises Warning
$r = mb_internal_encoding('BAD');
-($r === FALSE) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n";
+($r === false) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n";
$enc = mb_internal_encoding();
print "$enc\n";
$r = mb_internal_encoding($t_ary);
-($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
+($r === NULL) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
$enc = mb_internal_encoding();
print "$enc\n";
$r = mb_internal_encoding($t_obj);
-($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
+($r === NULL) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
$enc = mb_internal_encoding();
print "$enc\n";
diff --git a/ext/mbstring/tests/mb_internal_encoding_error1.phpt b/ext/mbstring/tests/mb_internal_encoding_error1.phpt
index 61f133a44a..ce824e6a2f 100644
--- a/ext/mbstring/tests/mb_internal_encoding_error1.phpt
+++ b/ext/mbstring/tests/mb_internal_encoding_error1.phpt
@@ -32,5 +32,5 @@ echo "Done";
-- Testing mb_internal_encoding() function with more than expected no. of arguments --
Warning: mb_internal_encoding() expects at most 1 parameter, 2 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_internal_encoding_variation1.phpt b/ext/mbstring/tests/mb_internal_encoding_variation1.phpt
index 94bb0cfd43..581df06414 100644
--- a/ext/mbstring/tests/mb_internal_encoding_variation1.phpt
+++ b/ext/mbstring/tests/mb_internal_encoding_variation1.phpt
@@ -213,5 +213,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_internal_encoding() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_stripos.phpt b/ext/mbstring/tests/mb_stripos.phpt
index c21cdf3a59..4ea8cfa6d6 100644
--- a/ext/mbstring/tests/mb_stripos.phpt
+++ b/ext/mbstring/tests/mb_stripos.phpt
@@ -106,13 +106,13 @@ $r = mb_stripos($euc_jp,b"\n");
echo "== INVALID PARAMETER TEST ==\n";
$r = mb_stripos($euc_jp,'','EUC-JP');
-($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n");
+($r === NULL) ? print("OK_NULL\n") : print("NG_NULL\n");
$r = mb_stripos($euc_jp, $t_ary, 'EUC-JP');
-($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
+($r === NULL) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
$r = mb_stripos($euc_jp, $t_obj, 'EUC-JP');
-($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
+($r === NULL) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
$r = mb_stripos($euc_jp, $t_obj, 'BAD_ENCODING');
-($r === FALSE) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
+($r === NULL) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
?>
diff --git a/ext/mbstring/tests/mb_stripos_error1.phpt b/ext/mbstring/tests/mb_stripos_error1.phpt
index c4ea5d7714..832a8661bd 100644
--- a/ext/mbstring/tests/mb_stripos_error1.phpt
+++ b/ext/mbstring/tests/mb_stripos_error1.phpt
@@ -42,10 +42,10 @@ echo "Done";
-- Testing mb_stripos() function with more than expected no. of arguments --
Warning: mb_stripos() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_stripos() function with less than expected no. of arguments --
Warning: mb_stripos() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_stripos_variation1.phpt b/ext/mbstring/tests/mb_stripos_variation1.phpt
index ab7f75ee5a..2fe5c022f2 100644
--- a/ext/mbstring/tests/mb_stripos_variation1.phpt
+++ b/ext/mbstring/tests/mb_stripos_variation1.phpt
@@ -179,5 +179,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_stripos() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_stripos_variation2.phpt b/ext/mbstring/tests/mb_stripos_variation2.phpt
index 1b5263aa8a..95c2d08957 100644
--- a/ext/mbstring/tests/mb_stripos_variation2.phpt
+++ b/ext/mbstring/tests/mb_stripos_variation2.phpt
@@ -195,6 +195,6 @@ bool(false)
-- Iteration 24 --
Warning: mb_stripos() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_stripos_variation3.phpt b/ext/mbstring/tests/mb_stripos_variation3.phpt
index 41a365abfd..decf02e883 100644
--- a/ext/mbstring/tests/mb_stripos_variation3.phpt
+++ b/ext/mbstring/tests/mb_stripos_variation3.phpt
@@ -163,32 +163,32 @@ int(8)
-- Iteration 16 --
Warning: mb_stripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 17 --
Warning: mb_stripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 18 --
Warning: mb_stripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 19 --
Warning: mb_stripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 20 --
Warning: mb_stripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 21 --
Warning: mb_stripos() expects parameter 3 to be long, object given in %s on line %d
-bool(false)
+NULL
-- Iteration 22 --
int(8)
@@ -199,5 +199,5 @@ int(8)
-- Iteration 24 --
Warning: mb_stripos() expects parameter 3 to be long, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_stripos_variation4.phpt b/ext/mbstring/tests/mb_stripos_variation4.phpt
index f330bbdae8..a8d36f9e45 100644
--- a/ext/mbstring/tests/mb_stripos_variation4.phpt
+++ b/ext/mbstring/tests/mb_stripos_variation4.phpt
@@ -219,5 +219,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_stripos() expects parameter 4 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_stristr_error1.phpt b/ext/mbstring/tests/mb_stristr_error1.phpt
index 3c766c4fad..8c81b0766d 100644
--- a/ext/mbstring/tests/mb_stristr_error1.phpt
+++ b/ext/mbstring/tests/mb_stristr_error1.phpt
@@ -38,10 +38,10 @@ var_dump( mb_stristr($haystack) );
-- Testing mb_stristr() function with more than expected no. of arguments --
Warning: mb_stristr() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_stristr() function with less than expected no. of arguments --
Warning: mb_stristr() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_stristr_variation1.phpt b/ext/mbstring/tests/mb_stristr_variation1.phpt
index fc69bd065e..9483c379e0 100644
--- a/ext/mbstring/tests/mb_stristr_variation1.phpt
+++ b/ext/mbstring/tests/mb_stristr_variation1.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_stristr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_stristr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_stristr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_stristr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
bool(false)
@@ -193,7 +193,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_stristr() expects parameter 1 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
bool(false)
@@ -203,6 +203,6 @@ bool(false)
--resource--
Error: 2 - mb_stristr() expects parameter 1 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_stristr_variation2.phpt b/ext/mbstring/tests/mb_stristr_variation2.phpt
index bfa1835eed..0aeea8e68c 100644
--- a/ext/mbstring/tests/mb_stristr_variation2.phpt
+++ b/ext/mbstring/tests/mb_stristr_variation2.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_stristr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_stristr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_stristr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_stristr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
Error: 2 - mb_stristr(): Empty delimiter, %s(%d)
@@ -199,7 +199,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_stristr() expects parameter 2 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
Error: 2 - mb_stristr(): Empty delimiter, %s(%d)
@@ -211,6 +211,6 @@ bool(false)
--resource--
Error: 2 - mb_stristr() expects parameter 2 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_stristr_variation3.phpt b/ext/mbstring/tests/mb_stristr_variation3.phpt
index 30a7e4989b..d06ad15070 100644
--- a/ext/mbstring/tests/mb_stristr_variation3.phpt
+++ b/ext/mbstring/tests/mb_stristr_variation3.phpt
@@ -118,7 +118,7 @@ $inputs = array(
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
$res = mb_stristr($haystack, $needle, $value, $encoding);
- if ($res === false) {
+ if ($res === NULL) {
var_dump($res);
}
else {
@@ -162,19 +162,19 @@ string(12) "737472696e67"
--empty array--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
string(8) "5f76616c"
@@ -214,11 +214,11 @@ string(12) "737472696e67"
--instance of classWithToString--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--instance of classWithoutToString--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
string(8) "5f76616c"
@@ -228,5 +228,5 @@ string(8) "5f76616c"
--resource--
Error: 2 - mb_stristr() expects parameter 3 to be boolean, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_stristr_variation4.phpt b/ext/mbstring/tests/mb_stristr_variation4.phpt
index d547543aed..c735e0c7a7 100644
--- a/ext/mbstring/tests/mb_stristr_variation4.phpt
+++ b/ext/mbstring/tests/mb_stristr_variation4.phpt
@@ -159,19 +159,19 @@ bool(false)
--empty array--
Error: 2 - mb_stristr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_stristr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_stristr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_stristr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
Error: 2 - mb_stristr(): Unknown encoding "", %s(%d)
@@ -211,7 +211,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_stristr() expects parameter 4 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
Error: 2 - mb_stristr(): Unknown encoding "", %s(%d)
@@ -223,5 +223,5 @@ bool(false)
--resource--
Error: 2 - mb_stristr() expects parameter 4 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strlen_error1.phpt b/ext/mbstring/tests/mb_strlen_error1.phpt
index 8fcd87ec3a..aff78d60f3 100644
--- a/ext/mbstring/tests/mb_strlen_error1.phpt
+++ b/ext/mbstring/tests/mb_strlen_error1.phpt
@@ -37,10 +37,10 @@ echo "Done";
-- Testing mb_strlen() function with Zero arguments --
Warning: mb_strlen() expects at least 1 parameter, 0 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strlen() function with more than expected no. of arguments --
Warning: mb_strlen() expects at most 2 parameters, 3 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strlen_variation1.phpt b/ext/mbstring/tests/mb_strlen_variation1.phpt
index 3c9cfe3c84..9388c0547d 100644
--- a/ext/mbstring/tests/mb_strlen_variation1.phpt
+++ b/ext/mbstring/tests/mb_strlen_variation1.phpt
@@ -176,5 +176,5 @@ int(0)
-- Iteration 24 --
Warning: mb_strlen() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strlen_variation2.phpt b/ext/mbstring/tests/mb_strlen_variation2.phpt
index 8504bbc5a0..276731ce92 100644
--- a/ext/mbstring/tests/mb_strlen_variation2.phpt
+++ b/ext/mbstring/tests/mb_strlen_variation2.phpt
@@ -216,5 +216,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strlen() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos.phpt b/ext/mbstring/tests/mb_strpos.phpt
index 1d613e9c78..e1222ca6dd 100644
--- a/ext/mbstring/tests/mb_strpos.phpt
+++ b/ext/mbstring/tests/mb_strpos.phpt
@@ -103,13 +103,13 @@ $r = mb_strpos($euc_jp, b"\n");
echo "== INVALID PARAMETER TEST ==\n";
$r = mb_strpos($euc_jp,'','EUC-JP');
-($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n");
+($r === NULL) ? print("OK_NULL\n") : print("NG_NULL\n");
$r = mb_strpos($euc_jp, $t_ary, 'EUC-JP');
-($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
+($r === NULL) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
$r = mb_strpos($euc_jp, $t_obj, 'EUC-JP');
-($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
+($r === NULL) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
$r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING');
-($r === FALSE) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
+($r === NULL) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
?>
diff --git a/ext/mbstring/tests/mb_strpos_error1.phpt b/ext/mbstring/tests/mb_strpos_error1.phpt
index 8f5ba85423..ef0cbafeff 100644
--- a/ext/mbstring/tests/mb_strpos_error1.phpt
+++ b/ext/mbstring/tests/mb_strpos_error1.phpt
@@ -41,10 +41,10 @@ echo "Done";
-- Testing mb_strpos() function with more than expected no. of arguments --
Warning: mb_strpos() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strpos() function with less than expected no. of arguments --
Warning: mb_strpos() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation1.phpt b/ext/mbstring/tests/mb_strpos_variation1.phpt
index d665f8f7ef..0684724b5c 100644
--- a/ext/mbstring/tests/mb_strpos_variation1.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation1.phpt
@@ -178,5 +178,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation2.phpt b/ext/mbstring/tests/mb_strpos_variation2.phpt
index d6feb49231..486b2bb3e5 100644
--- a/ext/mbstring/tests/mb_strpos_variation2.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation2.phpt
@@ -194,5 +194,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation3.phpt b/ext/mbstring/tests/mb_strpos_variation3.phpt
index 65572b5f04..ff69b8c6f8 100644
--- a/ext/mbstring/tests/mb_strpos_variation3.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation3.phpt
@@ -162,32 +162,32 @@ int(8)
-- Iteration 16 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 17 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 18 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 19 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 20 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 21 --
Warning: mb_strpos() expects parameter 3 to be long, object given in %s on line %d
-bool(false)
+NULL
-- Iteration 22 --
int(8)
@@ -198,5 +198,5 @@ int(8)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 3 to be long, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation4.phpt b/ext/mbstring/tests/mb_strpos_variation4.phpt
index 0fca8bb1f2..4051646ae4 100644
--- a/ext/mbstring/tests/mb_strpos_variation4.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation4.phpt
@@ -218,5 +218,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 4 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strrchr_error1.phpt b/ext/mbstring/tests/mb_strrchr_error1.phpt
index 5ebb3d06f6..bb6ff0fab0 100644
--- a/ext/mbstring/tests/mb_strrchr_error1.phpt
+++ b/ext/mbstring/tests/mb_strrchr_error1.phpt
@@ -38,10 +38,10 @@ var_dump( mb_strrchr($haystack) );
-- Testing mb_strrchr() function with more than expected no. of arguments --
Warning: mb_strrchr() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strrchr() function with less than expected no. of arguments --
Warning: mb_strrchr() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrchr_variation1.phpt b/ext/mbstring/tests/mb_strrchr_variation1.phpt
index 18eb52ea28..a0952a87ea 100644
--- a/ext/mbstring/tests/mb_strrchr_variation1.phpt
+++ b/ext/mbstring/tests/mb_strrchr_variation1.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_strrchr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrchr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrchr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrchr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
bool(false)
@@ -193,7 +193,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strrchr() expects parameter 1 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
bool(false)
@@ -203,5 +203,5 @@ bool(false)
--resource--
Error: 2 - mb_strrchr() expects parameter 1 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrchr_variation2.phpt b/ext/mbstring/tests/mb_strrchr_variation2.phpt
index f9b7107830..c368bd8c9d 100644
--- a/ext/mbstring/tests/mb_strrchr_variation2.phpt
+++ b/ext/mbstring/tests/mb_strrchr_variation2.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_strrchr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrchr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrchr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrchr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
bool(false)
@@ -193,7 +193,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strrchr() expects parameter 2 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
bool(false)
@@ -203,5 +203,5 @@ bool(false)
--resource--
Error: 2 - mb_strrchr() expects parameter 2 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrchr_variation3.phpt b/ext/mbstring/tests/mb_strrchr_variation3.phpt
index 4a16f55b48..ad9c4e356d 100644
--- a/ext/mbstring/tests/mb_strrchr_variation3.phpt
+++ b/ext/mbstring/tests/mb_strrchr_variation3.phpt
@@ -118,7 +118,7 @@ $inputs = array(
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
$res = mb_strrchr($haystack, $needle, $value, $encoding);
- if ($res === false) {
+ if ($res === NULL) {
var_dump($res);
}
else {
@@ -162,19 +162,19 @@ string(12) "737472696e67"
--empty array--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
string(8) "5f76616c"
@@ -214,11 +214,11 @@ string(12) "737472696e67"
--instance of classWithToString--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--instance of classWithoutToString--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
string(8) "5f76616c"
@@ -228,5 +228,5 @@ string(8) "5f76616c"
--resource--
Error: 2 - mb_strrchr() expects parameter 3 to be boolean, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrchr_variation4.phpt b/ext/mbstring/tests/mb_strrchr_variation4.phpt
index b9e014706c..f9dadab5f0 100644
--- a/ext/mbstring/tests/mb_strrchr_variation4.phpt
+++ b/ext/mbstring/tests/mb_strrchr_variation4.phpt
@@ -159,19 +159,19 @@ bool(false)
--empty array--
Error: 2 - mb_strrchr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrchr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrchr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrchr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
Error: 2 - mb_strrchr(): Unknown encoding "", %s(%d)
@@ -211,7 +211,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strrchr() expects parameter 4 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
Error: 2 - mb_strrchr(): Unknown encoding "", %s(%d)
@@ -223,5 +223,5 @@ bool(false)
--resource--
Error: 2 - mb_strrchr() expects parameter 4 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrichr_error1.phpt b/ext/mbstring/tests/mb_strrichr_error1.phpt
index 2c2ed61149..01d33f342f 100644
--- a/ext/mbstring/tests/mb_strrichr_error1.phpt
+++ b/ext/mbstring/tests/mb_strrichr_error1.phpt
@@ -38,10 +38,10 @@ var_dump( mb_strrichr($haystack) );
-- Testing mb_strrichr() function with more than expected no. of arguments --
Warning: mb_strrichr() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strrichr() function with less than expected no. of arguments --
Warning: mb_strrichr() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrichr_variation1.phpt b/ext/mbstring/tests/mb_strrichr_variation1.phpt
index d826ccf407..e350718e77 100644
--- a/ext/mbstring/tests/mb_strrichr_variation1.phpt
+++ b/ext/mbstring/tests/mb_strrichr_variation1.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_strrichr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrichr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrichr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrichr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
bool(false)
@@ -193,7 +193,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strrichr() expects parameter 1 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
bool(false)
@@ -203,5 +203,5 @@ bool(false)
--resource--
Error: 2 - mb_strrichr() expects parameter 1 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrichr_variation2.phpt b/ext/mbstring/tests/mb_strrichr_variation2.phpt
index 1a4a73fe44..3300ea5a61 100644
--- a/ext/mbstring/tests/mb_strrichr_variation2.phpt
+++ b/ext/mbstring/tests/mb_strrichr_variation2.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_strrichr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrichr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrichr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrichr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
bool(false)
@@ -193,7 +193,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strrichr() expects parameter 2 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
bool(false)
@@ -203,5 +203,5 @@ bool(false)
--resource--
Error: 2 - mb_strrichr() expects parameter 2 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrichr_variation3.phpt b/ext/mbstring/tests/mb_strrichr_variation3.phpt
index 68e8083bdc..b57f309022 100644
--- a/ext/mbstring/tests/mb_strrichr_variation3.phpt
+++ b/ext/mbstring/tests/mb_strrichr_variation3.phpt
@@ -118,7 +118,7 @@ $inputs = array(
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
$res = mb_strrichr($haystack, $needle, $value, $encoding);
- if ($res === false) {
+ if ($res === NULL) {
var_dump($res);
}
else {
@@ -162,19 +162,19 @@ string(12) "737472696e67"
--empty array--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
string(8) "5f76616c"
@@ -214,11 +214,11 @@ string(12) "737472696e67"
--instance of classWithToString--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--instance of classWithoutToString--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
string(8) "5f76616c"
@@ -228,5 +228,5 @@ string(8) "5f76616c"
--resource--
Error: 2 - mb_strrichr() expects parameter 3 to be boolean, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrichr_variation4.phpt b/ext/mbstring/tests/mb_strrichr_variation4.phpt
index d2e5754c1d..2d04665884 100644
--- a/ext/mbstring/tests/mb_strrichr_variation4.phpt
+++ b/ext/mbstring/tests/mb_strrichr_variation4.phpt
@@ -159,19 +159,19 @@ bool(false)
--empty array--
Error: 2 - mb_strrichr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strrichr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strrichr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strrichr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
Error: 2 - mb_strrichr(): Unknown encoding "", %s(%d)
@@ -211,7 +211,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strrichr() expects parameter 4 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
Error: 2 - mb_strrichr(): Unknown encoding "", %s(%d)
@@ -223,5 +223,5 @@ bool(false)
--resource--
Error: 2 - mb_strrichr() expects parameter 4 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strripos_error1.phpt b/ext/mbstring/tests/mb_strripos_error1.phpt
index 9d114d55a4..955482b66f 100644
--- a/ext/mbstring/tests/mb_strripos_error1.phpt
+++ b/ext/mbstring/tests/mb_strripos_error1.phpt
@@ -42,10 +42,10 @@ echo "Done";
-- Testing mb_strripos() function with more than expected no. of arguments --
Warning: mb_strripos() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strripos() function with less than expected no. of arguments --
Warning: mb_strripos() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strripos_variation1.phpt b/ext/mbstring/tests/mb_strripos_variation1.phpt
index 704b501778..858705afc2 100644
--- a/ext/mbstring/tests/mb_strripos_variation1.phpt
+++ b/ext/mbstring/tests/mb_strripos_variation1.phpt
@@ -179,5 +179,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strripos() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strripos_variation2.phpt b/ext/mbstring/tests/mb_strripos_variation2.phpt
index 61196f007e..d16c250078 100644
--- a/ext/mbstring/tests/mb_strripos_variation2.phpt
+++ b/ext/mbstring/tests/mb_strripos_variation2.phpt
@@ -179,5 +179,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strripos() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt b/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt
index c8fb933363..8f4370f4b8 100644
--- a/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt
+++ b/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt
@@ -165,32 +165,32 @@ int(8)
-- Iteration 16 --
Warning: mb_strripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 17 --
Warning: mb_strripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 18 --
Warning: mb_strripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 19 --
Warning: mb_strripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 20 --
Warning: mb_strripos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 21 --
Warning: mb_strripos() expects parameter 3 to be long, object given in %s on line %d
-bool(false)
+NULL
-- Iteration 22 --
int(8)
@@ -201,6 +201,6 @@ int(8)
-- Iteration 24 --
Warning: mb_strripos() expects parameter 3 to be long, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strripos_variation4.phpt b/ext/mbstring/tests/mb_strripos_variation4.phpt
index d617872efb..c58568b697 100644
--- a/ext/mbstring/tests/mb_strripos_variation4.phpt
+++ b/ext/mbstring/tests/mb_strripos_variation4.phpt
@@ -219,5 +219,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strripos() expects parameter 4 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strrpos_error1.phpt b/ext/mbstring/tests/mb_strrpos_error1.phpt
index 15228fec81..892599acc2 100644
--- a/ext/mbstring/tests/mb_strrpos_error1.phpt
+++ b/ext/mbstring/tests/mb_strrpos_error1.phpt
@@ -41,10 +41,10 @@ echo "Done";
-- Testing mb_strrpos() function with more than expected no. of arguments --
Warning: mb_strrpos() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strrpos() function with less than expected no. of arguments --
Warning: mb_strrpos() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strrpos_variation1.phpt b/ext/mbstring/tests/mb_strrpos_variation1.phpt
index 2d2db9003c..8b1713f9f1 100644
--- a/ext/mbstring/tests/mb_strrpos_variation1.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation1.phpt
@@ -177,5 +177,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strrpos() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strrpos_variation2.phpt b/ext/mbstring/tests/mb_strrpos_variation2.phpt
index 1566b5cb5f..c2855e0f81 100644
--- a/ext/mbstring/tests/mb_strrpos_variation2.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation2.phpt
@@ -179,5 +179,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strrpos() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strrpos_variation4.phpt b/ext/mbstring/tests/mb_strrpos_variation4.phpt
index 198ce8fc70..9d9a5f2358 100644
--- a/ext/mbstring/tests/mb_strrpos_variation4.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation4.phpt
@@ -218,5 +218,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strrpos() expects parameter 4 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strstr_error1.phpt b/ext/mbstring/tests/mb_strstr_error1.phpt
index f38d5c9ccd..ffbb636160 100644
--- a/ext/mbstring/tests/mb_strstr_error1.phpt
+++ b/ext/mbstring/tests/mb_strstr_error1.phpt
@@ -38,10 +38,10 @@ var_dump( mb_strstr($haystack) );
-- Testing mb_strstr() function with more than expected no. of arguments --
Warning: mb_strstr() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strstr() function with less than expected no. of arguments --
Warning: mb_strstr() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strstr_variation1.phpt b/ext/mbstring/tests/mb_strstr_variation1.phpt
index 48e7c537ee..826014feae 100644
--- a/ext/mbstring/tests/mb_strstr_variation1.phpt
+++ b/ext/mbstring/tests/mb_strstr_variation1.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_strstr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strstr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strstr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strstr() expects parameter 1 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
bool(false)
@@ -193,7 +193,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strstr() expects parameter 1 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
bool(false)
@@ -203,5 +203,5 @@ bool(false)
--resource--
Error: 2 - mb_strstr() expects parameter 1 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strstr_variation2.phpt b/ext/mbstring/tests/mb_strstr_variation2.phpt
index f70bb67ada..18820bab0f 100644
--- a/ext/mbstring/tests/mb_strstr_variation2.phpt
+++ b/ext/mbstring/tests/mb_strstr_variation2.phpt
@@ -150,19 +150,19 @@ bool(false)
--empty array--
Error: 2 - mb_strstr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strstr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strstr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strstr() expects parameter 2 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
Error: 2 - mb_strstr(): Empty delimiter, %s(%d)
@@ -199,7 +199,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strstr() expects parameter 2 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
Error: 2 - mb_strstr(): Empty delimiter, %s(%d)
@@ -211,5 +211,5 @@ bool(false)
--resource--
Error: 2 - mb_strstr() expects parameter 2 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strstr_variation3.phpt b/ext/mbstring/tests/mb_strstr_variation3.phpt
index 55c8f31d96..7a8b7c6757 100644
--- a/ext/mbstring/tests/mb_strstr_variation3.phpt
+++ b/ext/mbstring/tests/mb_strstr_variation3.phpt
@@ -118,7 +118,7 @@ $inputs = array(
foreach($inputs as $key =>$value) {
echo "\n--$key--\n";
$res = mb_strstr($haystack, $needle, $value, $encoding);
- if ($res === false) {
+ if ($res === NULL) {
var_dump($res);
}
else {
@@ -162,19 +162,19 @@ string(12) "737472696e67"
--empty array--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
string(8) "5f76616c"
@@ -214,11 +214,11 @@ string(12) "737472696e67"
--instance of classWithToString--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--instance of classWithoutToString--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
string(8) "5f76616c"
@@ -228,5 +228,5 @@ string(8) "5f76616c"
--resource--
Error: 2 - mb_strstr() expects parameter 3 to be boolean, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strstr_variation4.phpt b/ext/mbstring/tests/mb_strstr_variation4.phpt
index 3a208d3122..e13428f633 100644
--- a/ext/mbstring/tests/mb_strstr_variation4.phpt
+++ b/ext/mbstring/tests/mb_strstr_variation4.phpt
@@ -159,19 +159,19 @@ bool(false)
--empty array--
Error: 2 - mb_strstr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--int indexed array--
Error: 2 - mb_strstr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--associative array--
Error: 2 - mb_strstr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--nested arrays--
Error: 2 - mb_strstr() expects parameter 4 to be string, array given, %s(%d)
-bool(false)
+NULL
--uppercase NULL--
Error: 2 - mb_strstr(): Unknown encoding "", %s(%d)
@@ -211,7 +211,7 @@ bool(false)
--instance of classWithoutToString--
Error: 2 - mb_strstr() expects parameter 4 to be string, object given, %s(%d)
-bool(false)
+NULL
--undefined var--
Error: 2 - mb_strstr(): Unknown encoding "", %s(%d)
@@ -223,5 +223,5 @@ bool(false)
--resource--
Error: 2 - mb_strstr() expects parameter 4 to be string, resource given, %s(%d)
-bool(false)
+NULL
===DONE===
diff --git a/ext/mbstring/tests/zend_multibyte-02.phpt b/ext/mbstring/tests/zend_multibyte-02.phpt
index ebc10b48be..8a1a572804 100644
--- a/ext/mbstring/tests/zend_multibyte-02.phpt
+++ b/ext/mbstring/tests/zend_multibyte-02.phpt
@@ -1,7 +1,5 @@
--TEST--
zend multibyte (2)
---XFAIL--
-https://bugs.php.net/bug.php?id=66582
--INI--
zend.multibyte=On
zend.script_encoding=UTF-8
diff --git a/ext/mbstring/tests/zend_multibyte-06.phpt b/ext/mbstring/tests/zend_multibyte-06.phpt
index e0b4ead545..1b8adb5186 100644
--- a/ext/mbstring/tests/zend_multibyte-06.phpt
+++ b/ext/mbstring/tests/zend_multibyte-06.phpt
@@ -1,7 +1,5 @@
--TEST--
zend multibyte (6)
---XFAIL--
-https://bugs.php.net/bug.php?id=66582
--INI--
zend.multibyte=On
zend.script_encoding=EUC-JP
diff --git a/ext/mbstring/tests/zend_multibyte-08.phpt b/ext/mbstring/tests/zend_multibyte-08.phpt
index 561ad64038..9e5b75eadd 100644
--- a/ext/mbstring/tests/zend_multibyte-08.phpt
+++ b/ext/mbstring/tests/zend_multibyte-08.phpt
@@ -1,8 +1,5 @@
--TEST--
zend multibyte (8)
---SKIPIF--
---XFAIL--
-https://bugs.php.net/bug.php?id=66582 - still leaks memory which causes fail in debug mode
--INI--
zend.multibyte=On
zend.script_encoding=ISO-8859-1
diff --git a/ext/mbstring/tests/zend_multibyte-10.phpt b/ext/mbstring/tests/zend_multibyte-10.phpt
index b4f85e6f35..138b4899fe 100644
--- a/ext/mbstring/tests/zend_multibyte-10.phpt
+++ b/ext/mbstring/tests/zend_multibyte-10.phpt
@@ -1,8 +1,5 @@
--TEST--
zend multibyte (10)
---SKIPIF--
---XFAIL--
-https://bugs.php.net/bug.php?id=66582 - still leaks memory which causes fail in debug mode
--INI--
zend.multibyte=1
--FILE--
diff --git a/ext/mbstring/tests/zend_multibyte-11.phpt b/ext/mbstring/tests/zend_multibyte-11.phpt
index eadbb2156d..6844d06370 100644
--- a/ext/mbstring/tests/zend_multibyte-11.phpt
+++ b/ext/mbstring/tests/zend_multibyte-11.phpt
@@ -1,8 +1,5 @@
--TEST--
zend multibyte (11)
---SKIPIF--
---XFAIL--
-https://bugs.php.net/bug.php?id=66582 - still leaks memory which causes fail in debug mode
--INI--
zend.multibyte=1
--FILE--
diff --git a/ext/mbstring/tests/zend_multibyte-12.phpt b/ext/mbstring/tests/zend_multibyte-12.phpt
index 90968e8820..bbfa25d97f 100644
--- a/ext/mbstring/tests/zend_multibyte-12.phpt
+++ b/ext/mbstring/tests/zend_multibyte-12.phpt
@@ -1,6 +1,5 @@
--TEST--
zend multibyte (12)
---SKIPIF--
--INI--
zend.multibyte=1
--FILE--