[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2008-07-22 Thread Rob Richards
rrichards   Tue Jul 22 10:29:14 2008 UTC

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  - Visibility (bug #45557)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.68r2=1.69diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.68 php-src/ext/libxml/libxml.c:1.69
--- php-src/ext/libxml/libxml.c:1.68Mon Jul 21 09:36:41 2008
+++ php-src/ext/libxml/libxml.c Tue Jul 22 10:29:14 2008
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.68 2008/07/21 09:36:41 bjori Exp $ */
+/* $Id: libxml.c,v 1.69 2008/07/22 10:29:14 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -523,7 +523,7 @@
}
 }
 
-void php_libxml_ctx_error(void *ctx, const char *msg, ...)
+PHP_LIBXML_API void php_libxml_ctx_error(void *ctx, const char *msg, ...)
 {
va_list args;
va_start(args, msg);
@@ -531,7 +531,7 @@
va_end(args);
 }
 
-void php_libxml_ctx_warning(void *ctx, const char *msg, ...)
+PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...)
 {
va_list args;
va_start(args, msg);
@@ -993,7 +993,7 @@
return ret_refcount;
 }
 
-void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC)
+PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC)
 {
if (!node) {
return;
@@ -1029,7 +1029,7 @@
}
 }
 
-void php_libxml_node_decrement_resource(php_libxml_node_object *object 
TSRMLS_DC)
+PHP_LIBXML_API void php_libxml_node_decrement_resource(php_libxml_node_object 
*object TSRMLS_DC)
 {
int ret_refcount = -1;
xmlNodePtr nodep;
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/php_libxml.h?r1=1.29r2=1.30diff_format=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.29 
php-src/ext/libxml/php_libxml.h:1.30
--- php-src/ext/libxml/php_libxml.h:1.29Wed Jan 30 09:56:21 2008
+++ php-src/ext/libxml/php_libxml.h Tue Jul 22 10:29:14 2008
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.29 2008/01/30 09:56:21 dmitry Exp $ */
+/* $Id: php_libxml.h,v 1.30 2008/07/22 10:29:14 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -86,12 +86,12 @@
 PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC);
 PHP_LIBXML_API int php_libxml_register_export(zend_class_entry *ce, 
php_libxml_export_node export_function);
 /* When an explicit freeing of node and children is required */
-void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC);
+PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC);
 /* When object dtor is called as node may still be referenced */
-void php_libxml_node_decrement_resource(php_libxml_node_object *object 
TSRMLS_DC);
+PHP_LIBXML_API void php_libxml_node_decrement_resource(php_libxml_node_object 
*object TSRMLS_DC);
 PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...);
-void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
-void php_libxml_ctx_error(void *ctx, const char *msg, ...);
+PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
+PHP_LIBXML_API void php_libxml_ctx_error(void *ctx, const char *msg, ...);
 PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s);
 PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC);
 PHP_LIBXML_API void php_libxml_issue_error(int level, const char *msg 
TSRMLS_DC);



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2007-08-01 Thread Antony Dovgal
tony2001Wed Aug  1 11:43:27 2007 UTC

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  an attempt to fix win32 build
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.62r2=1.63diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.62 php-src/ext/libxml/libxml.c:1.63
--- php-src/ext/libxml/libxml.c:1.62Sat Jul 28 08:34:09 2007
+++ php-src/ext/libxml/libxml.c Wed Aug  1 11:43:27 2007
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.62 2007/07/28 08:34:09 rrichards Exp $ */
+/* $Id: libxml.c,v 1.63 2007/08/01 11:43:27 tony2001 Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -897,7 +897,7 @@
 
 }
 
-int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr 
node, void *private_data TSRMLS_DC)
+PHP_LIBXML_API int php_libxml_increment_node_ptr(php_libxml_node_object 
*object, xmlNodePtr node, void *private_data TSRMLS_DC)
 {
int ret_refcount = -1;
 
@@ -929,7 +929,7 @@
return ret_refcount;
 }
 
-int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC)
+PHP_LIBXML_API int php_libxml_decrement_node_ptr(php_libxml_node_object 
*object TSRMLS_DC)
 {
int ret_refcount = -1;
php_libxml_node_ptr *obj_node;
@@ -949,7 +949,7 @@
return ret_refcount;
 }
 
-int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr 
docp TSRMLS_DC)
+PHP_LIBXML_API int php_libxml_increment_doc_ref(php_libxml_node_object 
*object, xmlDocPtr docp TSRMLS_DC)
 {
int ret_refcount = -1;
 
@@ -969,7 +969,7 @@
return ret_refcount;
 }
 
-int php_libxml_decrement_doc_ref(php_libxml_node_object *object TSRMLS_DC)
+PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object 
TSRMLS_DC)
 {
int ret_refcount = -1;
 
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/php_libxml.h?r1=1.26r2=1.27diff_format=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.26 
php-src/ext/libxml/php_libxml.h:1.27
--- php-src/ext/libxml/php_libxml.h:1.26Sat Jul 21 00:49:53 2007
+++ php-src/ext/libxml/php_libxml.h Wed Aug  1 11:43:27 2007
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.26 2007/07/21 00:49:53 jani Exp $ */
+/* $Id: php_libxml.h,v 1.27 2007/08/01 11:43:27 tony2001 Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -77,8 +77,8 @@
 
 typedef void * (*php_libxml_export_node) (zval *object TSRMLS_DC);
 
-int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr 
node, void *private_data TSRMLS_DC);
-int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC);
+PHP_LIBXML_API int php_libxml_increment_node_ptr(php_libxml_node_object 
*object, xmlNodePtr node, void *private_data TSRMLS_DC);
+PHP_LIBXML_API int php_libxml_decrement_node_ptr(php_libxml_node_object 
*object TSRMLS_DC);
 PHP_LIBXML_API int php_libxml_increment_doc_ref(php_libxml_node_object 
*object, xmlDocPtr docp TSRMLS_DC);
 PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object 
TSRMLS_DC);
 PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2007-07-20 Thread Jani Taskinen
janiSat Jul 21 00:49:53 2007 UTC

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  - ws + compile warning fixes
  
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.60r2=1.61diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.60 php-src/ext/libxml/libxml.c:1.61
--- php-src/ext/libxml/libxml.c:1.60Fri Jun 29 13:58:33 2007
+++ php-src/ext/libxml/libxml.c Sat Jul 21 00:49:53 2007
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.60 2007/06/29 13:58:33 dmitry Exp $ */
+/* $Id: libxml.c,v 1.61 2007/07/21 00:49:53 jani Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -122,7 +122,7 @@
 };
 
 zend_module_entry libxml_module_entry = {
-STANDARD_MODULE_HEADER,
+   STANDARD_MODULE_HEADER,
libxml,/* extension name */
libxml_functions,/* extension function list */
PHP_MINIT(libxml),   /* extension-wide startup function */
@@ -130,11 +130,11 @@
PHP_RINIT(libxml),   /* per-request startup function */
PHP_RSHUTDOWN(libxml),   /* per-request shutdown function */
PHP_MINFO(libxml),   /* information function */
-NO_VERSION_YET,
-PHP_MODULE_GLOBALS(libxml), /* globals descriptor */
-PHP_GINIT(libxml),  /* globals ctor */
-NULL,   /* globals dtor */
-NULL,   /* post deactivate */
+   NO_VERSION_YET,
+   PHP_MODULE_GLOBALS(libxml), /* globals descriptor */
+   PHP_GINIT(libxml),  /* globals ctor */
+   NULL,   /* globals dtor */
+   NULL,   /* post deactivate */
STANDARD_MODULE_PROPERTIES_EX
 };
 
