From ff88d1f11176233438cace72da46a54c479495ab Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 13 Aug 2012 15:41:10 +0000 Subject: 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 --- 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); -- cgit v0.9.0.2