OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
#include "php.h"
#include "php_ini.h"
{
php_stream *s;
zval *r = NULL;
- int fd = STDOUT_FILENO;
+ struct psi_dump dump = {.fun = (psi_dump_cb) php_stream_printf};
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "|r!", &r)) {
return;
}
if (r) {
php_stream_from_zval(s, r);
-
- if (SUCCESS != php_stream_cast(s, PHP_STREAM_AS_FD | PHP_STREAM_CAST_INTERNAL, (void **)&fd, 1)) {
- RETURN_FALSE;
- }
+ dump.ctx.hn = s;
+ } else {
+ dump.ctx.hn = php_stream_open_wrapper("php://output", "w", REPORT_ERRORS, NULL);
}
- psi_context_dump(PSI_G(context), fd);
+ psi_context_dump(&dump, PSI_G(context));
}
ZEND_BEGIN_ARG_INFO_EX(ai_psi_validate, 0, 0, 1)
psi_parser_parse(&P, I);
psi_data_ctor(&D, P.error, P.flags);
psi_validate_scope_ctor(&S);
- S.defs = &P.preproc->defs;
+ S.cpp = P.preproc;
RETVAL_BOOL(psi_validate(&S, &D, PSI_DATA(&P)));
psi_parser_parse(&P, I);
psi_data_ctor(&D, P.error, P.flags);
psi_validate_scope_ctor(&S);
- S.defs = &P.preproc->defs;
+ S.cpp = P.preproc;
RETVAL_BOOL(psi_validate(&S, &D, PSI_DATA(&P)));
}
PHP_MINIT_FUNCTION(psi_cpp);
+PHP_MINIT_FUNCTION(psi_builtin);
PHP_MINIT_FUNCTION(psi_context);
static PHP_MINIT_FUNCTION(psi)
{
psi_object_handlers.free_obj = psi_object_free;
psi_object_handlers.clone_obj = NULL;
+ if (SUCCESS != PHP_MINIT(psi_builtin)(type, module_number)) {
+ return FAILURE;
+ }
if (SUCCESS != PHP_MINIT(psi_cpp)(type, module_number)) {
return FAILURE;
}
}
PHP_MSHUTDOWN_FUNCTION(psi_cpp);
+PHP_MSHUTDOWN_FUNCTION(psi_builtin);
PHP_MSHUTDOWN_FUNCTION(psi_context);
static PHP_MSHUTDOWN_FUNCTION(psi)
{
PHP_MSHUTDOWN(psi_context)(type, module_number);
PHP_MSHUTDOWN(psi_cpp)(type, module_number);
+ PHP_MSHUTDOWN(psi_builtin)(type, module_number);
UNREGISTER_INI_ENTRIES();