summaryrefslogtreecommitdiff
path: root/ext/mbstring/mbstring.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mbstring/mbstring.c')
-rw-r--r--ext/mbstring/mbstring.c139
1 files changed, 47 insertions, 92 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 5982865517..b706b7bc6a 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -793,12 +793,12 @@ PHP_RINIT_FUNCTION(mbstring)
if (zend_hash_find(EG(function_table), p->orig_func,
strlen(p->orig_func)+1, (void **)&orig) != SUCCESS) {
- php_error(E_ERROR, "%s() mbstring couldn't find function %s.", get_active_function_name(TSRMLS_C), p->orig_func);
+ php_error_docref("ref.mbstring" TSRMLS_CC, E_ERROR, "mbstring couldn't find function %s.", p->orig_func);
}
zend_hash_add(EG(function_table), p->save_func, strlen(p->save_func)+1, orig, sizeof(zend_function), NULL);
if (zend_hash_update(EG(function_table), p->orig_func, strlen(p->orig_func)+1,
func, sizeof(zend_function), NULL) == FAILURE){
- php_error(E_ERROR, "%s() mbstring couldn't replace function %s.", get_active_function_name(TSRMLS_C), p->orig_func);
+ php_error_docref("ref.mbstring" TSRMLS_CC, E_ERROR, "mbstring couldn't replace function %s.", p->orig_func);
}
}
p++;
@@ -918,8 +918,7 @@ PHP_FUNCTION(mb_language)
convert_to_string_ex(arg1);
no_language = mbfl_name2no_language(Z_STRVAL_PP(arg1));
if (no_language == mbfl_no_language_invalid) {
- php_error(E_WARNING, "%s() unknown language \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg1));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown language \"%s\"", Z_STRVAL_PP(arg1));
RETURN_FALSE;
} else {
MBSTRG(current_language) = no_language;
@@ -952,8 +951,7 @@ PHP_FUNCTION(mb_internal_encoding)
convert_to_string_ex(arg1);
no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg1));
if (no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg1));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg1));
RETURN_FALSE;
} else {
MBSTRG(current_internal_encoding) = no_encoding;
@@ -1081,8 +1079,7 @@ PHP_FUNCTION(mb_http_output)
convert_to_string_ex(arg1);
no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg1));
if (no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg1));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg1));
RETURN_FALSE;
} else {
MBSTRG(current_http_output_encoding) = no_encoding;
@@ -1184,8 +1181,7 @@ PHP_FUNCTION(mb_substitute_character)
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
MBSTRG(current_filter_illegal_substchar) = Z_LVAL_PP(arg1);
} else {
- php_error(E_WARNING, "%s() unknown character.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown character.");
RETVAL_FALSE;
}
}
@@ -1196,8 +1192,7 @@ PHP_FUNCTION(mb_substitute_character)
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
MBSTRG(current_filter_illegal_substchar) = Z_LVAL_PP(arg1);
} else {
- php_error(E_WARNING, "%() unknown character.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown character.");
RETVAL_FALSE;
}
break;
@@ -1221,14 +1216,12 @@ PHP_FUNCTION(mb_preferred_mime_name)
convert_to_string_ex(arg1);
no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg1));
if (no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg1));
+ php_error_docref1(NULL TSRMLS_CC, Z_STRVAL_PP(arg1), E_WARNING, "unknown encoding");
RETVAL_FALSE;
} else {
name = mbfl_no2preferred_mime_name(no_encoding);
if (name == NULL || *name == '\0') {
- php_error(E_WARNING, "%s() no name for \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg1));
+ php_error_docref1(NULL TSRMLS_CC, Z_STRVAL_PP(arg1), E_WARNING, "no name for that encoding");
RETVAL_FALSE;
} else {
RETVAL_STRING((char *)name, 1);
@@ -1333,8 +1326,7 @@ php_mbstr_encoding_handler(zval *arg, char *res, char *separator TSRMLS_DC)
mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode) TSRMLS_CC);
mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar) TSRMLS_CC);
} else {
- php_error(E_WARNING, "%s() unable to create converter",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to create converter");
}
}
@@ -1659,8 +1651,7 @@ PHP_FUNCTION(mb_parse_str)
mbfl_encoding_detector_delete(identd TSRMLS_CC);
}
if (from_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unable to detect encoding",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to detect encoding");
from_encoding = mbfl_no_encoding_pass;
}
}
@@ -1671,8 +1662,7 @@ PHP_FUNCTION(mb_parse_str)
mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode) TSRMLS_CC);
mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar) TSRMLS_CC);
} else {
- php_error(E_WARNING, "%s() unable to create converter",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to create converter");
}
}
@@ -1845,14 +1835,12 @@ PHP_FUNCTION(mb_strlen)
}
if (Z_TYPE_PP(arg1) == IS_ARRAY ||
Z_TYPE_PP(arg1) == IS_OBJECT) {
- php_error(E_NOTICE, "%s() arg1 is invalid.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "arg1 is invalid.");
RETURN_FALSE;
}
if (( n ==2 && Z_TYPE_PP(arg2) == IS_ARRAY) ||
( n ==2 && Z_TYPE_PP(arg2) == IS_OBJECT)) {
- php_error(E_NOTICE, "%s() arg2 is invalid.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "arg2 is invalid.");
RETURN_FALSE;
}
@@ -1867,8 +1855,7 @@ PHP_FUNCTION(mb_strlen)
convert_to_string_ex(arg2);
string.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg2));
if(string.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg2));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg2));
RETURN_FALSE;
}
}
@@ -1921,8 +1908,7 @@ PHP_FUNCTION(mb_strpos)
convert_to_string_ex(arg4);
haystack.no_encoding = needle.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg4));
if(haystack.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg4));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg4));
RETURN_FALSE;
}
break;
@@ -1934,13 +1920,11 @@ PHP_FUNCTION(mb_strpos)
convert_to_string_ex(arg2);
if (offset < 0 || offset > Z_STRLEN_PP(arg1)) {
- php_error(E_WARNING,"%s() offset not contained in string",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "offset not contained in string");
RETURN_FALSE;
}
if (Z_STRLEN_PP(arg2) == 0) {
- php_error(E_WARNING,"%s() empty needle",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "empty needle");
RETURN_FALSE;
}
haystack.val = Z_STRVAL_PP(arg1);
@@ -1956,20 +1940,16 @@ PHP_FUNCTION(mb_strpos)
case 1:
break;
case 2:
- php_error(E_WARNING,"%s() needle has not positive length.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "needle has not positive length.");
break;
case 4:
- php_error(E_WARNING,"%s() unknown encoding or conversion error.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding or conversion error.");
break;
case 8:
- php_error(E_NOTICE,"%s() argument is empty.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_NOTICE," argument is empty.");
break;
default:
- php_error(E_WARNING,"%s() unknown error in mb_strpos.",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown error in mb_strpos.");
break;
}
RETVAL_FALSE;
@@ -2006,8 +1986,7 @@ PHP_FUNCTION(mb_strrpos)
convert_to_string_ex(arg3);
haystack.no_encoding = needle.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg3));
if(haystack.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg3));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg3));
RETURN_FALSE;
}
break;
@@ -2018,13 +1997,11 @@ PHP_FUNCTION(mb_strrpos)
convert_to_string_ex(arg1);
convert_to_string_ex(arg2);
if (Z_STRLEN_PP(arg1) <= 0) {
- php_error(E_WARNING,"%s() empty haystack",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING,"empty haystack");
RETURN_FALSE;
}
if (Z_STRLEN_PP(arg2) <= 0) {
- php_error(E_WARNING,"%s() empty needle",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING,"empty needle");
RETURN_FALSE;
}
haystack.val = Z_STRVAL_PP(arg1);
@@ -2073,8 +2050,7 @@ PHP_FUNCTION(mb_substr)
convert_to_string_ex(arg4);
string.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg4));
if (string.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg4));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg4));
RETURN_FALSE;
}
break;
@@ -2163,8 +2139,7 @@ PHP_FUNCTION(mb_strcut)
convert_to_string_ex(arg4);
string.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg4));
if (string.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg4));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg4));
RETURN_FALSE;
}
break;
@@ -2241,8 +2216,7 @@ PHP_FUNCTION(mb_strwidth)
convert_to_string_ex(arg2);
string.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg2));
if(string.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg2));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg2));
RETURN_FALSE;
}
}
@@ -2293,8 +2267,7 @@ PHP_FUNCTION(mb_strimwidth)
convert_to_string_ex(arg5);
string.no_encoding = marker.no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg5));
if (string.no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg5));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg5));
RETURN_FALSE;
}
break;
@@ -2309,8 +2282,7 @@ PHP_FUNCTION(mb_strimwidth)
convert_to_long_ex(arg2);
from = Z_LVAL_PP(arg2);
if (from < 0 || from > Z_STRLEN_PP(arg1)) {
- php_error(E_WARNING,"%s() start not contained in string",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "start not contained in string");
RETURN_FALSE;
}
@@ -2318,8 +2290,7 @@ PHP_FUNCTION(mb_strimwidth)
width = Z_LVAL_PP(arg3);
if (width < 0) {
- php_error(E_WARNING,"%s() width has negative value",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "width has negative value");
RETURN_FALSE;
}
@@ -2357,8 +2328,7 @@ PHPAPI char * php_mb_convert_encoding(char *input, size_t length, char *_to_enco
if (_to_encoding && strlen(_to_encoding)) {
to_encoding = mbfl_name2no_encoding(_to_encoding);
if (to_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), _to_encoding);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", _to_encoding);
return NULL;
}
} else {
@@ -2388,15 +2358,13 @@ PHPAPI char * php_mb_convert_encoding(char *input, size_t length, char *_to_enco
if (from_encoding != mbfl_no_encoding_invalid) {
string.no_encoding = from_encoding;
} else {
- php_error(E_WARNING, "%s() unable to detect character encoding",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to detect character encoding");
from_encoding = mbfl_no_encoding_pass;
to_encoding = from_encoding;
string.no_encoding = from_encoding;
}
} else {
- php_error(E_WARNING, "%s() illegal character encoding specified",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "illegal character encoding specified");
}
if (list != NULL) {
efree((void *)list);
@@ -2406,8 +2374,7 @@ PHPAPI char * php_mb_convert_encoding(char *input, size_t length, char *_to_enco
/* initialize converter */
convd = mbfl_buffer_converter_new(from_encoding, to_encoding, string.len TSRMLS_CC);
if (convd == NULL) {
- php_error(E_WARNING, "%s() unable to create character encoding converter",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to create character encoding converter");
return NULL;
}
mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode) TSRMLS_CC);
@@ -2551,8 +2518,7 @@ PHP_FUNCTION(mb_detect_encoding)
break;
}
if (size <= 0) {
- php_error(E_WARNING, "%s() illegal argument",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "illegal argument");
}
}
@@ -2601,8 +2567,7 @@ PHP_FUNCTION(mb_encode_mimeheader)
convert_to_string_ex(argv[1]);
charset = mbfl_name2no_encoding(Z_STRVAL_PP(argv[1]));
if (charset == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(argv[1]));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(argv[1]));
RETURN_FALSE;
}
} else {
@@ -2780,8 +2745,7 @@ PHP_FUNCTION(mb_convert_kana)
convert_to_string_ex(arg3);
no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg3));
if (no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg3));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg3));
RETURN_FALSE;
} else {
string.no_encoding = no_encoding;
@@ -2830,8 +2794,7 @@ PHP_FUNCTION(mb_convert_variables)
convert_to_string_ex(args[0]);
to_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(args[0]));
if (to_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(args[0]));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(args[0]));
efree((void *)args);
RETURN_FALSE;
}
@@ -2892,8 +2855,7 @@ PHP_FUNCTION(mb_convert_variables)
stack_max += PHP_MBSTR_STACK_BLOCK_SIZE;
ptmp = erealloc(stack, sizeof(pval **)*stack_max);
if (ptmp == NULL) {
- php_error(E_WARNING, "%s() stack err at %s:(%d)",
- get_active_function_name(TSRMLS_C), __FILE__, __LINE__);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "stack err at %s:(%d)", __FILE__, __LINE__);
continue;
}
stack = (pval ***)ptmp;
@@ -2930,8 +2892,7 @@ detect_end:
efree(stack);
}
if (from_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unable to detect encoding",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to detect encoding");
from_encoding = mbfl_no_encoding_pass;
}
}
@@ -2943,8 +2904,7 @@ detect_end:
if (from_encoding != mbfl_no_encoding_pass) {
convd = mbfl_buffer_converter_new(from_encoding, to_encoding, 0 TSRMLS_CC);
if (convd == NULL) {
- php_error(E_WARNING, "%s() unable to create converter",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to create converter");
RETURN_FALSE;
}
mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode) TSRMLS_CC);
@@ -2981,8 +2941,7 @@ detect_end:
stack_max += PHP_MBSTR_STACK_BLOCK_SIZE;
ptmp = erealloc(stack, sizeof(pval **)*stack_max);
if (ptmp == NULL) {
- php_error(E_WARNING, "%s() stack err at %s:(%d)",
- get_active_function_name(TSRMLS_C), __FILE__, __LINE__);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "stack err at %s:(%d)", __FILE__, __LINE__);
continue;
}
stack = (pval ***)ptmp;
@@ -3064,8 +3023,7 @@ php_mbstr_numericentity_exec(INTERNAL_FUNCTION_PARAMETERS, int type)
convert_to_string_ex(arg3);
no_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(arg3));
if (no_encoding == mbfl_no_encoding_invalid) {
- php_error(E_WARNING, "%s() unknown encoding \"%s\"",
- get_active_function_name(TSRMLS_C), Z_STRVAL_PP(arg3));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unknown encoding \"%s\"", Z_STRVAL_PP(arg3));
RETURN_FALSE;
} else {
string.no_encoding = no_encoding;
@@ -3178,8 +3136,7 @@ PHP_FUNCTION(mb_send_mail)
if (Z_STRVAL_PP(argv[0])) {
to = Z_STRVAL_PP(argv[0]);
} else {
- php_error(E_WARNING, "%s() no to field",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "no to field");
err = 1;
}
@@ -3200,8 +3157,7 @@ PHP_FUNCTION(mb_send_mail)
subject = Z_STRVAL_PP(argv[1]);
}
} else {
- php_error(E_WARNING, "%s() no subject field",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "no subject field");
err = 1;
}
@@ -3223,8 +3179,7 @@ PHP_FUNCTION(mb_send_mail)
}
} else {
/* this is not really an error, so it is allowed. */
- php_error(E_WARNING, "%s() no message string",
- get_active_function_name(TSRMLS_C));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "no message string");
message = NULL;
}