diff options
| author | krakjoe <joe.watkins@live.co.uk> | 2014-05-05 22:45:29 +0100 |
|---|---|---|
| committer | krakjoe <joe.watkins@live.co.uk> | 2014-05-05 22:45:29 +0100 |
| commit | d7c529ed327cca4fad2c42fe74fabc367f24dc5b (patch) | |
| tree | 919d9e6800c6244436ddce9d09d707922fd859a4 /ext/mbstring | |
| parent | 875c48ae679158cb2194c4e277810883e0b21768 (diff) | |
| parent | 211d32c81429730e2692c65577d021616a525726 (diff) | |
| download | php-git-d7c529ed327cca4fad2c42fe74fabc367f24dc5b.tar.gz | |
Merge branch 'phpng' of git.php.net:php-src into phpng
Diffstat (limited to 'ext/mbstring')
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-- |
