msopacua Fri Oct 25 15:23:14 2002 EDT Modified files: /php4/ext/xslt php_sablot.h sablot.c Log: - Add XSLT_REG_ERRMSG macro to register an error on the handle - Rename constants to a bit more appropreate format - Add XSLT_ERR_UNSUPPORTED_SCHEME to be returned for scheme handlers. # Docs on xslt_set_scheme_handlers are in progress. Index: php4/ext/xslt/php_sablot.h diff -u php4/ext/xslt/php_sablot.h:1.14 php4/ext/xslt/php_sablot.h:1.15 --- php4/ext/xslt/php_sablot.h:1.14 Tue Oct 15 12:41:38 2002 +++ php4/ext/xslt/php_sablot.h Fri Oct 25 15:23:13 2002 @@ -48,6 +48,8 @@ #define XSLT_LOG(handle) ((handle)->err->log) #define XSLT_FUNCH_FREE(__var) if (__var) zval_ptr_dtor(&(__var)); +#define XSLT_REG_ERRMSG(msg, handle) if (XSLT_ERRSTR(handle)) +efree(XSLT_ERRSTR(handle)); \ + XSLT_ERRSTR(handle) = estrdup(msg); PHP_MINIT_FUNCTION(xslt); PHP_MINFO_FUNCTION(xslt); Index: php4/ext/xslt/sablot.c diff -u php4/ext/xslt/sablot.c:1.58 php4/ext/xslt/sablot.c:1.59 --- php4/ext/xslt/sablot.c:1.58 Tue Oct 15 12:41:38 2002 +++ php4/ext/xslt/sablot.c Fri Oct 25 15:23:13 2002 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sablot.c,v 1.58 2002/10/15 16:41:38 sterling Exp $ */ +/* $Id: sablot.c,v 1.59 2002/10/25 19:23:13 msopacua Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -158,13 +158,15 @@ le_xslt = zend_register_list_destructors_ex(free_processor, NULL, le_xslt_name, module_number); /* Generic options, which can apply to 'all' xslt processors */ - REGISTER_LONG_CONSTANT("XSLT_SILENT", SAB_NO_ERROR_REPORTING, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("XSLT_OPT_SILENT", SAB_NO_ERROR_REPORTING, CONST_CS | +CONST_PERSISTENT); + /* Error constants, which are useful in userspace. */ + REGISTER_LONG_CONSTANT("XSLT_ERR_UNSUPPORTED_SCHEME", +SH_ERR_UNSUPPORTED_SCHEME, CONST_CS | CONST_PERSISTENT); /* Sablotron specific options */ - REGISTER_LONG_CONSTANT("XSLT_SAB_PARSE_PUBLIC_ENTITIES", SAB_PARSE_PUBLIC_ENTITIES, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("XSLT_SAB_DISABLE_ADDING_META", SAB_DISABLE_ADDING_META, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("XSLT_SAB_DISABLE_STRIPPING", SAB_DISABLE_STRIPPING, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT("XSLT_SAB_IGNORE_DOC_NOT_FOUND", SAB_IGNORE_DOC_NOT_FOUND, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("XSLT_SABOPT_PARSE_PUBLIC_ENTITIES", +SAB_PARSE_PUBLIC_ENTITIES, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("XSLT_SABOPT_DISABLE_ADDING_META", +SAB_DISABLE_ADDING_META, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("XSLT_SABOPT_DISABLE_STRIPPING", SAB_DISABLE_STRIPPING, +CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("XSLT_SABOPT_IGNORE_DOC_NOT_FOUND", +SAB_IGNORE_DOC_NOT_FOUND, CONST_CS | CONST_PERSISTENT); return SUCCESS; } @@ -1534,10 +1536,7 @@ if (level == MH_LEVEL_WARN || level == MH_LEVEL_ERROR || level == MH_LEVEL_CRITICAL) { - if (XSLT_ERRSTR(handle)) - efree(XSLT_ERRSTR(handle)); - - XSLT_ERRSTR(handle) = estrdup(errmsg); + XSLT_REG_ERRMSG(errmsg, handle); } /* If we haven't allocated and opened the file yet */ @@ -1722,13 +1721,7 @@ msgbuf = emalloc((sizeof(msgformat) - 4) + strlen(errmsg) + strlen(errline) + 1); sprintf(msgbuf, msgformat, errline, errmsg); - /* If an old message exists, remove it -> leak */ - if (XSLT_ERRSTR(handle)) - efree(XSLT_ERRSTR(handle)); - - /* Copy the error message onto the handle for use when - the xslt_error function is called */ - XSLT_ERRSTR(handle) = estrdup(errmsg); + XSLT_REG_ERRMSG(errmsg, handle); /* Output a warning */ php_error(E_WARNING, msgbuf);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php