@@ -363,10 +363,10 @@
 static xmlParserInputBufferPtr
 php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc)
 {
-xmlParserInputBufferPtr ret;
-void *context = NULL;
+   xmlParserInputBufferPtr ret;
+   void *context = NULL;
 
-if (URI == NULL)
+   if (URI == NULL)
return(NULL);
 
context = php_libxml_streams_IO_open_read_wrapper(URI);
@@ -392,10 +392,10 @@
   xmlCharEncodingHandlerPtr encoder,
   int compression ATTRIBUTE_UNUSED)
 {
-xmlOutputBufferPtr ret;
-xmlURIPtr puri;
-void *context = NULL;
-char *unescaped = NULL;
+   xmlOutputBufferPtr ret;
+   xmlURIPtr puri;
+   void *context = NULL;
+   char *unescaped = NULL;
 
if (URI == NULL)
return(NULL);
@@ -432,7 +432,8 @@
return(ret);
 }
 
-static int _php_libxml_free_error(xmlErrorPtr error) {
+static int _php_libxml_free_error(xmlErrorPtr error)
+{
/* This will free the libxml alloc'd memory */
xmlResetError(error);
return 1;
@@ -566,7 +567,8 @@
 }
 
 
-PHP_LIBXML_API void php_libxml_initialize() {
+PHP_LIBXML_API void php_libxml_initialize(void)
+{
if (!_php_libxml_initialized) {
/* we should be the only one's to ever init!! */
xmlInitParser();
@@ -577,7 +579,8 @@
}
 }
 
-PHP_LIBXML_API void php_libxml_shutdown() {
+PHP_LIBXML_API void php_libxml_shutdown(void) 
+{
if (_php_libxml_initialized) {
 #if defined(LIBXML_SCHEMAS_ENABLED)
xmlRelaxNGCleanupTypes();
@@ -588,7 +591,8 @@
}
 }
 
-PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC) {
+PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC)
+{
zval *oldcontext;
 
oldcontext = LIBXML(stream_context);
@@ -643,7 +647,7 @@
xmlSetGenericErrorFunc(NULL, php_libxml_error_handler);

xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_create_filename);

xmlOutputBufferCreateFilenameDefault(php_libxml_output_buffer_create_filename);
-return SUCCESS;
+   return SUCCESS;
 }
 
 
@@ -821,7 +825,7 @@
 /* }}} */
 
 /* {{{ proto void libxml_clear_errors() U
-Clear last error from libxml */
+   Clear last error from libxml */
 static PHP_FUNCTION(libxml_clear_errors)
 {
xmlResetLastError();
@@ -922,7 +926,8 @@
return ret_refcount;
 }
 
-int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC) {
+int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC)
+{
int ret_refcount = -1;
php_libxml_node_ptr *obj_node;
 
@@ -941,7 +946,8 @@
return ret_refcount;
 }
 
