diff --git a/Zend/zend.c b/Zend/zend.c
index b9663ad329f..eb0a4ddd7e3 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -77,7 +77,7 @@ ZEND_API FILE *(*zend_fopen)(zend_string *filename, zend_string **opened_path);
ZEND_API zend_result (*zend_stream_open_function)(zend_file_handle *handle);
ZEND_API void (*zend_ticks_function)(int ticks);
ZEND_API void (*zend_interrupt_function)(zend_execute_data *execute_data);
-ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
+ZEND_API void (*zend_error_cb)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
void (*zend_printf_to_smart_string)(smart_string *buf, const char *format, va_list ap);
void (*zend_printf_to_smart_str)(smart_str *buf, const char *format, va_list ap);
ZEND_API char *(*zend_getenv)(const char *name, size_t name_len);
@@ -1316,7 +1316,7 @@ ZEND_API zval *zend_get_configuration_directive(zend_string *name) /* {{{ */
} while (0)
static ZEND_COLD void zend_error_impl(
- int orig_type, const char *error_filename, uint32_t error_lineno, zend_string *message)
+ int orig_type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
{
zval params[4];
zval retval;
@@ -1381,7 +1381,7 @@ static ZEND_COLD void zend_error_impl(
ZVAL_LONG(¶ms[0], type);
if (error_filename) {
- ZVAL_STRING(¶ms[2], error_filename);
+ ZVAL_STR_COPY(¶ms[2], error_filename);
} else {
ZVAL_NULL(¶ms[2]);
}
@@ -1449,7 +1449,7 @@ static ZEND_COLD void zend_error_impl(
/* }}} */
static ZEND_COLD void zend_error_va_list(
- int orig_type, const char *error_filename, uint32_t error_lineno,
+ int orig_type, zend_string *error_filename, uint32_t error_lineno,
const char *format, va_list args)
{
zend_string *message = zend_vstrpprintf(0, format, args);
@@ -1457,7 +1457,7 @@ static ZEND_COLD void zend_error_va_list(
zend_string_release(message);
}
-static ZEND_COLD void get_filename_lineno(int type, const char **filename, uint32_t *lineno) {
+static ZEND_COLD void get_filename_lineno(int type, zend_string **filename, uint32_t *lineno) {
/* Obtain relevant filename and lineno */
switch (type) {
case E_CORE_ERROR:
@@ -1479,16 +1479,11 @@ static ZEND_COLD void get_filename_lineno(int type, const char **filename, uint3
case E_USER_DEPRECATED:
case E_RECOVERABLE_ERROR:
if (zend_is_compiling()) {
- *filename = ZSTR_VAL(zend_get_compiled_filename());
+ *filename = zend_get_compiled_filename();
*lineno = zend_get_compiled_lineno();
} else if (zend_is_executing()) {
- *filename = zend_get_executed_filename();
- if ((*filename)[0] == '[') { /* [no active file] */
- *filename = NULL;
- *lineno = 0;
- } else {
- *lineno = zend_get_executed_lineno();
- }
+ *filename = zend_get_executed_filename_ex();
+ *lineno = zend_get_executed_lineno();
} else {
*filename = NULL;
*lineno = 0;
@@ -1500,12 +1495,12 @@ static ZEND_COLD void get_filename_lineno(int type, const char **filename, uint3
break;
}
if (!*filename) {
- *filename = "Unknown";
+ *filename = ZSTR_KNOWN(ZEND_STR_UNKNOWN_CAPITALIZED);
}
}
ZEND_API ZEND_COLD void zend_error_at(
- int type, const char *filename, uint32_t lineno, const char *format, ...) {
+ int type, zend_string *filename, uint32_t lineno, const char *format, ...) {
va_list args;
if (!filename) {
@@ -1519,7 +1514,7 @@ ZEND_API ZEND_COLD void zend_error_at(
}
ZEND_API ZEND_COLD void zend_error(int type, const char *format, ...) {
- const char *filename;
+ zend_string *filename;
uint32_t lineno;
va_list args;
@@ -1530,7 +1525,7 @@ ZEND_API ZEND_COLD void zend_error(int type, const char *format, ...) {
}
ZEND_API ZEND_COLD void zend_error_unchecked(int type, const char *format, ...) {
- const char *filename;
+ zend_string *filename;
uint32_t lineno;
va_list args;
@@ -1541,7 +1536,7 @@ ZEND_API ZEND_COLD void zend_error_unchecked(int type, const char *format, ...)
}
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(
- int type, const char *filename, uint32_t lineno, const char *format, ...)
+ int type, zend_string *filename, uint32_t lineno, const char *format, ...)
{
va_list args;
@@ -1559,7 +1554,7 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *format, ...)
{
- const char *filename;
+ zend_string *filename;
uint32_t lineno;
va_list args;
@@ -1572,7 +1567,7 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *
}
ZEND_API ZEND_COLD void zend_error_zstr(int type, zend_string *message) {
- const char *filename;
+ zend_string *filename;
uint32_t lineno;
get_filename_lineno(type, &filename, &lineno);
zend_error_impl(type, filename, lineno, message);
diff --git a/Zend/zend.h b/Zend/zend.h
index 2c2096f8e43..b1a7e5a0993 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -215,7 +215,7 @@ struct _zend_class_entry {
};
typedef struct _zend_utility_functions {
- void (*error_function)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
+ void (*error_function)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
size_t (*printf_function)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2);
size_t (*write_function)(const char *str, size_t str_length);
FILE *(*fopen_function)(zend_string *filename, zend_string **opened_path);
@@ -310,7 +310,7 @@ extern ZEND_API zend_write_func_t zend_write;
extern ZEND_API FILE *(*zend_fopen)(zend_string *filename, zend_string **opened_path);
extern ZEND_API void (*zend_ticks_function)(int ticks);
extern ZEND_API void (*zend_interrupt_function)(zend_execute_data *execute_data);
-extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
+extern ZEND_API void (*zend_error_cb)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
extern ZEND_API void (*zend_on_timeout)(int seconds);
extern ZEND_API zend_result (*zend_stream_open_function)(zend_file_handle *handle);
extern void (*zend_printf_to_smart_string)(smart_string *buf, const char *format, va_list ap);
@@ -330,8 +330,8 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *
/* For custom format specifiers like H */
ZEND_API ZEND_COLD void zend_error_unchecked(int type, const char *format, ...);
/* If filename is NULL the default filename is used. */
-ZEND_API ZEND_COLD void zend_error_at(int type, const char *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
-ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(int type, const char *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
+ZEND_API ZEND_COLD void zend_error_at(int type, zend_string *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
+ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_at_noreturn(int type, zend_string *filename, uint32_t lineno, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 4, 5);
ZEND_API ZEND_COLD void zend_error_zstr(int type, zend_string *message);
ZEND_API ZEND_COLD void zend_throw_error(zend_class_entry *exception_ce, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index add3bb50a4c..af3eacdf288 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -872,7 +872,7 @@ ZEND_API ZEND_COLD zend_object *zend_throw_error_exception(zend_class_entry *exc
}
/* }}} */
-static void zend_error_va(int type, const char *file, uint32_t lineno, const char *format, ...) /* {{{ */
+static void zend_error_va(int type, zend_string *file, uint32_t lineno, const char *format, ...) /* {{{ */
{
va_list args;
va_start(args, format);
@@ -900,8 +900,8 @@ ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severit
zend_long line = zval_get_long(GET_PROPERTY_SILENT(&exception, ZEND_STR_LINE));
int type = (ce_exception == zend_ce_parse_error ? E_PARSE : E_COMPILE_ERROR) | E_DONT_BAIL;
- zend_observer_error_notify(type, ZSTR_VAL(file), line, message);
- zend_error_cb(type, ZSTR_VAL(file), line, message);
+ zend_observer_error_notify(type, file, line, message);
+ zend_error_cb(type, file, line, message);
zend_string_release_ex(file, 0);
zend_string_release_ex(message, 0);
@@ -930,7 +930,7 @@ ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severit
line = zval_get_long(GET_PROPERTY_SILENT(&zv, ZEND_STR_LINE));
}
- zend_error_va(E_WARNING, (file && ZSTR_LEN(file) > 0) ? ZSTR_VAL(file) : NULL, line,
+ zend_error_va(E_WARNING, (file && ZSTR_LEN(file) > 0) ? file : NULL, line,
"Uncaught %s in exception handling during call to %s::__toString()",
ZSTR_VAL(Z_OBJCE(zv)->name), ZSTR_VAL(ce_exception->name));
@@ -944,7 +944,7 @@ ZEND_API ZEND_COLD zend_result zend_exception_error(zend_object *ex, int severit
line = zval_get_long(GET_PROPERTY_SILENT(&exception, ZEND_STR_LINE));
zend_error_va(severity | E_DONT_BAIL,
- (file && ZSTR_LEN(file) > 0) ? ZSTR_VAL(file) : NULL, line,
+ (file && ZSTR_LEN(file) > 0) ? file : NULL, line,
"Uncaught %s\n thrown", ZSTR_VAL(str));
zend_string_release_ex(str, 0);
diff --git a/Zend/zend_observer.c b/Zend/zend_observer.c
index 2bb7f9afa2a..2c515c40ede 100644
--- a/Zend/zend_observer.c
+++ b/Zend/zend_observer.c
@@ -245,7 +245,7 @@ ZEND_API void zend_observer_error_register(zend_observer_error_cb cb)
zend_llist_add_element(&zend_observer_error_callbacks, &cb);
}
-void zend_observer_error_notify(int type, const char *error_filename, uint32_t error_lineno, zend_string *message)
+void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
{
zend_llist_element *element;
zend_observer_error_cb callback;
diff --git a/Zend/zend_observer.h b/Zend/zend_observer.h
index cb29729ec45..40f0b384a24 100644
--- a/Zend/zend_observer.h
+++ b/Zend/zend_observer.h
@@ -72,10 +72,10 @@ ZEND_API void ZEND_FASTCALL zend_observer_fcall_end(
ZEND_API void zend_observer_fcall_end_all(void);
-typedef void (*zend_observer_error_cb)(int type, const char *error_filename, uint32_t error_lineno, zend_string *message);
+typedef void (*zend_observer_error_cb)(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
ZEND_API void zend_observer_error_register(zend_observer_error_cb callback);
-void zend_observer_error_notify(int type, const char *error_filename, uint32_t error_lineno, zend_string *message);
+void zend_observer_error_notify(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message);
END_EXTERN_C()
diff --git a/Zend/zend_string.h b/Zend/zend_string.h
index f90eac7f87a..b0205bd32d4 100644
--- a/Zend/zend_string.h
+++ b/Zend/zend_string.h
@@ -505,6 +505,7 @@ EMPTY_SWITCH_DEFAULT_CASE()
_(ZEND_STR_PAAMAYIM_NEKUDOTAYIM, "::") \
_(ZEND_STR_ARGS, "args") \
_(ZEND_STR_UNKNOWN, "unknown") \
+ _(ZEND_STR_UNKNOWN_CAPITALIZED, "Unknown") \
_(ZEND_STR_EVAL, "eval") \
_(ZEND_STR_INCLUDE, "include") \
_(ZEND_STR_REQUIRE, "require") \
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index 6829fc8fc44..de1a75e5aa5 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -122,7 +122,7 @@ static zend_class_entry* (*accelerator_orig_inheritance_cache_get)(zend_class_en
static zend_class_entry* (*accelerator_orig_inheritance_cache_add)(zend_class_entry *ce, zend_class_entry *proto, zend_class_entry *parent, zend_class_entry **traits_and_interfaces, HashTable *dependencies);
static zend_result (*accelerator_orig_zend_stream_open_function)(zend_file_handle *handle );
static zend_string *(*accelerator_orig_zend_resolve_path)(zend_string *filename);
-static void (*accelerator_orig_zend_error_cb)(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message);
+static void (*accelerator_orig_zend_error_cb)(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
static zif_handler orig_chdir = NULL;
static ZEND_INI_MH((*orig_include_path_on_modify)) = NULL;
static zend_result (*orig_post_startup_cb)(void);
@@ -1686,12 +1686,12 @@ static void zend_accel_set_auto_globals(int mask)
ZCG(auto_globals_mask) |= mask;
}
-static void persistent_error_cb(int type, const char *error_filename, const uint32_t error_lineno, zend_string *message) {
+static void persistent_error_cb(int type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message) {
if (ZCG(record_warnings)) {
zend_recorded_warning *warning = emalloc(sizeof(zend_recorded_warning));
warning->type = type;
warning->error_lineno = error_lineno;
- warning->error_filename = zend_string_init(error_filename, strlen(error_filename), 0);
+ warning->error_filename = zend_string_copy(error_filename);
warning->error_message = zend_string_copy(message);
ZCG(num_warnings)++;
@@ -1705,7 +1705,7 @@ static void replay_warnings(zend_persistent_script *script) {
for (uint32_t i = 0; i < script->num_warnings; i++) {
zend_recorded_warning *warning = script->warnings[i];
accelerator_orig_zend_error_cb(
- warning->type, ZSTR_VAL(warning->error_filename), warning->error_lineno,
+ warning->type, warning->error_filename, warning->error_lineno,
warning->error_message);
}
}
@@ -4084,13 +4084,13 @@ static void preload_link(void)
if (!(ce->ce_flags & ZEND_ACC_ANON_CLASS)
&& zend_hash_exists(EG(class_table), key)) {
zend_error_at(
- E_WARNING, ZSTR_VAL(ce->info.user.filename), ce->info.user.line_start,
+ E_WARNING, ce->info.user.filename, ce->info.user.line_start,
"Can't preload already declared class %s", ZSTR_VAL(ce->name));
} else {
const char *kind, *name;
get_unlinked_dependency(ce, &kind, &name);
zend_error_at(
- E_WARNING, ZSTR_VAL(ce->info.user.filename), ce->info.user.line_start,
+ E_WARNING, ce->info.user.filename, ce->info.user.line_start,
"Can't preload unlinked class %s: %s%s",
ZSTR_VAL(ce->name), kind, name);
}
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 1d25373fc65..a50718d4cd6 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -68,7 +68,7 @@ static void delete_service(void *service);
static void delete_url(void *handle);
static void delete_hashtable(void *hashtable);
-static void soap_error_handler(int error_num, const char *error_filename, const uint32_t error_lineno, zend_string *message);
+static void soap_error_handler(int error_num, zend_string *error_filename, const uint32_t error_lineno, zend_string *message);
#define SOAP_SERVER_BEGIN_CODE() \
bool _old_handler = SOAP_GLOBAL(use_soap_error_handler);\
@@ -164,7 +164,7 @@ zend_class_entry* soap_var_class_entry;
ZEND_DECLARE_MODULE_GLOBALS(soap)
-static void (*old_error_handler)(int, const char *, const uint32_t, zend_string *);
+static void (*old_error_handler)(int, zend_string *, const uint32_t, zend_string *);
PHP_RINIT_FUNCTION(soap);
PHP_MINIT_FUNCTION(soap);
@@ -1799,7 +1799,7 @@ static ZEND_NORETURN void soap_server_fault(char* code, char* string, char *acto
}
/* }}} */
-static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, const char *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
+static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, zend_string *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
{
bool _old_in_compilation;
zend_execute_data *_old_current_execute_data;
@@ -1900,7 +1900,7 @@ static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, c
}
/* }}} */
-static void soap_error_handler(int error_num, const char *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
+static void soap_error_handler(int error_num, zend_string *error_filename, const uint32_t error_lineno, zend_string *message) /* {{{ */
{
if (EXPECTED(!SOAP_GLOBAL(use_soap_error_handler))) {
old_error_handler(error_num, error_filename, error_lineno, message);
diff --git a/main/main.c b/main/main.c
index 734a1e9ed2a..1988f3855a8 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1151,7 +1151,7 @@ static void clear_last_error() {
#if ZEND_DEBUG
/* {{{ report_zend_debug_error_notify_cb */
-static void report_zend_debug_error_notify_cb(int type, const char *error_filename, uint32_t error_lineno, zend_string *message)
+static void report_zend_debug_error_notify_cb(int type, zend_string *error_filename, uint32_t error_lineno, zend_string *message)
{
if (PG(report_zend_debug)) {
bool trigger_break;
@@ -1168,7 +1168,7 @@ static void report_zend_debug_error_notify_cb(int type, const char *error_filena
break;
}
- zend_output_debug_string(trigger_break, "%s(%" PRIu32 ") : %s", error_filename, error_lineno, ZSTR_VAL(message));
+ zend_output_debug_string(trigger_break, "%s(%" PRIu32 ") : %s", ZSTR_VAL(error_filename), error_lineno, ZSTR_VAL(message));
}
}
/* }}} */
@@ -1176,7 +1176,7 @@ static void report_zend_debug_error_notify_cb(int type, const char *error_filena
/* {{{ php_error_cb
extended error handling function */
-static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, const uint32_t error_lineno, zend_string *message)
+static ZEND_COLD void php_error_cb(int orig_type, zend_string *error_filename, const uint32_t error_lineno, zend_string *message)
{
bool display;
int type = orig_type & E_ALL;
@@ -1188,7 +1188,7 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
if (zend_string_equals(PG(last_error_message), message)
|| (!PG(ignore_repeated_source)
&& ((PG(last_error_lineno) != (int)error_lineno)
- || strcmp(PG(last_error_file), error_filename)))) {
+ || strcmp(PG(last_error_file), ZSTR_VAL(error_filename))))) {
display = 1;
} else {
display = 0;
@@ -1223,11 +1223,11 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
if (display) {
clear_last_error();
if (!error_filename) {
- error_filename = "Unknown";
+ error_filename = ZSTR_KNOWN(ZEND_STR_UNKNOWN_CAPITALIZED);
}
PG(last_error_type) = type;
PG(last_error_message) = zend_string_copy(message);
- PG(last_error_file) = strdup(error_filename);
+ PG(last_error_file) = strdup(ZSTR_VAL(error_filename));
PG(last_error_lineno) = error_lineno;
}
@@ -1287,14 +1287,14 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
syslog(LOG_ALERT, "PHP %s: %s (%s)", error_type_str, ZSTR_VAL(message), GetCommandLine());
}
#endif
- spprintf(&log_buffer, 0, "PHP %s: %s in %s on line %" PRIu32, error_type_str, ZSTR_VAL(message), error_filename, error_lineno);
+ spprintf(&log_buffer, 0, "PHP %s: %s in %s on line %" PRIu32, error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno);
php_log_err_with_severity(log_buffer, syslog_type_int);
efree(log_buffer);
}
if (PG(display_errors) && ((module_initialized && !PG(during_request_startup)) || (PG(display_startup_errors)))) {
if (PG(xmlrpc_errors)) {
- php_printf("faultCode" ZEND_LONG_FMT "faultString%s:%s in %s on line %" PRIu32 "", PG(xmlrpc_error_number), error_type_str, ZSTR_VAL(message), error_filename, error_lineno);
+ php_printf("faultCode" ZEND_LONG_FMT "faultString%s:%s in %s on line %" PRIu32 "", PG(xmlrpc_error_number), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno);
} else {
char *prepend_string = INI_STR("error_prepend_string");
char *append_string = INI_STR("error_append_string");
@@ -1302,22 +1302,22 @@ static ZEND_COLD void php_error_cb(int orig_type, const char *error_filename, co
if (PG(html_errors)) {
if (type == E_ERROR || type == E_PARSE) {
zend_string *buf = escape_html(ZSTR_VAL(message), ZSTR_LEN(message));
- php_printf("%s
\n%s: %s in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(buf), error_filename, error_lineno, STR_PRINT(append_string));
+ php_printf("%s
\n%s: %s in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(buf), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string));
zend_string_free(buf);
} else {
- php_printf("%s
\n%s: %s in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), error_filename, error_lineno, STR_PRINT(append_string));
+ php_printf("%s
\n%s: %s in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string));
}
} else {
/* Write CLI/CGI errors to stderr if display_errors = "stderr" */
if ((!strcmp(sapi_module.name, "cli") || !strcmp(sapi_module.name, "cgi") || !strcmp(sapi_module.name, "phpdbg")) &&
PG(display_errors) == PHP_DISPLAY_ERRORS_STDERR
) {
- fprintf(stderr, "%s: %s in %s on line %" PRIu32 "\n", error_type_str, ZSTR_VAL(message), error_filename, error_lineno);
+ fprintf(stderr, "%s: %s in %s on line %" PRIu32 "\n", error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno);
#ifdef PHP_WIN32
fflush(stderr);
#endif
} else {
- php_printf("%s\n%s: %s in %s on line %" PRIu32 "\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), error_filename, error_lineno, STR_PRINT(append_string));
+ php_printf("%s\n%s: %s in %s on line %" PRIu32 "\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string));
}
}
}