SOURCES: xmlrpc-c-libxml2-support.patch, xmlrpc-c-public-dispatch....
baggins
baggins at pld-linux.org
Wed Jan 11 17:19:30 CET 2006
Author: baggins Date: Wed Jan 11 16:19:30 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- updated to 1.03.10
---- Files affected:
SOURCES:
xmlrpc-c-libxml2-support.patch (1.1 -> 1.2) , xmlrpc-c-public-dispatch.patch (1.1 -> 1.2) , xmlrpc-c-soname.patch (1.1 -> 1.2)
---- Diffs:
================================================================
Index: SOURCES/xmlrpc-c-libxml2-support.patch
diff -u SOURCES/xmlrpc-c-libxml2-support.patch:1.1 SOURCES/xmlrpc-c-libxml2-support.patch:1.2
--- SOURCES/xmlrpc-c-libxml2-support.patch:1.1 Mon Sep 15 05:50:31 2003
+++ SOURCES/xmlrpc-c-libxml2-support.patch Wed Jan 11 17:19:24 2006
@@ -1,620 +1,11 @@
---- xmlrpc-c-0.9.10-old/configure.in Sat Jun 30 21:43:48 2001
-+++ xmlrpc-c-0.9.10/configure.in Thu May 23 17:33:36 2002
-@@ -70,6 +70,39 @@
- AC_SUBST(AUTH_CLIENT)
- AC_SUBST(QUERY_MEERKAT)
+--- xmlrpc-c-1.03.10/lib/Makefile~ 2004-12-14 04:28:16.000000000 +0100
++++ xmlrpc-c-1.03.10/lib/Makefile 2006-01-11 17:08:49.324799750 +0100
+@@ -18,7 +18,7 @@
+ ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
+ SUBDIRS += libwww_transport
+ endif
+-ifneq ($(ENABLE_LIBXML2),yes)
++ifneq ($(ENABLE_LIBXML2_BACKEND),yes)
+ SUBDIRS += expat
+ endif
-+AM_CONDITIONAL(ENABLE_LIBXML2, false)
-+
-+dnl Check to see if we should build the libxml2 backend.
-+AC_MSG_CHECKING(whether to build the libxml2 backend)
-+AC_ARG_ENABLE(libxml2-backend, [\
-+ --enable-libxml2-backend Use libxml2 instead of built-in expat], ,
-+enable_libxml2_backend=no)
-+AC_MSG_RESULT($enable_libxml2_backend)
-+
-+dnl If we're using the libxml2 backend, look for pkg-config
-+if test x"$enable_libxml2_backend" != xno; then
-+ AC_MSG_CHECKING(for pkg-config)
-+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-+ if test x$PKG_CONFIG = xno; then
-+ AC_MSG_ERROR([*** pkg-config not found. See http://www.freedesktop.org/software/pkgconfig/])
-+ fi
-+
-+dnl Set up the appropriate Makefile substitutions
-+ LIBXML2_CFLAGS=`pkg-config --cflags libxml-2.0`
-+ AC_SUBST(LIBXML2_CFLAGS)
-+ CFLAGS="$CFLAGS $LIBXML2_CFLAGS"
-+
-+ LIBXML2_LIBS=`pkg-config --libs libxml-2.0`
-+ AC_SUBST(LIBXML2_LIBS)
-+
-+ AM_CONDITIONAL(ENABLE_LIBXML2, true)
-+ EXTRA_XML_LIBS="$LIBXML2_LIBS"
-+else
-+ EXTRA_XML_LIBS="-lxmlrpc_xmlparse -lxmlrpc_xmltok"
-+fi
-+
-+AC_SUBST(EXTRA_XML_LIBS)
-+
- dnl Check to see if we should build our Abyss server module.
- AC_MSG_CHECKING(whether to build Abyss server module)
- AC_ARG_ENABLE(abyss-server, [\
-
-diff -urpP xmlrpc-c-0.9.10-old/examples/Makefile.am xmlrpc-c-0.9.10/examples/Makefile.am
---- xmlrpc-c-0.9.10-old/examples/Makefile.am Tue Apr 24 19:43:46 2001
-+++ xmlrpc-c-0.9.10/examples/Makefile.am Thu May 2 17:23:09 2002
-@@ -13,10 +13,15 @@ EXTRA_PROGRAMS = synch_client asynch_cl
-
- INCLUDES = -I$(srcdir)/.. -I$(srcdir)/../src
-
--LIBEXPAT = ../lib/expat/xmlparse/libxmlrpc_xmlparse.la \
-- ../lib/expat/xmltok/libxmlrpc_xmltok.la
-+if ENABLE_LIBXML2
-+LIBXML = $(LIBXML2_LIBS)
-+else
-+LIBXML = ../lib/expat/xmlparse/libxmlrpc_xmlparse.la \
-+ ../lib/expat/xmltok/libxmlrpc_xmltok.la
-+endif
-+
- LIBABYSS = ../lib/abyss/src/libxmlrpc_abyss.la
--LIBXMLRPC = ../src/libxmlrpc.la $(LIBEXPAT)
-+LIBXMLRPC = ../src/libxmlrpc.la $(LIBXML)
- LIBCLIENT = ../src/libxmlrpc_client.la @LIBWWW_LDADD@ $(LIBXMLRPC)
- LIBSERVER = ../src/libxmlrpc_abyss_server.la $(LIBABYSS) $(LIBXMLRPC)
- LIBCGI = ../src/libxmlrpc_cgi.la $(LIBXMLRPC)
-
-diff -urpP xmlrpc-c-0.9.10-old/examples/interop-client/Makefile.am xmlrpc-c-0.9.10/examples/interop-client/Makefile.am
---- xmlrpc-c-0.9.10-old/examples/interop-client/Makefile.am Tue Apr 24 11:29:37 2001
-+++ xmlrpc-c-0.9.10/examples/interop-client/Makefile.am Thu May 2 17:31:42 2002
-@@ -6,9 +6,14 @@ noinst_PROGRAMS = interop-client
-
- INCLUDES = -I$(srcdir)/../../src
-
--LIBEXPAT = ../../lib/expat/xmlparse/libxmlrpc_xmlparse.la \
-- ../../lib/expat/xmltok/libxmlrpc_xmltok.la
--LIBXMLRPC = ../../src/libxmlrpc.la $(LIBEXPAT)
-+if ENABLE_LIBXML2
-+LIBXML = $(LIBXML2_LIBS)
-+else
-+LIBXML = ../../lib/expat/xmlparse/libxmlrpc_xmlparse.la \
-+ ../../lib/expat/xmltok/libxmlrpc_xmltok.la
-+endif
-+
-+LIBXMLRPC = ../../src/libxmlrpc.la $(LIBXML)
- LIBCLIENT = ../../src/libxmlrpc_client.la @LIBWWW_LDADD@ $(LIBXMLRPC)
-
- interop_client_SOURCES = interop-client.cc \
-
-diff -urpP xmlrpc-c-0.9.10-old/lib/Makefile.am xmlrpc-c-0.9.10/lib/Makefile.am
---- xmlrpc-c-0.9.10-old/lib/Makefile.am Sat Mar 17 15:34:43 2001
-+++ xmlrpc-c-0.9.10/lib/Makefile.am Thu May 2 17:23:09 2002
-@@ -1 +1,7 @@
--SUBDIRS = expat @ABYSS_SUBDIR@
-+ABYSS_SUBDIR = @ABYSS_SUBDIR@
-+
-+if ENABLE_LIBXML2
-+SUBDIRS = $(ABYSS_SUBDIR)
-+else
-+SUBDIRS = expat $(ABYSS_SUBDIR)
-+endif
-
-diff -urpP xmlrpc-c-0.9.10-old/src/Makefile.am xmlrpc-c-0.9.10/src/Makefile.am
---- xmlrpc-c-0.9.10-old/src/Makefile.am Sat Jun 30 22:17:37 2001
-+++ xmlrpc-c-0.9.10/src/Makefile.am Thu May 2 17:23:09 2002
-@@ -34,15 +34,24 @@ noinst_SCRIPTS = efrpctest_wrapper
- # Our test programs.
- TESTS = rpctest @EFRPCTEST_WRAPPER@ @CPPTEST@
-
--INCLUDES = -I.. -I$(srcdir)/../lib/expat/xmlparse -I$(srcdir)/../lib/abyss/src
-+if ENABLE_LIBXML2
-+LIBXML_INCLUDES = $(LIBXML2_CFLAGS)
-+LIBXML = $(LIBXML2_LIBS)
-+LIBXML_FILES = xmlrpc_libxml2.c
-+else
-+LIBXML_INCLUDES = -I$(srcdir)/../lib/expat/xmlparse
-+LIBXML = ../lib/expat/xmlparse/libxmlrpc_xmlparse.la \
-+ ../lib/expat/xmltok/libxmlrpc_xmltok.la
-+LIBXML_FILES = xmlrpc_expat.c
-+endif
-+
-+INCLUDES = -I.. -I$(srcdir)/../lib/abyss/src $(LIBXML_INCLUDES)
-
--LIBEXPAT = ../lib/expat/xmlparse/libxmlrpc_xmlparse.la \
-- ../lib/expat/xmltok/libxmlrpc_xmltok.la
- LIBABYSS = ../lib/abyss/src/libxmlrpc_abyss.la
-
- # A library containing just the XML-RPC core.
- libxmlrpc_la_SOURCES = xmlrpc_support.c xmlrpc_data.c xmlrpc_struct.c \
-- xmlrpc_xmlparser.h xmlrpc_expat.c xmlrpc_parse.c \
-+ xmlrpc_xmlparser.h $(LIBXML_FILES) xmlrpc_parse.c \
- xmlrpc_serialize.c xmlrpc_registry.c xmlrpc_base64.c \
- xmlrpc_utf8.c
- libxmlrpc_la_LDFLAGS = @VERSION_INFO@
-@@ -64,31 +73,31 @@ libxmlrpc_cpp_a_SOURCES = XmlRpcCpp.cc
-
- # The test suites for the XML-RPC core.
- rpctest_SOURCES = rpctest.c
--rpctest_LDADD = libxmlrpc.la $(LIBEXPAT)
-+rpctest_LDADD = libxmlrpc.la $(LIBXML)
-
- # The test suites for the XML-RPC core w/Electric Fence.
- efrpctest_SOURCES = rpctest.c
--efrpctest_LDADD = libxmlrpc.la $(LIBEXPAT) -lefence
-+efrpctest_LDADD = libxmlrpc.la $(LIBXML) -lefence
-
- # The test suites for our C++ core.
- cpptest_SOURCES = cpptest.cc XmlRpcCpp.cc XmlRpcCpp.h
--cpptest_LDADD = libxmlrpc_cpp.a libxmlrpc.la $(LIBEXPAT)
-+cpptest_LDADD = libxmlrpc_cpp.a libxmlrpc.la $(LIBXML)
-
- # A test program for the client library.
- clienttest_SOURCES = clienttest.c
- clienttest_LDADD = libxmlrpc_client.la @LIBWWW_LDADD@ \
-- libxmlrpc.la $(LIBEXPAT)
-+ libxmlrpc.la $(LIBXML)
- clienttest_LDFLAGS = @LIBWWW_RPATH@
-
- # A test program for the server library.
- servertest_SOURCES = servertest.c
- servertest_LDADD = libxmlrpc_abyss_server.la $(LIBABYSS) \
-- libxmlrpc.la $(LIBEXPAT)
-+ libxmlrpc.la $(LIBXML)
-
- # A server which attempts to pass the UserLand validator1 suite.
- validatee_SOURCES = validatee.c
- validatee_LDADD = libxmlrpc_abyss_server.la $(LIBABYSS) \
-- libxmlrpc.la $(LIBEXPAT)
-+ libxmlrpc.la $(LIBXML)
-
- # Handle our wrapper script.
- efrpctest_wrapper: $(srcdir)/efrpctest_wrapper.sh
-
-diff -urpP xmlrpc-c-0.9.10-old/src/xmlrpc_libxml2.c xmlrpc-c-0.9.10/src/xmlrpc_libxml2.c
---- xmlrpc-c-0.9.10-old/src/xmlrpc_libxml2.c Wed Dec 31 19:00:00 1969
-+++ xmlrpc-c-0.9.10/src/xmlrpc_libxml2.c Thu May 2 17:23:09 2002
-@@ -0,0 +1,411 @@
-+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-+/* Copyright (C) 2001 by First Peer, Inc. All rights reserved.
-+** Copyright (C) 2002 Ximian, Inc.
-+**
-+** Redistribution and use in source and binary forms, with or without
-+** modification, are permitted provided that the following conditions
-+** are met:
-+** 1. Redistributions of source code must retain the above copyright
-+** notice, this list of conditions and the following disclaimer.
-+** 2. Redistributions in binary form must reproduce the above copyright
-+** notice, this list of conditions and the following disclaimer in the
-+** documentation and/or other materials provided with the distribution.
-+** 3. The name of the author may not be used to endorse or promote products
-+** derived from this software without specific prior written permission.
-+**
-+** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+** ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-+** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+** SUCH DAMAGE. */
-+
-+#ifndef HAVE_WIN32_CONFIG_H
-+#include "xmlrpc_config.h"
-+#else
-+#include "xmlrpc_win32_config.h"
-+#endif
-+
-+#include <stddef.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <libxml/parser.h>
-+
-+#define XMLRPC_WANT_INTERNAL_DECLARATIONS
-+#include "xmlrpc.h"
-+#include "xmlrpc_xmlparser.h"
-+
-+/* Define the contents of our internal structure. */
-+struct _xml_element {
-+ struct _xml_element *_parent;
-+ char *_name;
-+ xmlrpc_mem_block _cdata; /* char */
-+ xmlrpc_mem_block _children; /* xml_element* */
-+};
-+
-+#define XMLRPC_ASSERT_ELEM_OK(elem) \
-+ XMLRPC_ASSERT((elem) != NULL && (elem)->_name != XMLRPC_BAD_POINTER)
-+
-+
-+/*=========================================================================
-+** xml_element_new
-+**=========================================================================
-+** Create a new xml_element. This routine isn't exported, because the
-+** arguments are implementation-dependent.
-+*/
-+
-+static xml_element *xml_element_new (xmlrpc_env *env, char *name)
-+{
-+ xml_element *retval;
-+ int name_valid, cdata_valid, children_valid;
-+
-+ XMLRPC_ASSERT_ENV_OK(env);
-+ XMLRPC_ASSERT(name != NULL);
-+
-+ /* Set up our error-handling preconditions. */
-+ retval = NULL;
-+ name_valid = cdata_valid = children_valid = 0;
-+
-+ /* Allocate our xml_element structure. */
-+ retval = (xml_element*) malloc(sizeof(xml_element));
-+ XMLRPC_FAIL_IF_NULL(retval, env, XMLRPC_INTERNAL_ERROR,
-+ "Couldn't allocate memory for XML element");
-+
-+ /* Set our parent field to NULL. */
-+ retval->_parent = NULL;
-+
-+ /* Copy over the element name. */
-+ retval->_name = (char*) malloc(strlen(name) + 1);
-+ XMLRPC_FAIL_IF_NULL(retval->_name, env, XMLRPC_INTERNAL_ERROR,
-+ "Couldn't allocate memory for XML element");
-+ name_valid = 1;
-+ strcpy(retval->_name, name);
-+
-+ /* Initialize a block to hold our CDATA. */
-+ XMLRPC_TYPED_MEM_BLOCK_INIT(char, env, &retval->_cdata, 0);
-+ XMLRPC_FAIL_IF_FAULT(env);
-+ cdata_valid = 1;
-+
-+ /* Initialize a block to hold our child elements. */
-+ XMLRPC_TYPED_MEM_BLOCK_INIT(xml_element*, env, &retval->_children, 0);
-+ XMLRPC_FAIL_IF_FAULT(env);
-+ children_valid = 1;
-+
-+ cleanup:
-+ if (env->fault_occurred) {
-+ if (retval) {
-+ if (name_valid)
-+ free(retval->_name);
-+ if (cdata_valid)
-+ xmlrpc_mem_block_clean(&retval->_cdata);
-+ if (children_valid)
-+ xmlrpc_mem_block_clean(&retval->_children);
-+ free(retval);
-+ }
-+ return NULL;
-+ } else {
-+ return retval;
-+ }
-+}
-+
-+
-+/*=========================================================================
-+** xml_element_free
-+**=========================================================================
-+** Blow away an existing element & all of its child elements.
-+*/
-+
-+void xml_element_free (xml_element *elem)
-+{
-+ xmlrpc_mem_block *children;
-+ int size, i;
-+ xml_element **contents;
-+
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+
-+ free(elem->_name);
-+ elem->_name = XMLRPC_BAD_POINTER;
-+ xmlrpc_mem_block_clean(&elem->_cdata);
-+
-+ /* Deallocate all of our children recursively. */
-+ children = &elem->_children;
-+ contents = XMLRPC_TYPED_MEM_BLOCK_CONTENTS(xml_element*, children);
-+ size = XMLRPC_TYPED_MEM_BLOCK_SIZE(xml_element*, children);
-+ for (i = 0; i < size; i++)
-+ xml_element_free(contents[i]);
-+
-+ xmlrpc_mem_block_clean(&elem->_children);
-+ free(elem);
-+}
-+
-+
-+/*=========================================================================
-+** Miscellaneous Accessors
-+**=========================================================================
-+** Return the fields of the xml_element. See the header for more
-+** documentation on each function works.
-+*/
-+
-+char *xml_element_name (xml_element *elem)
-+{
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+ return elem->_name;
-+}
-+
-+/* The result of this function is NOT VALID until the end_element handler
-+** has been called! */
-+size_t xml_element_cdata_size (xml_element *elem)
-+{
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+ return XMLRPC_TYPED_MEM_BLOCK_SIZE(char, &elem->_cdata) - 1;
-+}
-+
-+char *xml_element_cdata (xml_element *elem)
-+{
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+ return XMLRPC_TYPED_MEM_BLOCK_CONTENTS(char, &elem->_cdata);
-+}
-+
-+size_t xml_element_children_size (xml_element *elem)
-+{
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+ return XMLRPC_TYPED_MEM_BLOCK_SIZE(xml_element*, &elem->_children);
-+}
-+
-+xml_element **xml_element_children (xml_element *elem)
-+{
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+ return XMLRPC_TYPED_MEM_BLOCK_CONTENTS(xml_element*, &elem->_children);
-+}
-+
-+
-+/*=========================================================================
-+** Internal xml_element Utility Functions
-+**=========================================================================
-+*/
-+
-+static void xml_element_append_cdata (xmlrpc_env *env,
-+ xml_element *elem,
-+ char *cdata,
-+ size_t size)
-+{
-+ XMLRPC_ASSERT_ENV_OK(env);
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+
-+ XMLRPC_TYPED_MEM_BLOCK_APPEND(char, env, &elem->_cdata, cdata, size);
-+}
-+
-+/* Whether or not this function succeeds, it takes ownership of the 'child'
-+** argument.
-+** WARNING - This is the exact opposite of the usual memory ownership
-+** rules for xmlrpc_value! So please pay attention. */
-+static void xml_element_append_child (xmlrpc_env *env,
-+ xml_element *elem,
-+ xml_element *child)
-+{
-+ XMLRPC_ASSERT_ENV_OK(env);
-+ XMLRPC_ASSERT_ELEM_OK(elem);
-+ XMLRPC_ASSERT_ELEM_OK(child);
-+ XMLRPC_ASSERT(child->_parent == NULL);
-+
-+ XMLRPC_TYPED_MEM_BLOCK_APPEND(xml_element*, env, &elem->_children,
-+ &child, 1);
-+ if (!env->fault_occurred)
-+ child->_parent = elem;
-+ else
-+ xml_element_free(child);
-+}
-+
-+
-+/*=========================================================================
-+** Our parse context. We pass this around as libxml user data.
-+**=========================================================================
-+*/
-+
-+typedef struct {
-+ xmlrpc_env *env;
-+ xml_element *root;
-+ xml_element *current;
-+} parse_context;
-+
-+
-+/*=========================================================================
-+** LibXML Event Handler Functions
-+**=========================================================================
-+*/
-+
-+static void
-+start_element (void *user_data, const xmlChar *name, const xmlChar **attrs)
-+{
-+ parse_context *context;
-+ xml_element *elem, *new_current;
-+
-+ XMLRPC_ASSERT(user_data != NULL && name != NULL);
-+
-+ /* Get our context and see if an error has already occured. */
-+ context = (parse_context*) user_data;
-+ if (!context->env->fault_occurred) {
-+
-+ /* Set up our error-handling preconditions. */
-+ elem = NULL;
-+
-+ /* Build a new element. */
-+ elem = xml_element_new(context->env, (char *) name);
-+ XMLRPC_FAIL_IF_FAULT(context->env);
-+
-+ /* Insert it in the appropriate place. */
-+ if (!context->root) {
-+ context->root = elem;
-+ context->current = elem;
-+ elem = NULL;
-+ } else {
-+ XMLRPC_ASSERT(context->current != NULL);
-+
-+ /* (We need to watch our error handling invariants very carefully
-+ ** here. Read the docs for xml_element_append_child. */
-+ new_current = elem;
-+ xml_element_append_child(context->env, context->current, elem);
-+ elem = NULL;
-+ XMLRPC_FAIL_IF_FAULT(context->env);
-+ context->current = new_current;
-+ }
-+
-+ cleanup:
-+ if (elem)
-+ xml_element_free(elem);
-+ }
-+}
-+
-+static void
-+end_element (void *user_data, const xmlChar *name)
-+{
-+ parse_context *context;
-+
-+ XMLRPC_ASSERT(user_data != NULL && name != NULL);
-+
-+ /* Get our context and see if an error has already occured. */
-+ context = (parse_context*) user_data;
-+ if (!context->env->fault_occurred) {
-+
-+ /* XXX - I think expat enforces these facts, but I want to be sure.
-+ ** If one of these assertion ever fails, it should be replaced by a
-+ ** non-assertion runtime error check. */
-+ XMLRPC_ASSERT(strcmp(name, context->current->_name) == 0);
-+ XMLRPC_ASSERT(context->current->_parent != NULL ||
-+ context->current == context->root);
-+
-+ /* Add a trailing '\0' to our cdata. */
-+ xml_element_append_cdata(context->env, context->current, "\0", 1);
-+ XMLRPC_FAIL_IF_FAULT(context->env);
-+
-+ /* Pop our "stack" of elements. */
-+ context->current = context->current->_parent;
-+
-+ cleanup:
-+ return;
-+ }
-+}
-+
-+static void character_data (void *user_data, const xmlChar *s, int len)
-+{
-+ parse_context *context;
-+
-+ XMLRPC_ASSERT(user_data != NULL && s != NULL && len >= 0);
-+
-+ /* Get our context and see if an error has already occured. */
-+ context = (parse_context*) user_data;
-+ if (!context->env->fault_occurred) {
-+
-+ XMLRPC_ASSERT(context->current != NULL);
-+
-+ xml_element_append_cdata(context->env, context->current, (char *) s, len);
-+ XMLRPC_FAIL_IF_FAULT(context->env);
-+
-+ cleanup:
-+ return;
-+ }
-+}
-+
-+
-+/*=========================================================================
-+** LibXML Driver
-+**=========================================================================
-+** XXX - We should allow the user to specify the encoding of our xml_data.
-+*/
-+
-+static xmlSAXHandler sax_handler = {
-+ NULL, /* internalSubset */
-+ NULL, /* isStandalone */
-+ NULL, /* hasInternalSubset */
-+ NULL, /* hasExternalSubset */
-+ NULL, /* resolveEntity */
-+ NULL, /* getEntity */
-+ NULL, /* entityDecl */
-+ NULL, /* notationDecl */
-+ NULL, /* attributeDecl */
-+ NULL, /* elementDecl */
-+ NULL, /* unparsedEntityDecl */
-+ NULL, /* setDocumentLocator */
-+ NULL, /* startDocument */
-+ NULL, /* endDocument */
-+ start_element, /* startElement */
-+ end_element, /* endElement */
-+ NULL, /* reference */
-+ character_data, /* characters */
-+ NULL, /* ignorableWhitespace */
-+ NULL, /* processingInstruction */
-+ NULL, /* comment */
-+ NULL, /* warning */
-+ NULL, /* error */
-+ NULL, /* fatalError */
-+};
-+
-+xml_element *xml_parse (xmlrpc_env *env, char *xml_data, int xml_len)
-+{
-+ parse_context context;
-+ xmlParserCtxt *parser;
-+ int err;
-+
-+ XMLRPC_ASSERT_ENV_OK(env);
-+ XMLRPC_ASSERT(xml_data != NULL && xml_len >= 0);
-+
-+ /* Set up our error-handling preconditions. */
-+ parser = NULL;
-+ context.root = NULL;
-+
-+ /* Set up the rest of our parse context. */
-+ context.env = env;
-+ context.current = NULL;
-+
-+ /* Set up our XML parser. */
-+ parser = xmlCreatePushParserCtxt(&sax_handler, &context, NULL, 0, NULL);
-+ XMLRPC_FAIL_IF_NULL(parser, env, XMLRPC_INTERNAL_ERROR,
-+ "Could not create expat parser");
-+
-+ /* Parse our data. */
-+ err = xmlParseChunk(parser, xml_data, xml_len, 1);
-+ if (err)
-+ XMLRPC_FAIL(env, XMLRPC_PARSE_ERROR, "XML parsing failed");
-+ XMLRPC_FAIL_IF_FAULT(env);
-+
-+ /* Perform some sanity checks. */
-+ XMLRPC_ASSERT(context.root != NULL);
-+ XMLRPC_ASSERT(context.current == NULL);
-+
-+ cleanup:
-+ if (parser)
-+ xmlFreeParserCtxt(parser);
-+
-+ if (env->fault_occurred) {
-+ if (context.root)
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/xmlrpc-c-libxml2-support.patch?r1=1.1&r2=1.2&f=u
http://cvs.pld-linux.org/SOURCES/xmlrpc-c-public-dispatch.patch?r1=1.1&r2=1.2&f=u
http://cvs.pld-linux.org/SOURCES/xmlrpc-c-soname.patch?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list