-int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr 
docp TSRMLS_DC) {
+int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr 
docp TSRMLS_DC)
+{
int ret_refcount = -1;
 
if (object-document != NULL) {
@@ -960,7 +966,8 @@
return ret_refcount;
 }
 
-int php_libxml_decrement_doc_ref(php_libxml_node_object *object TSRMLS_DC) {
+int 

[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2007-01-08 Thread Sara Golemon
pollita Mon Jan  8 20:01:23 2007 UTC

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  Allow libxml DomNodes to remain persistent when requested by other extensions
  
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.56r2=1.57diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.56 php-src/ext/libxml/libxml.c:1.57
--- php-src/ext/libxml/libxml.c:1.56Mon Jan  1 09:29:25 2007
+++ php-src/ext/libxml/libxml.c Mon Jan  8 20:01:23 2007
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.56 2007/01/01 09:29:25 sebastian Exp $ */
+/* $Id: libxml.c,v 1.57 2007/01/08 20:01:23 pollita Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -947,7 +947,9 @@
ret_refcount = object-document-refcount;
} else if (docp != NULL) {
ret_refcount = 1;
-   object-document = emalloc(sizeof(php_libxml_ref_obj));
+   object-document = pemalloc(sizeof(php_libxml_ref_obj), 0);
+   object-document-persistent = 0;
+   object-document-external_owner = 0;
object-document-ptr = docp;
object-document-refcount = ret_refcount;
object-document-doc_props = NULL;
@@ -972,9 +974,23 @@
}
efree(object-document-doc_props);
}
-   efree(object-document);
+   pefree(object-document, object-document-persistent);
object-document = NULL;
-   }
+   } else if (ret_refcount == 1  
object-document-external_owner) {
+   /* PHP is done with this object, but someone else owns 
the DomNodes,
+* Kill the non-persistent bits, but leave the 
persistable php_libxml_ref_obj around */
+   if (object-document-doc_props != NULL) {
+   if (object-document-doc_props-classmap) {
+   
zend_hash_destroy(object-document-doc_props-classmap);
+   
FREE_HASHTABLE(object-document-doc_props-classmap);
+   }
+   efree(object-document-doc_props);
+   object-document-doc_props = NULL;
+   }
+   /* Don't worry about the fact that this memory is left 
unfreed,
+* Whoever else owns it has the pointer stored 
somewhere */
+   object-document = NULL;
+   }   
}
 
return ret_refcount;
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/php_libxml.h?r1=1.23r2=1.24diff_format=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.23 
php-src/ext/libxml/php_libxml.h:1.24
--- php-src/ext/libxml/php_libxml.h:1.23Mon Jan  1 09:29:25 2007
+++ php-src/ext/libxml/php_libxml.h Mon Jan  8 20:01:23 2007
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.23 2007/01/01 09:29:25 sebastian Exp $ */
+/* $Id: php_libxml.h,v 1.24 2007/01/08 20:01:23 pollita Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -58,6 +58,8 @@
void *ptr;
int   refcount;
libxml_doc_props *doc_props;
+   zend_bool persistent;
+   zend_bool external_owner;
 } php_libxml_ref_obj;
 
 typedef struct _php_libxml_node_ptr {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2006-11-10 Thread Nuno Lopes
nlopess Fri Nov 10 18:05:58 2006 UTC

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  MFB
  
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.53r2=1.54diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.53 php-src/ext/libxml/libxml.c:1.54
--- php-src/ext/libxml/libxml.c:1.53Wed Sep  6 21:48:57 2006
+++ php-src/ext/libxml/libxml.c Fri Nov 10 18:05:58 2006
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.53 2006/09/06 21:48:57 edink Exp $ */
+/* $Id: libxml.c,v 1.54 2006/11/10 18:05:58 nlopess Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -52,7 +52,7 @@
 #define PHP_LIBXML_CTX_WARNING 2
 
 /* a true global for initialization */
-int _php_libxml_initialized = 0;
+static int _php_libxml_initialized = 0;
 
 typedef struct _php_libxml_func_handler {
php_libxml_export_node export_func;
@@ -60,10 +60,16 @@
 
 static HashTable php_libxml_exports;
 
-ZEND_DECLARE_MODULE_GLOBALS(libxml)
+static ZEND_DECLARE_MODULE_GLOBALS(libxml)
 static PHP_GINIT_FUNCTION(libxml);
 
-zend_class_entry *libxmlerror_class_entry;
+static PHP_FUNCTION(libxml_set_streams_context);
+static PHP_FUNCTION(libxml_use_internal_errors);
+static PHP_FUNCTION(libxml_get_last_error);
+static PHP_FUNCTION(libxml_clear_errors);
+static PHP_FUNCTION(libxml_get_errors);
+
+static zend_class_entry *libxmlerror_class_entry;
 
 /* {{{ dynamically loadable module stuff */
 #ifdef COMPILE_DL_LIBXML
@@ -72,11 +78,11 @@
 /* }}} */
 
 /* {{{ function prototypes */
-PHP_MINIT_FUNCTION(libxml);
-PHP_RINIT_FUNCTION(libxml);
-PHP_MSHUTDOWN_FUNCTION(libxml);
-PHP_RSHUTDOWN_FUNCTION(libxml);
-PHP_MINFO_FUNCTION(libxml);
+static PHP_MINIT_FUNCTION(libxml);
+static PHP_RINIT_FUNCTION(libxml);
+static PHP_MSHUTDOWN_FUNCTION(libxml);
+static PHP_RSHUTDOWN_FUNCTION(libxml);
+static PHP_MINFO_FUNCTION(libxml);
 
 /* }}} */
 
@@ -106,7 +112,7 @@
 /* }}} */
 
 /* {{{ extension definition structures */
-zend_function_entry libxml_functions[] = {
+static zend_function_entry libxml_functions[] = {
PHP_FE(libxml_set_streams_context, arginfo_libxml_set_streams_context)
PHP_FE(libxml_use_internal_errors, arginfo_libxml_use_internal_errors)
PHP_FE(libxml_get_last_error, arginfo_libxml_get_last_error)
@@ -270,7 +276,7 @@
 /* Channel libxml file io layer through the PHP streams subsystem.
  * This allows use of ftps:// and https:// urls */
 
-void *php_libxml_streams_IO_open_wrapper(const char *filename, const char 
*mode, const int read_only)
+static void *php_libxml_streams_IO_open_wrapper(const char *filename, const 
char *mode, const int read_only)
 {
php_stream_statbuf ssbuf;
php_stream_context *context = NULL;
@@ -325,35 +331,35 @@
return ret_val;
 }
 
-void *php_libxml_streams_IO_open_read_wrapper(const char *filename)
+static void *php_libxml_streams_IO_open_read_wrapper(const char *filename)
 {
return php_libxml_streams_IO_open_wrapper(filename, rb, 1);
 }
 
-void *php_libxml_streams_IO_open_write_wrapper(const char *filename)
+static void *php_libxml_streams_IO_open_write_wrapper(const char *filename)
 {
return php_libxml_streams_IO_open_wrapper(filename, wb, 0);
 }
 
-int php_libxml_streams_IO_read(void *context, char *buffer, int len)
+static int php_libxml_streams_IO_read(void *context, char *buffer, int len)
 {
TSRMLS_FETCH();
return php_stream_read((php_stream*)context, buffer, len);
 }
 
-int php_libxml_streams_IO_write(void *context, const char *buffer, int len)
+static int php_libxml_streams_IO_write(void *context, const char *buffer, int 
len)
 {
TSRMLS_FETCH();
return php_stream_write((php_stream*)context, buffer, len);
 }
 
-int php_libxml_streams_IO_close(void *context)
+static int php_libxml_streams_IO_close(void *context)
 {
TSRMLS_FETCH();
return php_stream_close((php_stream*)context);
 }
 
-xmlParserInputBufferPtr
+static xmlParserInputBufferPtr
 php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc)
 {
 xmlParserInputBufferPtr ret;
@@ -380,7 +386,7 @@
return(ret);
 }
 
-xmlOutputBufferPtr
+static xmlOutputBufferPtr
 php_libxml_output_buffer_create_filename(const char *URI,
   xmlCharEncodingHandlerPtr encoder,
   int compression ATTRIBUTE_UNUSED)
@@ -405,7 +411,7 @@
xmlFree(unescaped);
}
 
-/* try with a non-escaped URI this may be a strange filename */
+   /* try with a non-escaped URI this may be a strange filename */
if (context == NULL) {
context = php_libxml_streams_IO_open_write_wrapper(URI);
}
@@ -590,7 +596,7 @@
 
 }
 
-PHP_MINIT_FUNCTION(libxml)
+static PHP_MINIT_FUNCTION(libxml)
 {
zend_class_entry ce;
 
@@ -630,7 +636,7 @@
 }
 
 
-PHP_RINIT_FUNCTION(libxml)
+static PHP_RINIT_FUNCTION(libxml)
 {
   

[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2005-11-22 Thread Rob Richards
rrichards   Tue Nov 22 21:54:10 2005 EDT

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  move document property struct from xml_common.h
  
http://cvs.php.net/diff.php/php-src/ext/libxml/libxml.c?r1=1.39r2=1.40ty=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.39 php-src/ext/libxml/libxml.c:1.40
--- php-src/ext/libxml/libxml.c:1.39Thu Nov 17 16:57:30 2005
+++ php-src/ext/libxml/libxml.c Tue Nov 22 21:54:10 2005
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.39 2005/11/17 21:57:30 rasmus Exp $ */
+/* $Id: libxml.c,v 1.40 2005/11/23 02:54:10 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -952,6 +952,10 @@
xmlFreeDoc((xmlDoc *) object-document-ptr);
}
if (object-document-doc_props != NULL) {
+   if (object-document-doc_props-classmap) {
+   
zend_hash_destroy(object-document-doc_props-classmap);
+   
FREE_HASHTABLE(object-document-doc_props-classmap);
+   }
efree(object-document-doc_props);
}
efree(object-document);
http://cvs.php.net/diff.php/php-src/ext/libxml/php_libxml.h?r1=1.16r2=1.17ty=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.16 
php-src/ext/libxml/php_libxml.h:1.17
--- php-src/ext/libxml/php_libxml.h:1.16Thu Sep  8 06:33:57 2005
+++ php-src/ext/libxml/php_libxml.h Tue Nov 22 21:54:10 2005
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.16 2005/09/08 10:33:57 rrichards Exp $ */
+/* $Id: php_libxml.h,v 1.17 2005/11/23 02:54:10 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -43,10 +43,21 @@
zend_llist *error_list;
 } php_libxml_globals;
 
+typedef struct _libxml_doc_props {
+   int formatoutput;
+   int validateonparse;
+   int resolveexternals;
+   int preservewhitespace;
+   int substituteentities;
+   int stricterror;
+   int recover;
+   HashTable *classmap;
+} libxml_doc_props;
+
 typedef struct _php_libxml_ref_obj {
void *ptr;
int   refcount;
-   void *doc_props;
+   libxml_doc_props *doc_props;
 } php_libxml_ref_obj;
 
 typedef struct _php_libxml_node_ptr {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2005-09-08 Thread Rob Richards
rrichards   Thu Sep  8 06:33:58 2005 EDT

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  add additional constants
  remove un-needed ifdefs
  
http://cvs.php.net/diff.php/php-src/ext/libxml/libxml.c?r1=1.35r2=1.36ty=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.35 php-src/ext/libxml/libxml.c:1.36
--- php-src/ext/libxml/libxml.c:1.35Thu Aug 25 22:29:32 2005
+++ php-src/ext/libxml/libxml.c Thu Sep  8 06:33:57 2005
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.35 2005/08/26 02:29:32 rrichards Exp $ */
+/* $Id: libxml.c,v 1.36 2005/09/08 10:33:57 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -40,6 +40,7 @@
 #include libxml/tree.h
 #include libxml/uri.h
 #include libxml/xmlerror.h
+#include libxml/xmlsave.h
 #ifdef LIBXML_SCHEMAS_ENABLED
 #include libxml/relaxng.h
 #endif
@@ -65,9 +66,7 @@
 PHP_LIBXML_API php_libxml_globals libxml_globals;
 #endif
 
-#if LIBXML_VERSION = 20600
 zend_class_entry *libxmlerror_class_entry;
-#endif
 
 /* {{{ dynamically loadable module stuff */
 #ifdef COMPILE_DL_LIBXML
@@ -546,9 +545,7 @@
 
 PHP_MINIT_FUNCTION(libxml)
 {
-#if LIBXML_VERSION = 20600
zend_class_entry ce;
-#endif
 
php_libxml_initialize();
 
@@ -563,7 +560,6 @@
REGISTER_LONG_CONSTANT(LIBXML_VERSION,
LIBXML_VERSION, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT(LIBXML_DOTTED_VERSION,   
LIBXML_DOTTED_VERSION,  CONST_CS | CONST_PERSISTENT);
 
-#if LIBXML_VERSION = 20600
/* For use with loading xml */
REGISTER_LONG_CONSTANT(LIBXML_NOENT,  XML_PARSE_NOENT,
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT(LIBXML_DTDLOAD,XML_PARSE_DTDLOAD,  
CONST_CS | CONST_PERSISTENT);
@@ -576,6 +572,11 @@
REGISTER_LONG_CONSTANT(LIBXML_NSCLEAN,XML_PARSE_NSCLEAN,  
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT(LIBXML_NOCDATA,XML_PARSE_NOCDATA,  
CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT(LIBXML_NONET,  XML_PARSE_NONET,
CONST_CS | CONST_PERSISTENT);
+#if LIBXML_VERSION = 20621
+   REGISTER_LONG_CONSTANT(LIBXML_COMPACT,XML_PARSE_COMPACT,  
CONST_CS | CONST_PERSISTENT);
+   REGISTER_LONG_CONSTANT(LIBXML_NOXMLDECL,  XML_SAVE_NO_DECL,   
CONST_CS | CONST_PERSISTENT);
+#endif
+   REGISTER_LONG_CONSTANT(LIBXML_NOEMPTYTAG, LIBXML_SAVE_NOEMPTYTAG, 
CONST_CS | CONST_PERSISTENT);
 
/* Error levels */
REGISTER_LONG_CONSTANT(LIBXML_ERR_NONE,   XML_ERR_NONE,   
CONST_CS | CONST_PERSISTENT);
@@ -585,7 +586,6 @@
 
INIT_CLASS_ENTRY(ce, LibXMLError, NULL);
libxmlerror_class_entry = zend_register_internal_class(ce TSRMLS_CC);
-#endif
 
return SUCCESS;
 }
@@ -657,7 +657,6 @@
Disable libxml errors and allow user to fetch error information as needed */
 PHP_FUNCTION(libxml_use_internal_errors)
 {
-#if LIBXML_VERSION = 20600
xmlStructuredErrorFunc current_handler;
int use_errors=0, retval;
 
@@ -691,16 +690,12 @@
}
}
RETURN_BOOL(retval);
-#else
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Libxml 2.6 or higher is 
required);
-#endif
 }
 
 /* {{{ proto object libxml_get_last_error() 
Retrieve last error from libxml */
 PHP_FUNCTION(libxml_get_last_error)
 {
-#if LIBXML_VERSION = 20600
xmlErrorPtr error;
 
error = xmlGetLastError();
@@ -724,9 +719,6 @@
} else {
RETURN_FALSE;
}
-#else
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Libxml 2.6 or higher is 
required);
-#endif
 }
 /* }}} */
 
@@ -734,7 +726,6 @@
Retrieve array of errors */
 PHP_FUNCTION(libxml_get_errors)
 {
-#if LIBXML_VERSION = 20600

xmlErrorPtr error;
 
@@ -770,9 +761,6 @@
error = zend_llist_get_next(LIBXML(error_list));
}
}
-#else
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Libxml 2.6 or higher is 
required);
-#endif
 }
 /* }}} */
 
