rrichards Sun Oct 19 19:34:40 2003 EDT
Modified files:
/php-src/ext/libxml libxml.c
Log:
add generic default error handling rather than the default stderr
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.3 php-src/ext/libxml/libxml.c:1.4
--- php-src/ext/libxml/libxml.c:1.3 Sun Oct 19 19:25:48 2003
+++ php-src/ext/libxml/libxml.c Sun Oct 19 19:34:39 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: libxml.c,v 1.3 2003/10/19 23:25:48 rrichards Exp $ */
+/* $Id: libxml.c,v 1.4 2003/10/19 23:34:39 rrichards Exp $ */
#define IS_EXT_MODULE
@@ -146,6 +146,25 @@
return php_stream_close((php_stream*)context);
}
+static void php_libxml_error_handler(void *ctx, const char *msg, ...)
+{
+ va_list ap;
+ char *buf;
+ int len;
+
+ va_start(ap, msg);
+ len = vspprintf(&buf, 0, msg, ap);
+ va_end(ap);
+
+ /* remove any trailing \n */
+ while (len && buf[--len] == '\n') {
+ buf[len] = '\0';
+ }
+
+ php_error(E_WARNING, "%s", buf);
+ efree(buf);
+}
+
PHP_LIBXML_API void php_libxml_initialize() {
if (!_php_libxml_initialized) {
/* we should be the only one's to ever init!! */
@@ -167,12 +186,17 @@
php_libxml_streams_IO_write,
php_libxml_streams_IO_close);
+ /* report errors via handler rather than stderr */
+ xmlSetGenericErrorFunc(NULL, php_libxml_error_handler);
+
_php_libxml_initialized = 1;
}
}
PHP_LIBXML_API void php_libxml_shutdown() {
if (_php_libxml_initialized) {
+ /* reset libxml generic error handling */
+ xmlSetGenericErrorFunc(NULL, NULL);
xmlCleanupParser();
_php_libxml_initialized = 0;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php