X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fmodule.c;h=aff784dbc28235c13f65583f69c58f6962638d25;hb=6b2e6562e64a263a42910d28e23b6ca94f3ecb65;hp=c3728a71b961137540d7d51ae747da5824588333;hpb=52815a5aac85e8c69ffba76c25a51de3b6ae1365;p=m6w6%2Fext-psi diff --git a/src/module.c b/src/module.c index c3728a7..aff784d 100644 --- a/src/module.c +++ b/src/module.c @@ -37,12 +37,18 @@ zend_class_entry *psi_object_get_class_entry() return psi_class_entry; } -void psi_error_wrapper(PSI_Token *t, int type, const char *msg, ...) +void psi_error_wrapper(void *context, PSI_Token *t, int type, const char *msg, ...) { va_list argv; const char *fn = NULL; unsigned ln = 0; + if (context) { + if (PSI_DATA(context)->flags & PSI_PARSER_SILENT) { + return; + } + } + if (t) { fn = t->file; ln = t->line; @@ -50,7 +56,7 @@ void psi_error_wrapper(PSI_Token *t, int type, const char *msg, ...) fn = zend_get_executed_filename(); ln = zend_get_executed_lineno(); } else if (zend_is_compiling()) { - fn = zend_get_compiled_filename(); + fn = zend_get_compiled_filename()->val; ln = zend_get_compiled_lineno(); } @@ -151,6 +157,8 @@ static PHP_MINIT_FUNCTION(psi) { PSI_ContextOps *ops = NULL; zend_class_entry ce = {0}; + unsigned flags = psi_check_env("PSI_DEBUG") ? PSI_PARSER_DEBUG : ( + psi_check_env("PSI_SILENT") ? PSI_PARSER_SILENT : 0); REGISTER_INI_ENTRIES(); @@ -177,7 +185,7 @@ static PHP_MINIT_FUNCTION(psi) return FAILURE; } - PSI_ContextInit(&PSI_G(context), ops, psi_error_wrapper); + PSI_ContextInit(&PSI_G(context), ops, psi_error_wrapper, flags); PSI_ContextBuild(&PSI_G(context), PSI_G(directory)); if (psi_check_env("PSI_DUMP")) {