@@ -780,14 +768,10 @@
 Clear last error from libxml */
 PHP_FUNCTION(libxml_clear_errors)
 {
-#if LIBXML_VERSION = 20600
xmlResetLastError();
if (LIBXML(error_list)) {
zend_llist_clean(LIBXML(error_list));
}
-#else
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, Libxml 2.6 or higher is 
required);
-#endif
 }
 /* }}} */
 
http://cvs.php.net/diff.php/php-src/ext/libxml/php_libxml.h?r1=1.15r2=1.16ty=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.15 
php-src/ext/libxml/php_libxml.h:1.16
--- php-src/ext/libxml/php_libxml.h:1.15Wed Aug  3 10:07:23 2005
+++ php-src/ext/libxml/php_libxml.h Thu Sep  8 06:33:57 2005
@@ -17,7 +17,7 @@

[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2005-02-20 Thread Rob Richards
rrichards   Sun Feb 20 16:49:45 2005 EDT

  Modified files:  
/php-src/ext/libxml php_libxml.h libxml.c 
  Log:
  add function to allow extensions to use new error handling if set by user
  
http://cvs.php.net/diff.php/php-src/ext/libxml/php_libxml.h?r1=1.12r2=1.13ty=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.12 
php-src/ext/libxml/php_libxml.h:1.13
--- php-src/ext/libxml/php_libxml.h:1.12Thu Feb 10 10:52:38 2005
+++ php-src/ext/libxml/php_libxml.h Sun Feb 20 16:49:45 2005
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.12 2005/02/10 15:52:38 rrichards Exp $ */
+/* $Id: php_libxml.h,v 1.13 2005/02/20 21:49:45 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -88,6 +88,7 @@
 void php_libxml_ctx_error(void *ctx, const char *msg, ...);
 PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s);
 PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC);
+PHP_LIBXML_API void php_libxml_issue_error(int level, const char *msg 
TSRMLS_DC);
 
 #endif /* HAVE_LIBXML */
 
http://cvs.php.net/diff.php/php-src/ext/libxml/libxml.c?r1=1.28r2=1.29ty=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.28 php-src/ext/libxml/libxml.c:1.29
--- php-src/ext/libxml/libxml.c:1.28Thu Feb 10 10:52:38 2005
+++ php-src/ext/libxml/libxml.c Sun Feb 20 16:49:45 2005
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.28 2005/02/10 15:52:38 rrichards Exp $ */
+/* $Id: libxml.c,v 1.29 2005/02/20 21:49:45 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -388,6 +388,15 @@
}
 }
 
+void php_libxml_issue_error(int level, const char *msg TSRMLS_DC)
+{
+   if (LIBXML(error_list)) {
+   _php_list_set_error_structure(NULL, msg);
+   } else {
+   php_error_docref(NULL TSRMLS_CC, level, %s, msg);
+   }
+}
+
 static void php_libxml_internal_error_handler(int error_type, void *ctx, const 
char **msg, va_list ap)
 {
char *buf;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2005-02-10 Thread Rob Richards
rrichards   Thu Feb 10 10:52:39 2005 EDT

  Modified files:  
/php-src/ext/libxml php_libxml.h libxml.c 
  Log:
  initial cut of new error handling
  http://cvs.php.net/diff.php/php-src/ext/libxml/php_libxml.h?r1=1.11r2=1.12ty=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.11 
php-src/ext/libxml/php_libxml.h:1.12
--- php-src/ext/libxml/php_libxml.h:1.11Tue Nov  9 03:13:35 2004
+++ php-src/ext/libxml/php_libxml.h Thu Feb 10 10:52:38 2005
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.11 2004/11/09 08:13:35 dmitry Exp $ */
+/* $Id: php_libxml.h,v 1.12 2005/02/10 15:52:38 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -43,6 +43,7 @@
 typedef struct {
zval *stream_context;
smart_str error_buffer;
+   zend_llist *error_list;
 } php_libxml_globals;
 
 typedef struct _php_libxml_ref_obj {
@@ -67,11 +68,15 @@
 typedef void * (*php_libxml_export_node) (zval *object TSRMLS_DC);
 
 PHP_FUNCTION(libxml_set_streams_context);
+PHP_FUNCTION(libxml_use_internal_errors);
+PHP_FUNCTION(libxml_get_last_error);
+PHP_FUNCTION(libxml_clear_errors);
+PHP_FUNCTION(libxml_get_errors);
 
 int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr 
node, void *private_data TSRMLS_DC);
 int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC);
-int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr 
docp TSRMLS_DC);
-int php_libxml_decrement_doc_ref(php_libxml_node_object *object TSRMLS_DC);
+PHP_LIBXML_API int php_libxml_increment_doc_ref(php_libxml_node_object 
*object, xmlDocPtr docp TSRMLS_DC);
+PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object 
TSRMLS_DC);
 PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC);
 PHP_LIBXML_API int php_libxml_register_export(zend_class_entry *ce, 
php_libxml_export_node export_function);
 /* When an explicit freeing of node and children is required */
http://cvs.php.net/diff.php/php-src/ext/libxml/libxml.c?r1=1.27r2=1.28ty=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.27 php-src/ext/libxml/libxml.c:1.28
--- php-src/ext/libxml/libxml.c:1.27Sun Jan  2 07:21:14 2005
+++ php-src/ext/libxml/libxml.c Thu Feb 10 10:52:38 2005
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.27 2005/01/02 12:21:14 rrichards Exp $ */
+/* $Id: libxml.c,v 1.28 2005/02/10 15:52:38 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -65,6 +65,10 @@
 PHP_LIBXML_API php_libxml_globals libxml_globals;
 #endif
 
+#if LIBXML_VERSION = 20600
+zend_class_entry *libxmlerror_class_entry;
+#endif
+
 /* {{{ dynamically loadable module stuff */
 #ifdef COMPILE_DL_LIBXML
 ZEND_GET_MODULE(libxml)
@@ -86,6 +90,10 @@
 /* {{{ extension definition structures */
 function_entry libxml_functions[] = {
PHP_FE(libxml_set_streams_context, NULL)
+   PHP_FE(libxml_use_internal_errors, NULL)
+   PHP_FE(libxml_get_last_error, NULL)
+   PHP_FE(libxml_clear_errors, NULL)
+   PHP_FE(libxml_get_errors, NULL)
{NULL, NULL, NULL}
 };
 
@@ -235,6 +243,7 @@
 {
LIBXML(stream_context) = NULL;
LIBXML(error_buffer).c = NULL;
+   LIBXML(error_list) = NULL;
 }
 #endif
 
@@ -325,6 +334,45 @@
return php_stream_close((php_stream*)context);
 }
 
