[evolution] Bug 681321 - Support both old and new-buf libxml2 APIs



commit ff88d1f11176233438cace72da46a54c479495ab
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Aug 13 11:41:10 2012 -0400

    Bug 681321 - Support both old and new-buf libxml2 APIs
    
    libxml2 changed the API for xmlOutputBuffer incompatibly.
    See https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00004.html

 modules/cal-config-caldav/e-caldav-chooser.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/modules/cal-config-caldav/e-caldav-chooser.c b/modules/cal-config-caldav/e-caldav-chooser.c
index 55143f0..fa5c9b7 100644
--- a/modules/cal-config-caldav/e-caldav-chooser.c
+++ b/modules/cal-config-caldav/e-caldav-chooser.c
@@ -111,6 +111,19 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED (
 		E_TYPE_SOURCE_AUTHENTICATOR,
 		e_caldav_chooser_authenticator_init))
 
+static gconstpointer
+compat_libxml_output_buffer_get_content (xmlOutputBufferPtr buf,
+                                         gsize *out_len)
+{
+#ifdef LIBXML2_NEW_BUFFER
+	*out_len = xmlOutputBufferGetSize (buf);
+	return xmlOutputBufferGetContent (buf);
+#else
+	*out_len = buf->buffer->use;
+	return buf->buffer->content;
+#endif
+}
+
 static void
 context_cancel_message (GCancellable *cancellable,
                         Context *context)
@@ -203,6 +216,8 @@ caldav_chooser_new_propfind (SoupSession *session,
 	xmlNodePtr node;
 	xmlNsPtr ns;
 	xmlOutputBufferPtr output;
+	gconstpointer content;
+	gsize length;
 	gpointer key;
 	va_list va;
 
@@ -268,9 +283,11 @@ caldav_chooser_new_propfind (SoupSession *session,
 	xmlNodeDumpOutput (output, doc, root, 0, 1, NULL);
 	xmlOutputBufferFlush (output);
 
+	content = compat_libxml_output_buffer_get_content (output, &length);
+
 	soup_message_set_request (
 		message, "application/xml", SOUP_MEMORY_COPY,
-		(gchar *) output->buffer->content, output->buffer->use);
+		content, length);
 
 	xmlOutputBufferClose (output);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]