+static int _php_libxml_free_error(xmlErrorPtr error) {
+   /* This will free the libxml alloc'd memory */
+   xmlResetError(error);
+   return 1;
+}
+
+static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
+{
+   xmlError error_copy;
+   int ret;
+
+   TSRMLS_FETCH();
+
+   memset(error_copy, 0, sizeof(xmlError));
+
+   if (error) {
+   ret = xmlCopyError(error, error_copy);
+   } else {
+   error_copy.domain = 0;
+   error_copy.code = XML_ERR_INTERNAL_ERROR;
+   error_copy.level = XML_ERR_ERROR;
+   error_copy.line = 0;
+   error_copy.node = NULL;
+   error_copy.int1 = 0;
+   error_copy.int2 = 0;
+   error_copy.ctxt = NULL;
+   error_copy.message = xmlStrdup(msg);
+   error_copy.file = NULL;
+   error_copy.str1 = NULL;
+   error_copy.str2 = NULL;
+   error_copy.str3 = NULL;
+   ret = 0;
+   }
+
+   if (ret == 0) {
+   zend_llist_add_element(LIBXML(error_list), error_copy);
+   }
+}
+
 static void php_libxml_ctx_error_level(int level, void *ctx, const char *msg 
TSRMLS_DC)
 {
xmlParserCtxtPtr parser;
@@ -361,15 +409,19 @@
efree(buf);
 
if (output == 1) {
-   switch (error_type) {
-   case PHP_LIBXML_CTX_ERROR:
-   

[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h /ext/soap php_sdl.c php_sdl.h soap.c

2004-11-09 Thread Dmitry Stogov
dmitry  Tue Nov  9 03:13:36 2004 EDT

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
/php-src/ext/soap   php_sdl.c php_sdl.h soap.c 
  Log:
  Fixed bug #29211 (SoapClient doesn't request wsdl through proxy). (Rob)
  
  http://cvs.php.net/diff.php/php-src/ext/libxml/libxml.c?r1=1.23r2=1.24ty=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.23 php-src/ext/libxml/libxml.c:1.24
--- php-src/ext/libxml/libxml.c:1.23Wed Sep  8 06:15:41 2004
+++ php-src/ext/libxml/libxml.c Tue Nov  9 03:13:35 2004
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.23 2004/09/08 10:15:41 rrichards Exp $ */
+/* $Id: libxml.c,v 1.24 2004/11/09 08:13:35 dmitry Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -243,10 +243,18 @@
 
 int php_libxml_streams_IO_match_wrapper(const char *filename)
 {
+   char *resolved_path;
+   int retval;
+
TSRMLS_FETCH();
 
if (zend_is_executing(TSRMLS_C)) {
-   return php_stream_locate_url_wrapper(filename, NULL, 0 
TSRMLS_CC) ? 1 : 0;
+   resolved_path = xmlURIUnescapeString(filename, 0, NULL);
+   retval = php_stream_locate_url_wrapper(resolved_path, NULL, 0 
TSRMLS_CC) ? 1 : 0;
+   if (resolved_path) {
+   xmlFree(resolved_path);
+   }
+   return retval;
}
return 0;
 }
@@ -274,7 +282,7 @@
   in xml processing (eg. DTD files)  */
wrapper = php_stream_locate_url_wrapper(resolved_path, path_to_open, 
ENFORCE_SAFE_MODE TSRMLS_CC);
if (wrapper  read_only  wrapper-wops-url_stat) {
-   if (wrapper-wops-url_stat(wrapper, path_to_open, 0, ssbuf, 
NULL TSRMLS_CC) == -1) {
+   if (wrapper-wops-url_stat(wrapper, path_to_open, 
PHP_STREAM_URL_STAT_QUIET, ssbuf, NULL TSRMLS_CC) == -1) {
xmlFree(resolved_path);
return NULL;
}
@@ -282,11 +290,9 @@
 
if (LIBXML(stream_context)) {
context = zend_fetch_resource(LIBXML(stream_context) 
TSRMLS_CC, -1, Stream-Context, NULL, 1, php_le_stream_context());
-   ret_val = php_stream_open_wrapper_ex(path_to_open, (char 
*)mode, ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL, context);
-   xmlFree(resolved_path);
-   return ret_val;
}
-   ret_val = php_stream_open_wrapper(path_to_open, (char *)mode, 
ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL);
+
+   ret_val = php_stream_open_wrapper_ex(path_to_open, (char *)mode, 
ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL, context);
xmlFree(resolved_path);
return ret_val;
 }
@@ -432,6 +438,15 @@
}
 }
 
+PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC) {
+   zval *oldcontext;
+
+   oldcontext = LIBXML(stream_context);
+   LIBXML(stream_context) = context;
+   return oldcontext;
+
+}
+
 PHP_MINIT_FUNCTION(libxml)
 {
php_libxml_initialize();
@@ -503,7 +518,6 @@
 }
 /* }}} */
 
-
 /* {{{ Common functions shared by extensions */
 int php_libxml_xmlCheckUTF8(const unsigned char *s)
 {
http://cvs.php.net/diff.php/php-src/ext/libxml/php_libxml.h?r1=1.10r2=1.11ty=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.10 
php-src/ext/libxml/php_libxml.h:1.11
--- php-src/ext/libxml/php_libxml.h:1.10Wed Sep  8 06:15:41 2004
+++ php-src/ext/libxml/php_libxml.h Tue Nov  9 03:13:35 2004
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.10 2004/09/08 10:15:41 rrichards Exp $ */
+/* $Id: php_libxml.h,v 1.11 2004/11/09 08:13:35 dmitry Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -67,6 +67,7 @@
 typedef void * (*php_libxml_export_node) (zval *object TSRMLS_DC);
 
 PHP_FUNCTION(libxml_set_streams_context);
+
 int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr 
node, void *private_data TSRMLS_DC);
 int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC);
 int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr 
docp TSRMLS_DC);
@@ -81,6 +82,7 @@
 void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
 void php_libxml_ctx_error(void *ctx, const char *msg, ...);
 PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s);
+PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC);
 
 #endif /* HAVE_LIBXML */
 
http://cvs.php.net/diff.php/php-src/ext/soap/php_sdl.c?r1=1.75r2=1.76ty=u
Index: php-src/ext/soap/php_sdl.c
diff -u php-src/ext/soap/php_sdl.c:1.75 php-src/ext/soap/php_sdl.c:1.76
--- php-src/ext/soap/php_sdl.c:1.75 Sun Sep 26 17:45:17 2004
+++ php-src/ext/soap/php_sdl.c  Tue Nov  9 03:13:35 2004
@@ -17,9 +17,10 @@
   |  Dmitry Stogov [EMAIL PROTECTED] |
   

[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2004-07-25 Thread Rob Richards
rrichards   Sun Jul 25 08:00:28 2004 EDT

  Modified files:  
/php-src/ext/libxml php_libxml.h libxml.c 
  Log:
  export php_libxml_error_handler for win32 build
  
http://cvs.php.net/diff.php/php-src/ext/libxml/php_libxml.h?r1=1.8r2=1.9ty=u
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.8 php-src/ext/libxml/php_libxml.h:1.9
--- php-src/ext/libxml/php_libxml.h:1.8 Mon Mar  1 07:09:22 2004
+++ php-src/ext/libxml/php_libxml.h Sun Jul 25 08:00:28 2004
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.8 2004/03/01 12:09:22 rrichards Exp $ */
+/* $Id: php_libxml.h,v 1.9 2004/07/25 12:00:28 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -77,7 +77,7 @@
 void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC);
 /* When object dtor is called as node may still be referenced */
 void php_libxml_node_decrement_resource(php_libxml_node_object *object TSRMLS_DC);
-void php_libxml_error_handler(void *ctx, const char *msg, ...);
+PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...);
 void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
 void php_libxml_ctx_error(void *ctx, const char *msg, ...);
 
http://cvs.php.net/diff.php/php-src/ext/libxml/libxml.c?r1=1.20r2=1.21ty=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.20 php-src/ext/libxml/libxml.c:1.21
--- php-src/ext/libxml/libxml.c:1.20Sun Jul 25 06:37:27 2004
+++ php-src/ext/libxml/libxml.c Sun Jul 25 08:00:28 2004
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.20 2004/07/25 10:37:27 chregu Exp $ */
+/* $Id: libxml.c,v 1.21 2004/07/25 12:00:28 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -377,7 +377,7 @@
va_end(args);
 }
 
-void php_libxml_error_handler(void *ctx, const char *msg, ...)
+PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...)
 {
va_list args;
va_start(args, msg);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2004-01-10 Thread Marcus Boerger
helly   Sat Jan 10 08:23:59 2004 EDT

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  Fix memory corruption with libxml's error handling.
  
  
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.13 php-src/ext/libxml/libxml.c:1.14
--- php-src/ext/libxml/libxml.c:1.13Thu Jan  8 03:15:56 2004
+++ php-src/ext/libxml/libxml.c Sat Jan 10 08:23:58 2004
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.13 2004/01/08 08:15:56 andi Exp $ */
+/* $Id: libxml.c,v 1.14 2004/01/10 13:23:58 helly Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -225,7 +225,7 @@
 static void php_libxml_init_globals(php_libxml_globals *libxml_globals_p TSRMLS_DC)
 {
LIBXML(stream_context) = NULL;
-   LIBXML(error_buffer) = NULL;
+   LIBXML(error_buffer).c = NULL;
 }
 #endif
 
@@ -336,16 +336,15 @@
if (output == 1) {
switch (error_type) {
case PHP_LIBXML_CTX_ERROR:
-   php_libxml_ctx_error_level(E_WARNING, ctx, (char *) 
LIBXML(error_buffer) TSRMLS_CC);
+   php_libxml_ctx_error_level(E_WARNING, ctx, 
LIBXML(error_buffer).c TSRMLS_CC);
break;
case PHP_LIBXML_CTX_WARNING:
-   php_libxml_ctx_error_level(E_NOTICE, ctx, (char *) 
LIBXML(error_buffer) TSRMLS_CC);
+   php_libxml_ctx_error_level(E_NOTICE, ctx, 
LIBXML(error_buffer).c TSRMLS_CC);
break;
default:
-   php_error(E_WARNING, %s, (char *) 
LIBXML(error_buffer));
+   php_error(E_WARNING, %s, LIBXML(error_buffer).c);
}
smart_str_free(LIBXML(error_buffer));
-   LIBXML(error_buffer) = NULL;
}
 }
 
@@ -419,7 +418,7 @@
ts_allocate_id(libxml_globals_id, sizeof(php_libxml_globals), 
(ts_allocate_ctor) php_libxml_init_globals, NULL);
 #else
LIBXML(stream_context) = NULL;
-   LIBXML(error_buffer) = NULL;
+   LIBXML(error_buffer).c = NULL;
 #endif
 
return SUCCESS;
@@ -441,10 +440,7 @@
 
 PHP_RSHUTDOWN_FUNCTION(libxml)
 {
-   if (LIBXML(error_buffer)) {
-   smart_str_free(LIBXML(error_buffer));
-   LIBXML(error_buffer) = NULL;
-   }
+   smart_str_free(LIBXML(error_buffer));
return SUCCESS;
 }
 
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.6 php-src/ext/libxml/php_libxml.h:1.7
--- php-src/ext/libxml/php_libxml.h:1.6 Thu Jan  8 12:32:20 2004
+++ php-src/ext/libxml/php_libxml.h Sat Jan 10 08:23:58 2004
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.6 2004/01/08 17:32:20 sniper Exp $ */
+/* $Id: php_libxml.h,v 1.7 2004/01/10 13:23:58 helly Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -42,7 +42,7 @@
 
 typedef struct {
zval *stream_context;
-   smart_str *error_buffer;
+   smart_str error_buffer;
 } php_libxml_globals;
 
 typedef struct _php_libxml_ref_obj {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2003-12-12 Thread Rob Richards
rrichards   Fri Dec 12 08:54:07 2003 EDT

  Modified files:  
/php-src/ext/libxml php_libxml.h libxml.c 
  Log:
  consolidate error handling
  
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.4 php-src/ext/libxml/php_libxml.h:1.5
--- php-src/ext/libxml/php_libxml.h:1.4 Tue Dec  9 16:55:02 2003
+++ php-src/ext/libxml/php_libxml.h Fri Dec 12 08:54:06 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.4 2003/12/09 21:55:02 rrichards Exp $ */
+/* $Id: php_libxml.h,v 1.5 2003/12/12 13:54:06 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -73,6 +73,9 @@
 void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC);
 /* When object dtor is called as node may still be referenced */
 void php_libxml_node_decrement_resource(php_libxml_node_object *object TSRMLS_DC);
+void php_libxml_error_handler(void *ctx, const char *msg, ...);
+void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
+void php_libxml_ctx_error(void *ctx, const char *msg, ...);
 
 #endif /* HAVE_LIBXML */
 
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.10 php-src/ext/libxml/libxml.c:1.11
--- php-src/ext/libxml/libxml.c:1.10Tue Dec  9 16:55:02 2003
+++ php-src/ext/libxml/libxml.c Fri Dec 12 08:54:06 2003
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.10 2003/12/09 21:55:02 rrichards Exp $ */
+/* $Id: libxml.c,v 1.11 2003/12/12 13:54:06 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -43,6 +43,10 @@
 
 #include php_libxml.h
 
+#define PHP_LIBXML_ERROR 0
+#define PHP_LIBXML_CTX_ERROR 1
+#define PHP_LIBXML_CTX_WARNING 2
+
 /* a true global for initialization */
 int _php_libxml_initialized = 0;
 
@@ -294,22 +298,33 @@
return php_stream_close((php_stream*)context);
 }
 
-static void php_libxml_error_handler(void *ctx, const char *msg, ...)
+static void php_libxml_ctx_error_level(int level, void *ctx, const char *msg 
TSRMLS_DC)
+{
+   xmlParserCtxtPtr parser;
+
+   parser = (xmlParserCtxtPtr) ctx;
+
+   if (parser != NULL  parser-input != NULL) {
+   if (parser-input-filename) {
+   php_error_docref(NULL TSRMLS_CC, level, %s in %s, line: %d, 
msg, parser-input-filename, parser-input-line);
+   } else {
+   php_error_docref(NULL TSRMLS_CC, level, %s in Entity, line: 
%d, msg, parser-input-line);
+   }
+   }
+}
+
+static void php_libxml_internal_error_handler(int error_type, void *ctx, const char 
**msg, va_list ap)
 {
-   va_list ap;
char *buf;
int len, len_iter, output = 0;
 
TSRMLS_FETCH();
 
-   va_start(ap, msg);
-   len = vspprintf(buf, 0, msg, ap);
-   va_end(ap);
-
+   len = vspprintf(buf, 0, *msg, ap);
len_iter = len;
 
/* remove any trailing \n */
-   while (len  buf[--len_iter] == '\n') {
+   while (len_iter  buf[--len_iter] == '\n') {
buf[len_iter] = '\0';
output = 1;
}
@@ -319,12 +334,46 @@
efree(buf);
 
if (output == 1) {
-   php_error(E_WARNING, %s, (char *) LIBXML(error_buffer));
+   switch (error_type) {
+   case PHP_LIBXML_CTX_ERROR:
+   php_libxml_ctx_error_level(E_WARNING, ctx, (char *) 
LIBXML(error_buffer) TSRMLS_CC);
+   break;
+   case PHP_LIBXML_CTX_WARNING:
+   php_libxml_ctx_error_level(E_NOTICE, ctx, (char *) 
LIBXML(error_buffer) TSRMLS_CC);
+   break;
+   default:
+   php_error(E_WARNING, %s, (char *) 
LIBXML(error_buffer));
+   }
smart_str_free(LIBXML(error_buffer));
LIBXML(error_buffer) = NULL;
}
 }
 
+void php_libxml_ctx_error(void *ctx, const char *msg, ...)
+{
+   va_list args;
+   va_start(args, msg);
+   php_libxml_internal_error_handler(PHP_LIBXML_CTX_ERROR, ctx, msg, args);
+   va_end(args);
+}
+
+void php_libxml_ctx_warning(void *ctx, const char *msg, ...)
+{
+   va_list args;
+   va_start(args, msg);
+   php_libxml_internal_error_handler(PHP_LIBXML_CTX_WARNING, ctx, msg, args);
+   va_end(args);
+}
+
+void php_libxml_error_handler(void *ctx, const char *msg, ...)
+{
+   va_list args;
+   va_start(args, msg);
+   php_libxml_internal_error_handler(PHP_LIBXML_ERROR, ctx, msg, args);
+   va_end(args);
+}
+
+
 PHP_LIBXML_API void php_libxml_initialize() {
if (!_php_libxml_initialized) {
/* we should be the only one's to ever init!! */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2003-12-09 Thread Rob Richards
rrichards   Tue Dec  9 16:55:03 2003 EDT

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  buffer error messages until newline is hit
  
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.9 php-src/ext/libxml/libxml.c:1.10
--- php-src/ext/libxml/libxml.c:1.9 Fri Nov 28 18:25:25 2003
+++ php-src/ext/libxml/libxml.c Tue Dec  9 16:55:02 2003
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.9 2003/11/28 23:25:25 pollita Exp $ */
+/* $Id: libxml.c,v 1.10 2003/12/09 21:55:02 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -221,6 +221,7 @@
 static void php_libxml_init_globals(php_libxml_globals *libxml_globals_p TSRMLS_DC)
 {
LIBXML(stream_context) = NULL;
+   LIBXML(error_buffer) = NULL;
 }
 #endif
 
@@ -297,19 +298,31 @@
 {
va_list ap;
char *buf;
-   int len;
+   int len, len_iter, output = 0;
+
+   TSRMLS_FETCH();
 
va_start(ap, msg);
len = vspprintf(buf, 0, msg, ap);
va_end(ap);
-   
+
+   len_iter = len;
+
/* remove any trailing \n */
-   while (len  buf[--len] == '\n') {
-   buf[len] = '\0';
+   while (len  buf[--len_iter] == '\n') {
+   buf[len_iter] = '\0';
+   output = 1;
}
 
-   php_error(E_WARNING, %s, buf);
+   smart_str_appendl(LIBXML(error_buffer), buf, len);
+
efree(buf);
+
+   if (output == 1) {
+   php_error(E_WARNING, %s, (char *) LIBXML(error_buffer));
+   smart_str_free(LIBXML(error_buffer));
+   LIBXML(error_buffer) = NULL;
+   }
 }
 
 PHP_LIBXML_API void php_libxml_initialize() {
@@ -357,6 +370,7 @@
ts_allocate_id(libxml_globals_id, sizeof(php_libxml_globals), 
(ts_allocate_ctor) php_libxml_init_globals, NULL);
 #else
LIBXML(stream_context) = NULL;
+   LIBXML(error_buffer) = NULL;
 #endif
 
return SUCCESS;
@@ -378,6 +392,10 @@
 
 PHP_RSHUTDOWN_FUNCTION(libxml)
 {
+   if (LIBXML(error_buffer)) {
+   smart_str_free(LIBXML(error_buffer));
+   LIBXML(error_buffer) = NULL;
+   }
return SUCCESS;
 }
 
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.3 php-src/ext/libxml/php_libxml.h:1.4
--- php-src/ext/libxml/php_libxml.h:1.3 Sun Oct 26 10:53:20 2003
+++ php-src/ext/libxml/php_libxml.h Tue Dec  9 16:55:02 2003
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: php_libxml.h,v 1.3 2003/10/26 15:53:20 rrichards Exp $ */
+/* $Id: php_libxml.h,v 1.4 2003/12/09 21:55:02 rrichards Exp $ */
 
 #ifndef PHP_LIBXML_H
 #define PHP_LIBXML_H
@@ -37,10 +37,12 @@
 #define PHP_LIBXML_API
 #endif
 
+#include ext/standard/php_smart_str.h
 #include libxml/tree.h
 
 typedef struct {
zval *stream_context;
+   smart_str *error_buffer;
 } php_libxml_globals;
 
 typedef struct _php_libxml_ref_obj {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/libxml libxml.c php_libxml.h

2003-10-26 Thread Rob Richards
rrichards   Sun Oct 26 10:53:20 2003 EDT

  Modified files:  
/php-src/ext/libxml libxml.c php_libxml.h 
  Log:
  common functions for interoperability
  Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.6 php-src/ext/libxml/libxml.c:1.7
--- php-src/ext/libxml/libxml.c:1.6 Mon Oct 20 11:33:40 2003
+++ php-src/ext/libxml/libxml.c Sun Oct 26 10:53:20 2003
@@ -17,7 +17,7 @@
+--+
  */
 
-/* $Id: libxml.c,v 1.6 2003/10/20 15:33:40 moriyoshi Exp $ */
+/* $Id: libxml.c,v 1.7 2003/10/26 15:53:20 rrichards Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -91,6 +91,131 @@
 
 /* }}} */
 
+/* {{{ internal functions for interoperability */
+static int php_libxml_dec_node(php_libxml_node_ptr *nodeptr)
+{
+   int ret_refcount;
+
+   ret_refcount = --nodeptr-refcount;
+   if (ret_refcount == 0) {
+   if (nodeptr-node != NULL  nodeptr-node-type != XML_DOCUMENT_NODE) 
{
+   nodeptr-node-_private = NULL;
+   }
+   /* node is destroyed by another object. reset ret_refcount to 1 and 
node to NULL
+   so the php_libxml_node_ptr is detroyed when the object is destroyed */
+   nodeptr-refcount = 1;
+   nodeptr-node = NULL;
+   }
+
+   return ret_refcount;
+}
+
+static int php_libxml_clear_object(php_libxml_node_object *object TSRMLS_DC)
+{
+   if (object-properties) {
+   object-properties = NULL;
+   }
+   php_libxml_decrement_node_ptr(object TSRMLS_CC);
+   return php_libxml_decrement_doc_ref(object TSRMLS_CC);
+}
+
+static int php_libxml_unregister_node(xmlNodePtr nodep TSRMLS_DC)
+{
+   php_libxml_node_object *wrapper;
+
+   php_libxml_node_ptr *nodeptr = nodep-_private;
+
+   if (nodeptr != NULL) {
+   wrapper = nodeptr-_private;
+   if (wrapper) {
+   php_libxml_clear_object(wrapper TSRMLS_CC);
+   } else {
+   php_libxml_dec_node(nodeptr);
+   }
+   }
+
+   return -1;
+}
+
+static void php_libxml_node_free(xmlNodePtr node)
+{
+   if(node) {
+   if (node-_private != NULL) {
+   ((php_libxml_node_ptr *) node-_private)-node = NULL;
+   }
+   switch (node-type) {
+   case XML_ATTRIBUTE_NODE:
+   xmlFreeProp((xmlAttrPtr) node);
+   break;
+   case XML_ENTITY_DECL:
+   case XML_ELEMENT_DECL:
+   case XML_ATTRIBUTE_DECL:
+   break;
+   case XML_NOTATION_NODE:
+   /* These require special handling */
+   if (node-name != NULL) {
+   xmlFree((char *) node-name);
+   }
+   if (((xmlEntityPtr) node)-ExternalID != NULL) {
+   xmlFree((char *) ((xmlEntityPtr) 
node)-ExternalID);
+   }
+   if (((xmlEntityPtr) node)-SystemID != NULL) {
+   xmlFree((char *) ((xmlEntityPtr) 
node)-SystemID);
+   }
+   xmlFree(node);
+   break;
+   case XML_NAMESPACE_DECL:
+   if (node-ns) {
+   xmlFreeNs(node-ns);
+   node-ns = NULL;
+   }
+   node-type = XML_ELEMENT_NODE;
+   default:
+   xmlFreeNode(node);
+   }
+   }
+}
+
+static void php_libxml_node_free_list(xmlNodePtr node TSRMLS_DC)
+{
+   xmlNodePtr curnode;
+
+   if (node != NULL) {
+   curnode = node;
+   while (curnode != NULL) {
+   node = curnode;
+   switch (node-type) {
+   /* Skip property freeing for the following types */
+   case XML_NOTATION_NODE:
+   break;
+   case XML_ENTITY_REF_NODE:
+   php_libxml_node_free_list((xmlNodePtr) 
node-properties TSRMLS_CC);
+   break;
+   case XML_ATTRIBUTE_DECL:
+   case XML_DTD_NODE:
+   case XML_DOCUMENT_TYPE_NODE:
+   case XML_ENTITY_DECL:
+   case XML_ATTRIBUTE_NODE:
+   case XML_NAMESPACE_DECL:
+