[evolution-data-server/libgdata-port: 3/5] Deleted e-d-s' internal libgdata and libgdata-google libraries



commit 9ee08f7c19aec856c8a5010ae63f19af0352e7f4
Author: Philip Withnall <philip tecnocode co uk>
Date:   Sun Apr 19 21:49:25 2009 +0100

    Deleted e-d-s' internal libgdata and libgdata-google libraries
---
 servers/google/Makefile.am                         |    1 -
 servers/google/libgdata-google/ChangeLog           |   93 -
 servers/google/libgdata-google/Makefile.am         |   35 -
 .../google/libgdata-google/gdata-google-service.c  |  734 -------
 .../google/libgdata-google/gdata-google-service.h  |   73 -
 .../google/libgdata-google/libgdata-google.pc.in   |   16 -
 servers/google/libgdata/ChangeLog                  |  102 -
 servers/google/libgdata/Makefile.am                |   39 -
 servers/google/libgdata/gdata-entry.c              | 2186 --------------------
 servers/google/libgdata/gdata-entry.h              |  275 ---
 servers/google/libgdata/gdata-feed.c               |  719 -------
 servers/google/libgdata/gdata-feed.h               |   75 -
 servers/google/libgdata/gdata-service-iface.c      |  112 -
 servers/google/libgdata/gdata-service-iface.h      |   82 -
 servers/google/libgdata/libgdata.pc.in             |   15 -
 15 files changed, 0 insertions(+), 4557 deletions(-)

diff --git a/servers/google/Makefile.am b/servers/google/Makefile.am
deleted file mode 100644
index dd73ff2..0000000
--- a/servers/google/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = libgdata libgdata-google
diff --git a/servers/google/libgdata-google/ChangeLog b/servers/google/libgdata-google/ChangeLog
deleted file mode 100644
index c8a126c..0000000
--- a/servers/google/libgdata-google/ChangeLog
+++ /dev/null
@@ -1,93 +0,0 @@
-2009-02-27  Matthew Barnes  <mbarnes redhat com>
-
-	** Fixes bug #570696
-
-	* Makefile.am:
-	Replace SOUP_CFLAGS and SOUP_LIBS with GDATA_CFLAGS and GDATA_LIBS.
-
-2009-02-26  Tobias Mueller  <tobiasmue svn gnome org>
-
-	** Fixes bug #573175
-
-	* gdata-google-service.c:
-	Use a proper format string to call g_set_error with.
-
-2009-01-14  Matthew Barnes  <mbarnes redhat com>
-
-	** Fixes part of bug #564543
-
-	* gdata-google-service.c (gdata_google_service_authenticate):
-	Call soup_form_encode_hash() instead of soup_form_encode_urlencoded().
-
-2008-08-16  Jörgen Scheibengruber  <mfcn gmx de>
-
-	* gdata-google-service.c (gdata_google_service_insert_entry):
-	Let soup COPY the xml, since it's owned by the entry
-
-2008-08-15  Matthew Barnes  <mbarnes redhat com>
-
-	* gdata-google-service.c (gdata_google_service_authenticate):
-	Apparently this is public API now, since it's called from
-	google_book_connect_to_google().  Declare it as such.
-
-2008-08-07  Milan Crha  <mcrha redhat com>
-
-	** Part of fix for bug #535745
-
-	* Makefile.am: Put public include files to google/libgdata-google.
-	* libgdata-google.pc.in: Do include also path to libgdata in CFLAGS.
-
-2008-06-13  Milan Crha  <mcrha redhat com>
-
-	** Fix for bug #521921 (Patch by Sebastian Keller)
-
-	* gdata-google-service.c: (send_and_handle_google_redirection),
-	(gdata_google_service_insert_entry),
-	(gdata_google_service_delete_entry),
-	(gdata_google_service_update_entry_with_link):
-	Handle redirects in a way that works with Google API. Fixes some cases
-	of entries not being created or deleted.
-	* gdata-google-service.c: (gdata_google_service_authenticate),
-	(gdata_google_service_get_feed): Code cleanup.
-
-2008-06-13  Wang Xin  <jedy wang sun com>
-
-	** Fix for bug #527544.
-
-	* gdata-google-service.c: Added gdata_google_service_set_proxy to
-	support proxy.
-
-2008-04-16  Ebby Wiselyn <ebbyw gnome org>
-	** Fix for bug #523630, #518656
-
-	* gdata-google-service.c: Added Error Handling Support
-
-	(gdata_google_error_quark), 
-	(gdata_google_service_update_entry),
-	(gdata_google_service_delete_entry),
-	(gdata_google_service_insert_entry),
-	(gdata_google_service_get_feed),
-	(gdata_google_service_set_credentials),
-	(gdata_google_service_insert_entry): 
-
-	* gdata-google-service.h: Added Error Handling Support
-
-	Committing on behalf of Jörgen Scheibengruber
-		  
-2008-01-15  Dan Winship  <danw gnome org>
-
-	* gdata-google-service.c: Update for libsoup 2.4
-	(service_authenticate): Use soup-forms methods.
-
-2008-01-05  Nyall Dawson  <nyall zombiepigs net>
-
-	** Fix for bug #504783
-
-	* gdata-google-service.c: add accountType=HOSTED_OR_GOOGLE to 
-	GOOGLE_CLIENT_LOGIN_MSG string to allow google apps support. 
-
-2008-01-05  Suman Manjunath  <msuman novell com>
-
-	** Created a ChangeLog
-
-
diff --git a/servers/google/libgdata-google/Makefile.am b/servers/google/libgdata-google/Makefile.am
deleted file mode 100644
index 61fc831..0000000
--- a/servers/google/libgdata-google/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-INCLUDES =							\
-	-DG_LOG_DOMAIN=\"libgdata-google\"			\
-	-I$(top_srcdir)						\
-	-I$(top_builddir)					\
-	-I$(top_srcdir)/servers/google/libgdata			\
-	$(GDATA_CFLAGS)
-
-lib_LTLIBRARIES = libgdata-google-1.2.la
-
-libgdata_google_1_2_la_SOURCES =				\
-	gdata-google-service.c					\
-	gdata-google-service.h				
-
-libgdata_google_1_2_la_LIBADD =					\
-	$(top_builddir)/servers/google/libgdata/libgdata-1.2.la	\
-	$(GDATA_LIBS)
-
-libgdata_google_1_2_la_LDFLAGS =	                       \
-        -version-info $(LIBGDATA_GOOGLE_CURRENT):$(LIBGDATA_GOOGLE_REVISION):$(LIBGDATA_GOOGLE_AGE) $(NO_UNDEFINED)
-
-libgdata_google_includedir = $(privincludedir)/google/libgdata-google
-
-libgdata_google_include_HEADERS =       		        \
-	gdata-google-service.h             	
-
-%-$(API_VERSION).pc: %.pc
-	 cp $< $@
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libgdata-google-$(API_VERSION).pc
-
-EXTRA_DIST = $(pkgconfig_DATA:-$(API_VERSION).pc=.pc.in)
-
-DISTCLEANFILES = $(pkgconfig_DATA)
-
diff --git a/servers/google/libgdata-google/gdata-google-service.c b/servers/google/libgdata-google/gdata-google-service.c
deleted file mode 100644
index 907d062..0000000
--- a/servers/google/libgdata-google/gdata-google-service.c
+++ /dev/null
@@ -1,734 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbywiselyn gmail com>
- *  Jason Willis <zenbrother gmail com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include <config.h>
-#include <gdata-service-iface.h>
-#include <gdata-google-service.h>
-
-#include <libsoup/soup.h>
-#include <string.h>
-
-#define GDATA_GOOGLE_SERVICE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GDATA_TYPE_GOOGLE_SERVICE, GDataGoogleServicePrivate))
-
-static GDataEntry * gdata_google_service_update_entry_with_link (GDataService *service, GDataEntry *entry, const gchar *edit_link, GError **error);
-static GDataEntry * gdata_google_service_insert_entry (GDataService *service, const gchar *feed_url, GDataEntry *entry, GError **error);
-static gboolean     gdata_google_service_delete_entry (GDataService *service, GDataEntry *entry, GError **error);
-static GDataFeed  * gdata_google_service_get_feed (GDataService *service, const gchar *feed_url, GError **error);
-static GDataEntry * gdata_google_service_update_entry (GDataService *service, GDataEntry *entry, GError **error);
-static void         gdata_google_service_set_credentials (GDataService *service, const gchar *username, const gchar *password);
-static void         gdata_google_service_set_proxy (GDataService *service, SoupURI *proxy);
-
-typedef struct _GDataGoogleServiceAuth GDataGoogleServiceAuth;
-struct _GDataGoogleServiceAuth {
-	/* Authentication Information */
-	gchar *username;
-	gchar *password;
-
-	gchar *token;
-};
-
-struct _GDataGoogleServicePrivate {
-	/* Session information */
-	gchar *name;
-	gchar *agent;
-
-	SoupSession *soup_session;
-	GDataGoogleServiceAuth *auth;
-
-	gboolean dispose_has_run;
-
-};
-
-enum {
-	PROP_0,
-	PROP_NAME,
-	PROP_AGENT,
-};
-
-
-static const gchar *GOOGLE_CLIENT_LOGIN = "https://www.google.com/accounts/ClientLogin";;
-
-GQuark
-gdata_google_error_quark (void)
-{
-	static GQuark error;
-	return error ? error : (error = g_quark_from_static_string ("gdata_google_error_quark"));
-}
-
-static void
-gdata_google_service_set_proxy (GDataService *service, SoupURI *proxy)
-{
-	GDataGoogleServicePrivate *priv;
-
-	g_return_if_fail (service != NULL);
-	g_return_if_fail (GDATA_IS_GOOGLE_SERVICE(service));
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(GDATA_GOOGLE_SERVICE(service));
-	if (proxy && priv && priv->soup_session)
-		g_object_set (priv->soup_session, SOUP_SESSION_PROXY_URI, proxy, NULL);
-}
-
-/* send a message without redirection and if it was required, then redirects itself */
-static void
-send_and_handle_google_redirection (SoupSession *soup_session, SoupMessage *msg)
-{
-	soup_message_set_flags (msg, SOUP_MESSAGE_NO_REDIRECT);
-	soup_session_send_message (soup_session, msg);
-	soup_message_set_flags (msg, 0);
-
-	if (SOUP_STATUS_IS_REDIRECTION (msg->status_code)) {
-		SoupURI *new_uri;
-		const char *new_loc;
-
-		new_loc = soup_message_headers_get (msg->response_headers, "Location");
-		g_return_if_fail (new_loc != NULL);
-
-		new_uri = soup_uri_new_with_base (soup_message_get_uri (msg), new_loc);
-		if (!new_uri) {
-			soup_message_set_status_full (msg,
-						      SOUP_STATUS_MALFORMED,
-						      "Invalid Redirect URL");
-			return;
-		}
-
-		soup_message_set_uri (msg, new_uri);
-		soup_uri_free (new_uri);
-
-		soup_session_send_message (soup_session, msg);
-	}
-}
-
-static void
-gdata_google_service_set_credentials (GDataService *service, const gchar *username, const gchar *password)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleServiceAuth *auth;
-
-	g_return_if_fail (service != NULL);
-	g_return_if_fail (GDATA_IS_GOOGLE_SERVICE(service));
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(GDATA_GOOGLE_SERVICE(service));
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-
-	auth->username = g_strdup(username);
-	auth->password = g_strdup(password);
-}
-
-static gboolean
-service_is_authenticated (GDataGoogleService *service)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleServiceAuth *auth;
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(service);
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-
-	if (auth->token == NULL)
-		return FALSE;
-	else
-		return TRUE;
-}
-
-
-/**
- *
- * gdata_google_service_get_feed:
- * @service A GDataService Object
- * @feed_url Feed Url , the private url to send request to , needs authentication
- * @entry A GDataFeed Object
- * returns the newly inserted entry
- *
- **/
-
-static GDataFeed *
-gdata_google_service_get_feed (GDataService *service, const gchar *feed_url, GError **error)
-{
-	GDataFeed *feed = NULL;
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleServiceAuth *auth;
-	SoupSession *soup_session;
-	SoupMessage *msg;
-
-	g_return_val_if_fail(service != NULL, NULL);
-	g_return_val_if_fail(GDATA_IS_GOOGLE_SERVICE(service),NULL);
-
-	if (!service_is_authenticated( GDATA_GOOGLE_SERVICE(service) )) {
-		if (FALSE == gdata_google_service_authenticate(GDATA_GOOGLE_SERVICE(service), error))
-			return NULL;
-	}
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE( GDATA_GOOGLE_SERVICE(service) );
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-	soup_session = (SoupSession *)priv->soup_session;
-	msg = NULL;
-	msg = soup_message_new(SOUP_METHOD_GET, feed_url);
-
-	soup_message_headers_append(msg->request_headers,
-			"Authorization", (gchar *)g_strdup_printf("GoogleLogin auth=%s", auth->token));
-
-	soup_session_send_message (soup_session, msg);
-	if (msg->status_code != 200) {
-		g_set_error (error, SOUP_HTTP_ERROR,
-					 msg->status_code, "%s", msg->reason_phrase);
-
-		g_object_unref (msg);
-		return NULL;
-	}
-
-	if (msg->response_body->data && strlen (msg->response_body->data) > 0) {
-		feed = gdata_feed_new_from_xml(msg->response_body->data,
-					       msg->response_body->length);
-	}
-
-	if (NULL == feed) {
-		g_set_error (error, GDATA_GOOGLE_ERROR,
-					 -1, "GData protocol error");
-	}
-
-	g_object_unref(msg);
-
-	return feed;
-}
-
-
-/**
- *
- * gdata_google_service_insert_entry:
- * @service A #GDataService Object
- * @feed_url Feed Url , this is the private url of the author which requires authentication
- * @entry A #GDataEntry Object
- * returns the newly inserted entry
- *
- **/
-static GDataEntry *
-gdata_google_service_insert_entry (GDataService *service, const gchar *feed_url, GDataEntry *entry, GError **error)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleServiceAuth *auth;
-	GDataEntry *updated_entry = NULL;
-	SoupSession *soup_session;
-	SoupMessage *msg;
-	gchar *entry_xml;
-
-	g_return_val_if_fail(service != NULL, NULL);
-	g_return_val_if_fail(GDATA_IS_GOOGLE_SERVICE(service), NULL);
-
-	if (!service_is_authenticated( GDATA_GOOGLE_SERVICE(service) )) {
-		if (FALSE == gdata_google_service_authenticate(GDATA_GOOGLE_SERVICE(service), error))
-			return NULL;
-	}
-
-	entry_xml = gdata_entry_generate_xml (entry);
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(GDATA_GOOGLE_SERVICE(service));
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-	soup_session = (SoupSession *)priv->soup_session;
-
-	msg = soup_message_new(SOUP_METHOD_POST, feed_url);
-	soup_message_set_http_version (msg, SOUP_HTTP_1_0);
-
-	soup_message_headers_append(msg->request_headers,
-				    "Authorization",
-				    (gchar *)g_strdup_printf("GoogleLogin auth=%s",
-				    auth->token));
-
-	soup_message_set_request (msg,
-				"application/atom+xml",
-				SOUP_MEMORY_COPY,
-				entry_xml,
-				strlen(entry_xml));
-
-	/* Handle redirects ourself, since soup does not behave like google-api expects */
-	send_and_handle_google_redirection (soup_session, msg);
-
-	if (msg->status_code != 201) {
-		g_set_error (error, SOUP_HTTP_ERROR,
-					 msg->status_code, "%s", msg->reason_phrase);
-		g_object_unref (msg);
-		return NULL;
-	}
-
-	if (msg->response_body->data && strlen (msg->response_body->data) > 0) {
-		updated_entry = gdata_entry_new_from_xml (msg->response_body->data);
-	}
-
-	if (NULL == updated_entry) {
-		g_set_error (error, GDATA_GOOGLE_ERROR,
-					 -1, "GData protocol error");
-	}
-
-	g_object_unref (msg);
-	return updated_entry;
-}
-
-
-/**
- *
- * gdata_google_service_delete_entry:
- * @service A #GDataService Object
- * @feed_url Feed Url , this is the private url of the author which requires authentication
- * @entry A #GDataEntry Object
- * Removes the entry
- *
- **/
-static gboolean
-gdata_google_service_delete_entry (GDataService *service, GDataEntry *entry, GError **error)
-{
-	GDataGoogleServiceAuth *auth;
-	GDataGoogleServicePrivate *priv;
-	SoupSession *soup_session;
-	SoupMessage *msg;
-	const gchar *entry_edit_url;
-	gboolean retval = FALSE;
-
-	g_return_val_if_fail (service !=NULL, FALSE);
-	g_return_val_if_fail (GDATA_IS_GOOGLE_SERVICE(service), FALSE);
-
-	if (!service_is_authenticated( GDATA_GOOGLE_SERVICE(service) )) {
-		if (FALSE == gdata_google_service_authenticate(GDATA_GOOGLE_SERVICE(service), error))
-			return FALSE;
-	}
-
-	entry_edit_url = gdata_entry_get_edit_link (entry);
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE (GDATA_GOOGLE_SERVICE (service));
-	auth = (GDataGoogleServiceAuth *) priv->auth;
-	soup_session = 	(SoupSession *)priv->soup_session;
-
-	msg = soup_message_new (SOUP_METHOD_DELETE, entry_edit_url);
-	soup_message_headers_append (msg->request_headers,
-				     "Authorization",
-				     (gchar *)g_strdup_printf ("GoogleLogin auth=%s",
-				     auth->token));
-
-	/* Handle redirects ourself */
-	send_and_handle_google_redirection (soup_session, msg);
-
-    	if (msg->status_code != 200) {
-		g_set_error (error, SOUP_HTTP_ERROR,
-					 msg->status_code, "%s", msg->reason_phrase);
-	} else {
-		retval = TRUE;
-	}
-
-	g_object_unref (msg);
-
-	return retval;
-}
-
-/**
- *
- * gdata_google_service_update_entry:
- * @service A GDataService Object
- * @feed_url Feed Url , this is the private url of the author which requires authentication
- * @entry A GDataEntry Object
- * updates the entry
- *
- **/
-static GDataEntry*
-gdata_google_service_update_entry (GDataService *service, GDataEntry *entry, GError **error)
-{
-	const char *entry_edit_url;
-
-	g_return_val_if_fail (service !=NULL, FALSE);
-	g_return_val_if_fail (GDATA_IS_GOOGLE_SERVICE (service), FALSE);
-
-	entry_edit_url = gdata_entry_get_edit_link (entry);
-
-	return gdata_google_service_update_entry_with_link (service, entry, entry_edit_url, error);
-}
-
-
-/**
- *
- * gdata_google_update_entry_with_link:
- * @service A #GDataService Object
- * @edit_link url of the edit link of the entry
- * @entry A #GDataEntry Object
- * Updates the entry
- *
- **/
-static GDataEntry*
-gdata_google_service_update_entry_with_link (GDataService *service, GDataEntry *entry, const gchar *edit_link, GError **error)
-{
-	GDataGoogleServiceAuth *auth;
-	GDataGoogleServicePrivate *priv;
-	SoupSession *soup_session;
-	SoupMessage *msg;
-	gchar *entry_xml;
-	GDataEntry *updated_entry = NULL;
-
-	g_return_val_if_fail (service !=NULL, FALSE);
-	g_return_val_if_fail (GDATA_IS_GOOGLE_SERVICE (service), FALSE);
-	g_return_val_if_fail (edit_link !=NULL, FALSE);
-
-	if (!service_is_authenticated( GDATA_GOOGLE_SERVICE(service) )) {
-		if (FALSE == gdata_google_service_authenticate(GDATA_GOOGLE_SERVICE(service), error))
-			return NULL;
-	}
-
-	entry_xml = gdata_entry_generate_xml (entry);
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE (GDATA_GOOGLE_SERVICE(service));
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-	soup_session = (SoupSession *)priv->soup_session;
-
-	msg = soup_message_new (SOUP_METHOD_PUT, edit_link);
-
-	soup_message_headers_append (msg->request_headers,
-				     "Authorization",
-				     (gchar *)g_strdup_printf ("GoogleLogin auth=%s",
-				     auth->token));
-
-	soup_message_set_request (msg,
-				"application/atom+xml",
-				SOUP_MEMORY_COPY,
-				entry_xml,
-				strlen(entry_xml));
-
-	/* Handle redirects ourself */
-	send_and_handle_google_redirection (soup_session, msg);
-
-    	if (msg->status_code != 200) {
-		g_set_error (error, SOUP_HTTP_ERROR,
-					 msg->status_code, "%s", msg->reason_phrase);
-		g_object_unref (msg);
-		return updated_entry;
-	}
-
-	if (msg->response_body->data && strlen (msg->response_body->data) > 0) {
-		updated_entry = gdata_entry_new_from_xml (msg->response_body->data);
-	}
-
-	if (NULL == updated_entry) {
-		g_set_error (error, GDATA_GOOGLE_ERROR,
-					 -1, "GData protocol error");
-	}
-
-	g_object_unref (msg);
-	return updated_entry;
-}
-
-static void gdata_google_service_iface_init(gpointer  g_iface, gpointer iface_data)
-{
-	GDataServiceIface *iface = (GDataServiceIface *)g_iface;
-
-	iface->set_proxy = gdata_google_service_set_proxy;
-	iface->set_credentials = gdata_google_service_set_credentials;
-	iface->get_feed = gdata_google_service_get_feed;
-	iface->insert_entry = gdata_google_service_insert_entry;
-	iface->delete_entry = gdata_google_service_delete_entry;
-	iface->update_entry = gdata_google_service_update_entry;
-	iface->update_entry_with_link = gdata_google_service_update_entry_with_link;
-	return;
-}
-
-static void gdata_google_service_instance_init(GTypeInstance *instance,
-		gpointer      g_class)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleService *self = (GDataGoogleService *)instance;
-
-	/* Private data set by g_type_class_add_private */
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(self);
-	priv->dispose_has_run = FALSE;
-
-	priv->name = NULL;
-	priv->agent = NULL;
-
-
-	priv->auth = g_new0(GDataGoogleServiceAuth,1);
-	priv->auth->username = NULL;
-	priv->auth->password = NULL;
-	priv->auth->token = NULL;
-
-	priv->soup_session = soup_session_sync_new();
-}
-
-static void gdata_google_service_dispose(GObject *obj)
-{
-	GObjectClass *parent_class;
-	GDataGoogleServiceClass *klass;
-
-	GDataGoogleService *self = (GDataGoogleService *)obj;
-	GDataGoogleServicePrivate *priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(self);
-
-	if (priv->dispose_has_run) {
-		/* Don't run dispose twice */
-		return;
-	}
-	priv->dispose_has_run = TRUE;
-
-	if (priv->soup_session) {
-		g_object_unref (priv->soup_session);
-		priv->soup_session = NULL;
-	}
-
-	/* Chain up to the parent class */
-	klass = GDATA_GOOGLE_SERVICE_CLASS(g_type_class_peek(GDATA_TYPE_GOOGLE_SERVICE));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-
-	parent_class->dispose(obj);
-}
-
-static void gdata_google_service_finalize(GObject *obj)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleServiceAuth *auth;
-	GDataGoogleService *self = GDATA_GOOGLE_SERVICE(obj);
-	GObjectClass *parent_class;
-	GDataGoogleServiceClass *klass;
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(self);
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-
-	if (priv->name != NULL)
-		g_free(priv->name);
-
-	if (priv->agent != NULL)
-		g_free(priv->agent);
-
-	if (auth->username != NULL)
-		g_free(auth->username);
-
-	if (auth->password)
-		g_free(auth->password);
-
-	if (auth->token != NULL) {
-		g_free(auth->token);
-	}
-	g_free(auth);
-
-	/* Chain up to the parent class */
-	klass = GDATA_GOOGLE_SERVICE_CLASS(g_type_class_peek(GDATA_TYPE_GOOGLE_SERVICE));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	parent_class->finalize(obj);
-}
-
-static void gdata_google_service_get_property (GObject *obj,
-		guint    property_id,
-		GValue  *value,
-		GParamSpec *pspec)
-{
-	GDataGoogleServicePrivate *priv;
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(obj);
-
-	switch (property_id) {
-		case PROP_NAME:
-			g_value_set_string(value, priv->name);
-			break;
-		case PROP_AGENT:
-			g_value_set_string(value, priv->name);
-			break;
-		default:
-			/* Invalid Property */
-			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec);
-			break;
-	}
-}
-
-static void gdata_google_service_set_property (GObject *obj,
-		guint    property_id,
-		const GValue *value,
-		GParamSpec   *pspec)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleService *self = (GDataGoogleService *) obj;
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(self);
-
-	switch (property_id) {
-		case PROP_NAME:
-			if (priv->name != NULL)
-				g_free(priv->name);
-			priv->name = g_value_dup_string(value);
-			break;
-		case PROP_AGENT:
-			if (priv->agent != NULL)
-				g_free(priv->agent);
-			priv->agent = g_value_dup_string(value);
-			break;
-		default:
-			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec);
-			break;
-	}
-}
-
-
-static void gdata_google_service_class_init(gpointer g_class,
-		gpointer g_class_data)
-{
-	GObjectClass *gobject_class = G_OBJECT_CLASS(g_class);
-	GDataGoogleServiceClass *klass = GDATA_GOOGLE_SERVICE_CLASS(g_class);
-
-	g_type_class_add_private(klass, sizeof (GDataGoogleServicePrivate));
-
-	gobject_class->set_property = gdata_google_service_set_property;
-	gobject_class->get_property = gdata_google_service_get_property;
-	gobject_class->dispose  = gdata_google_service_dispose;
-	gobject_class->finalize = gdata_google_service_finalize;
-
-
-	g_object_class_install_property(gobject_class, PROP_NAME,
-			g_param_spec_string("name", "Name",
-				"The name (e.g. 'cl') of the service",
-				NULL,
-				G_PARAM_READWRITE |
-				G_PARAM_CONSTRUCT_ONLY |
-				G_PARAM_STATIC_NAME |
-				G_PARAM_STATIC_NICK |
-				G_PARAM_STATIC_BLURB));
-
-
-	g_object_class_install_property(gobject_class, PROP_AGENT,
-			g_param_spec_string("agent", "Agent",
-				"The agent (e.g 'evolution', 'tinymail') of the calling program",
-				NULL,
-				G_PARAM_READWRITE |
-				G_PARAM_CONSTRUCT_ONLY |
-				G_PARAM_STATIC_NAME |
-				G_PARAM_STATIC_NICK |
-				G_PARAM_STATIC_BLURB));
-
-	return;
-}
-
-
-GType  gdata_google_service_get_type (void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY(type == 0))
-	{
-		static const GTypeInfo info =
-		{
-			sizeof (GDataGoogleServiceClass),
-			NULL,   /* base_init */
-			NULL,   /* base_finalize */
-			(GClassInitFunc) gdata_google_service_class_init, /* class_init */
-			NULL,   /* class_finalize */
-			NULL,   /* class_data */
-			sizeof (GDataGoogleService),
-			0,      /* n_preallocs */
-			gdata_google_service_instance_init    /* instance_init */
-		};
-
-		static const GInterfaceInfo gdata_google_service_iface_info =
-		{
-			(GInterfaceInitFunc) gdata_google_service_iface_init, /* interface_init */
-			NULL,         /* interface_finalize */
-			NULL          /* interface_data */
-		};
-
-		type = g_type_register_static (G_TYPE_OBJECT,
-				"GDataGoogleServiceType",
-				&info, 0);
-
-		g_type_add_interface_static (type, GDATA_TYPE_SERVICE,
-				&gdata_google_service_iface_info);
-
-	}
-
-	return type;
-}
-
-
-/*********API******* */
-
-/**
- *
- * gdata_google_service_new:
- * @service_name
- * @agent
- * Returns a new #GDataGoogleService Object
- *
- **/
-GDataGoogleService *
-gdata_google_service_new(const gchar *service_name, const gchar *agent)
-{
-	return g_object_new(GDATA_TYPE_GOOGLE_SERVICE,
-			"name", service_name,
-			"agent",agent,
-			NULL);
-}
-
-gboolean
-gdata_google_service_authenticate (GDataGoogleService *service, GError **error)
-{
-	GDataGoogleServicePrivate *priv;
-	GDataGoogleServiceAuth *auth;
-	SoupMessage *msg;
-	GHashTable *request_form;
-	gchar *request_body;
-	gchar *token = NULL;
-
-	priv = GDATA_GOOGLE_SERVICE_GET_PRIVATE(service);
-	auth = (GDataGoogleServiceAuth *)priv->auth;
-
-	request_form = g_hash_table_new (g_str_hash, g_str_equal);
-	g_hash_table_insert (request_form, "Email", auth->username);
-	g_hash_table_insert (request_form, "Passwd", auth->password);
-	g_hash_table_insert (request_form, "service", priv->name);
-	g_hash_table_insert (request_form, "source", priv->agent);
-	g_hash_table_insert (request_form, "accountType", "HOSTED_OR_GOOGLE");
-	request_body = soup_form_encode_hash (request_form);
-	g_hash_table_destroy (request_form);
-
-	msg = soup_message_new(SOUP_METHOD_POST, GOOGLE_CLIENT_LOGIN);
-	soup_message_set_http_version(msg, SOUP_HTTP_1_0);
-	soup_message_set_request (msg, "application/x-www-form-urlencoded",
-				  SOUP_MEMORY_TAKE,
-				  request_body, strlen(request_body));
-
-	soup_session_send_message (priv->soup_session, msg);
-
-    	if (msg->status_code != 200) {
-		g_set_error (error, SOUP_HTTP_ERROR,
-					 msg->status_code, "%s", msg->reason_phrase);
-		g_object_unref(msg);
-		return (NULL != token);
-	}
-	if (msg->response_body->data && strlen (msg->response_body->data) > 0) {
-		gchar *auth_begin = NULL;
-		gchar *auth_end = NULL;
-
-		auth_begin = strstr(msg->response_body->data, "Auth=");
-
-		if (!auth_begin) {
-			return (NULL != token);
-		}
-
-		auth_end  = strstr(auth_begin, "\n") - 5;
-
-		if (auth_begin && strlen(auth_begin) > 5) {
-			token = g_strndup(auth_begin + strlen("Auth="), auth_end - auth_begin);
-		}
-	}
-
-	auth->token = token;
-	if (NULL == token) {
-		g_set_error (error, GDATA_GOOGLE_ERROR,
-					 -1, "GData protocol error");
-	}
-
-	return (NULL != token);
-}
diff --git a/servers/google/libgdata-google/gdata-google-service.h b/servers/google/libgdata-google/gdata-google-service.h
deleted file mode 100644
index b7295c7..0000000
--- a/servers/google/libgdata-google/gdata-google-service.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbywiselyn gmail com>
- *  Jason Willis <zenbrother gmail com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef _GDATA_GOOGLE_SERVICE_H_
-#define _GDATA_GOOGLE_SERVICE_H_
-
-#include <glib.h>
-#include <glib-object.h>
-
-#include "gdata-feed.h"
-#include "gdata-entry.h"
-
-G_BEGIN_DECLS
-
-#define GDATA_TYPE_GOOGLE_SERVICE           (gdata_google_service_get_type())
-#define GDATA_GOOGLE_SERVICE(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj), GDATA_TYPE_GOOGLE_SERVICE, GDataGoogleService))
-#define GDATA_GOOGLE_SERVICE_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass), GDATA_TYPE_GOOGLE_SERVICE, GDataGoogleServiceClass))
-#define GDATA_IS_GOOGLE_SERVICE(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj), GDATA_TYPE_GOOGLE_SERVICE))
-#define GDATA_IS_GOOGLE_SERVICE_CLASS(klass)(G_TYPE_CHECK_CLASS_TYPE((klass), GDATA_TYPE_GOOGLE_SERVICE))
-#define GDATA_GOOGLE_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GDATA_TYPE_GOOGLE_SERVICE, GDataGoogleServiceClass))
-
-#define GDATA_GOOGLE_ERROR gdata_google_error_quark ()
-
-typedef struct _GDataGoogleService GDataGoogleService;
-typedef struct _GDataGoogleServiceClass GDataGoogleServiceClass;
-typedef struct _GDataGoogleServicePrivate GDataGoogleServicePrivate;
-
-struct _GDataGoogleService {
-  GObject parent;
-
-  /* private */
-
-};
-
-struct _GDataGoogleServiceClass {
-  GObjectClass parent_class;
-
-  /* Public Methods - Inherited from GDATA_SERVICE_IFACE */
-};
-
-GType  gdata_google_service_get_type(void);
-GQuark gdata_google_error_quark(void);
-
-/**API******/
-
-GDataGoogleService * gdata_google_service_new(const gchar *serviceName, const gchar *agent);
-gboolean gdata_google_service_authenticate (GDataGoogleService *service, GError **error);
-
-G_END_DECLS
-
-#endif
-
diff --git a/servers/google/libgdata-google/libgdata-google.pc.in b/servers/google/libgdata-google/libgdata-google.pc.in
deleted file mode 100644
index 8ae75ca..0000000
--- a/servers/google/libgdata-google/libgdata-google.pc.in
+++ /dev/null
@@ -1,16 +0,0 @@
-prefix= prefix@
-exec_prefix= exec_prefix@
-libdir= libdir@
-includedir= includedir@
-datarootdir= datarootdir@
-datadir= datadir@
-
-privincludedir= privincludedir@
-
-Name: libgdata-google
-Description: Client library for accessing google POA through SOAP interface
-Version: @VERSION@
-Requires: libsoup-2.4 >= @LIBSOUP_REQUIRED@ 
-Requires.private: libgdata-1.2
-Libs: -L${libdir} -lgdata-google-1.2
-Cflags: -I${privincludedir}/google/libgdata-google
diff --git a/servers/google/libgdata/ChangeLog b/servers/google/libgdata/ChangeLog
deleted file mode 100644
index a406fce..0000000
--- a/servers/google/libgdata/ChangeLog
+++ /dev/null
@@ -1,102 +0,0 @@
-2009-02-27  Matthew Barnes  <mbarnes redhat com>
-
-	** Fixes bug #570696
-
-	* Makefile.am:
-	Replace SOUP_CFLAGS and SOUP_LIBS with GDATA_CFLAGS and GDATA_LIBS.
-
-2008-08-07  Milan Crha  <mcrha redhat com>
-
-	** Part of fix for bug #535745
-
-	* Makefile.am:
-	* libgdata.pc.in: Put public include files to google/libgdata.
-	* gdata-entry.c: (gdata_entry_new_from_xmlptr): When reading custom
-	values from the node, and the node doesn't contain text value, then
-	try to read its value from 'value' attribute.
-
-2008-07-28  Milan Crha  <mcrha redhat com>
-
-	** Part of fix for bug #468671
-
-	* gdata-entry.h: (gdata_entry_get_custom), (gdata_entry_set_custom):
-	* gdata-entry.c: (gdata_entry_get_custom), (gdata_entry_set_custom):
-	Read/write custom values withing entry.
-	* gdata-feed.h: (gdata_feed_get_timezone):
-	* gdata-feed.c: (gdata_feed_get_timezone), (struct _GDataFeedPrivate),
-	(gdata_feed_init), (gdata_feed_finalize), (gdata_feed_new_from_xml):
-	Read timezone name of the calendar and let it be available for others.
-
-2008-06-13  Wang Xin  <jedy wang sun com>
-
-	** Fix for bug #527544.
-
-	* gdata-service-iface.c:
-	* gdata-service-iface.h: Added new interface set_proxy.
-
-2008-04-16  Ebby Wiselyn    <ebbyw gnome org>
-	** Fix for bug #523630
-
-	* gdata-entry.c: Added API's for GDataContact
-	(gdata_entry_get_email_addresses),
-	(gdata_entry_get_primary_email_address),
-	(gdata_entry_get_im_addresses),
-	(gdata_entry_get_primary_im_address),
-	(gdata_entry_get_organizations),
-	(gdata_entry_primary_organization),
-	(gdata_entry_get_phone_numbers),
-	(gdata_entry_get_primary_phone_number),
-	(gdata_entry_get_postal_address),
-	(gdata_entry_get_primary_postal_address),
-	(gdata_entry_is_deleted),
-	(gdata_entry_set_email_addresses),	
-	(gdata_entry_set_im_addresses),
-	(gdata_entry_set_organizations),
-	(gdata_entry_set_phone_numbers),
-	(gdata_entry_set_postal_addresses),
-	(gdata_entry_set_im_addresses),
-	(email_address_to_xmlnode),
-	(xmlnode_to_email_address),
-	(xmlnode_to_im_address),
-	(xmlnode_to_organization),
-	(xmlnode_to_phone_number),
-	(xmlnode_to_postal_address),
-	(email_address_to_xmlnode),
-	(im_address_to_xmlnode),
-	(organization_to_xmlnode),
-	(phone_number_to_xmlnode),
-	(postal_address_to_xmlnode),
-	(gdata_entry_new_from_xmlptr),
-	(gdata_entry_generate_xml),
-	(gdata_entry_finalize):
-
-	* gdata-entry.h: Created GData Types for Contacts 
-	 GDataEntryEmailAddress, GDataEntryImAddress, GDataEntryOrganization, 
-	 GDataEntryPhoneNumber, GDataEntryPostalAddress.
-
-	* gdata-service-iface.h: Updated google service API's for error handling	
-	
-	* gdata-feed.c: Added function to retrieve updated time of feed.
-	(gdata_feed_new_from_xml):	
-	
-	* gdata-feed.h: Added function prototype
-
-	* gdata-service-iface.c: Updated google service API's for error handling
-	(gdata_service_get_feed),
-	(gdata_service_insert_entry),
-	(gdata_service_update_entry),
-	(gdata_service_get_entry),
-	(gdata_service_delete_entry):
-
-	
-	Committing on behalf of Jörgen Scheibengruber
-		
-2008-01-17  Kjartan Maraas  <kmaraas gnome org>
-
-	* libgdata.pc.in: Adapt to newer libsoup
-
-2008-01-05  Suman Manjunath  <msuman novell com>
-
-	** Created a ChangeLog
-
-
diff --git a/servers/google/libgdata/Makefile.am b/servers/google/libgdata/Makefile.am
deleted file mode 100644
index e12dcf9..0000000
--- a/servers/google/libgdata/Makefile.am
+++ /dev/null
@@ -1,39 +0,0 @@
-INCLUDES =						\
-	-DG_LOG_DOMAIN=\"libgdata\"			\
-	-I$(top_srcdir)					\
-	-I$(top_builddir)				\
-	$(GDATA_CFLAGS)
-
-lib_LTLIBRARIES = libgdata-1.2.la
-
-libgdata_1_2_la_SOURCES =			\
-	gdata-feed.c                            \
-	gdata-feed.h 		                \
-	gdata-entry.c				\
-	gdata-entry.h				\
-	gdata-service-iface.c			\
-	gdata-service-iface.h			
-
-libgdata_1_2_la_LIBADD =			\
-	$(GDATA_LIBS)
-
-libgdata_1_2_la_LDFLAGS =                       \
-        -version-info $(LIBGDATA_CURRENT):$(LIBGDATA_REVISION):$(LIBGDATA_AGE) $(NO_UNDEFINED)
-
-libgdataincludedir = $(privincludedir)/google/libgdata
-
-libgdatainclude_HEADERS =                  	\
-        gdata-feed.h                       	\
-	gdata-entry.h                      	\
-	gdata-service-iface.h              	
-
-%-$(API_VERSION).pc: %.pc
-	 cp $< $@
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libgdata-$(API_VERSION).pc
-
-EXTRA_DIST = $(pkgconfig_DATA:-$(API_VERSION).pc=.pc.in)
-
-DISTCLEANFILES = $(pkgconfig_DATA)
-
diff --git a/servers/google/libgdata/gdata-entry.c b/servers/google/libgdata/gdata-entry.c
deleted file mode 100644
index 69fb416..0000000
--- a/servers/google/libgdata/gdata-entry.c
+++ /dev/null
@@ -1,2186 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbyw gnome org>
- *  Jason Willis <zenbrother gmail com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-
-#include <config.h>
-
-/* LibXML2 includes */
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-#include <libxml/xpath.h>
-#include <libxml/xpathInternals.h>
-
-#include <string.h>
-#include <gdata-entry.h>
-
-#define GDATA_ENTRY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GDATA_TYPE_ENTRY, GDataEntryPrivate))
-
-struct _GDataEntryPrivate {
-	GSList *authors;
-	GSList *categories;
-	GSList *links;
-	GHashTable *field_table;
-	GSList *attendees;
-	gchar *location;
-	gchar *content;
-    	gchar *title;
-	gchar *reminder;
-	gchar *status;
-	gchar *visibility;
-	gchar *start_time;
-	gchar *end_time;
-	gchar *send_notification;
-	gchar *transparency;
-	gchar *id;
-
-	gboolean entry_needs_update;
-	gboolean has_attendees;
-	gchar *entry_xml;
-
-	gboolean dispose_has_run;
-	gboolean is_recurrent;
-
-	/* Contacts Data */
-
-	GSList *email_addresses;
-	GSList *im_addresses;
-	GSList *organizations;
-	GSList *phone_numbers;
-	GSList *postal_addresses;
-	gboolean is_deleted;
-};
-
-static void destroy_authors (gpointer data, gpointer user_data)
-{
-	GDataEntryAuthor *author = (GDataEntryAuthor *)data;
-	if (author->email != NULL)
-		g_free(author->email);
-
-	if (author->name != NULL)
-		g_free(author->name);
-
-	if (author->uri != NULL)
-		g_free(author->uri);
-
-	g_free(author);
-}
-
-static void destroy_categories (gpointer data, gpointer user_data)
-{
-	GDataEntryCategory *category = (GDataEntryCategory *)data;
-	if (category->label != NULL)
-		g_free(category->label);
-
-	if (category->scheme != NULL)
-		g_free(category->scheme);
-
-	if (category->scheme_prefix != NULL)
-		g_free(category->scheme_prefix);
-
-	if (category->scheme_suffix != NULL)
-		g_free(category->scheme_suffix);
-
-	if (category->term != NULL)
-		g_free(category->term);
-
-	g_free(category);
-}
-
-static void destroy_links (gpointer data, gpointer user_data)
-{
-	GDataEntryLink *link = (GDataEntryLink *)data;
-	if (link->href != NULL)
-		g_free(link->href);
-
-	if (link->rel != NULL)
-		g_free(link->rel);
-
-	if (link->title != NULL)
-		g_free(link->title);
-
-	if (link->type != NULL)
-		g_free(link->type);
-
-	g_free(link);
-}
-
-static void destroy_email_address (gpointer data, gpointer user_data)
-{
-	GDataEntryEmailAddress *email = data;
-	g_free (email->address);
-	g_free (email->label);
-	g_free (email->rel);
-	g_free (email);
-}
-
-static void destroy_im_address (gpointer data, gpointer user_data)
-{
-	GDataEntryIMAddress *im = data;
-	g_free (im->address);
-	g_free (im->protocol);
-	g_free (im->label);
-	g_free (im->rel);
-	g_free (im);
-}
-
-static void destroy_organization (gpointer data, gpointer user_data)
-{
-	GDataEntryOrganization *org = data;
-	g_free (org->name);
-	g_free (org->title);
-	g_free (org->label);
-	g_free (org->rel);
-	g_free (org);
-}
-
-static void destroy_phone_number (gpointer data, gpointer user_data)
-{
-	GDataEntryPhoneNumber *phone = data;
-	g_free (phone->number);
-	g_free (phone->uri);
-	g_free (phone->label);
-	g_free (phone->rel);
-	g_free (phone);
-}
-
-static void destroy_postal_address (gpointer data, gpointer user_data)
-{
-	GDataEntryPostalAddress *address = data;
-	g_free (address->address);
-	g_free (address->label);
-	g_free (address->rel);
-	g_free (address);
-}
-
-
-enum {
-	PROP_0,
-};
-
-static void gdata_entry_init (GTypeInstance *instance,
-		gpointer      g_class)
-{
-	GDataEntryPrivate *priv;
-	GDataEntry *self = (GDataEntry *)instance;
-
-	/* Private data set by g_type_class_add_private */
-	priv = GDATA_ENTRY_GET_PRIVATE(self);
-	priv->dispose_has_run = FALSE;
-	priv->authors = NULL;
-	priv->links = NULL;
-	priv->categories = NULL;
-	priv->content = NULL;
-	priv->title = NULL;
-	priv->field_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-	priv->entry_needs_update = FALSE;
-	priv->entry_xml = NULL;
-	priv->is_recurrent = FALSE;
-}
-
-static void gdata_entry_dispose (GObject *obj)
-{
-	GObjectClass *parent_class;
-	GDataEntryClass *klass;
-	GDataEntry *self = GDATA_ENTRY(obj);
-	GDataEntryPrivate *priv = GDATA_ENTRY_GET_PRIVATE(self);
-
-	if (priv->dispose_has_run) {
-		/* Don't run dispose twice */
-		return;
-	}
-	priv->dispose_has_run = TRUE;
-	/* Chain up to the parent class */
-	klass = GDATA_ENTRY_CLASS(g_type_class_peek(GDATA_TYPE_ENTRY));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	parent_class->dispose(obj);
-}
-
-static void gdata_entry_finalize (GObject *obj)
-{
-	GDataEntryPrivate *priv;
-	GDataEntry *self = GDATA_ENTRY(obj);
-	GObjectClass *parent_class;
-	GDataEntryClass *klass;
-
-	priv = GDATA_ENTRY_GET_PRIVATE(self);
-	if (priv->authors != NULL) {
-		g_slist_foreach(priv->authors, (GFunc) destroy_authors, NULL);
-		g_slist_free(priv->authors);
-	}
-	if (priv->links != NULL) {
-		g_slist_foreach(priv->links, (GFunc) destroy_links, NULL);
-		g_slist_free(priv->links);
-	}
-
-	if (priv->categories != NULL) {
-		g_slist_foreach(priv->categories, (GFunc) destroy_categories, NULL);
-		g_slist_free(priv->categories);
-	}
-
-	if (priv->email_addresses != NULL) {
-		g_slist_foreach(priv->email_addresses, (GFunc) destroy_email_address, NULL);
-		g_slist_free(priv->email_addresses);
-	}
-
-	if (priv->im_addresses != NULL) {
-		g_slist_foreach(priv->im_addresses, (GFunc) destroy_im_address, NULL);
-		g_slist_free(priv->im_addresses);
-	}
-
-	if (priv->organizations != NULL) {
-		g_slist_foreach(priv->organizations, (GFunc) destroy_organization, NULL);
-		g_slist_free(priv->organizations);
-	}
-
-	if (priv->phone_numbers != NULL) {
-		g_slist_foreach(priv->phone_numbers, (GFunc) destroy_phone_number, NULL);
-		g_slist_free(priv->phone_numbers);
-	}
-
-	if (priv->postal_addresses != NULL) {
-		g_slist_foreach(priv->postal_addresses, (GFunc) destroy_postal_address, NULL);
-		g_slist_free(priv->postal_addresses);
-	}
-
-	if (priv->field_table != NULL)
-		g_hash_table_destroy(priv->field_table);
-
-	if (priv->entry_xml != NULL)
-		g_free(priv->entry_xml);
-
-	/* Chain up to the parent class */
-	klass = GDATA_ENTRY_CLASS(g_type_class_peek(GDATA_TYPE_ENTRY));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	parent_class->finalize(obj);
-}
-
-static void gdata_entry_get_property (GObject *obj,
-		guint    property_id,
-		GValue  *value,
-		GParamSpec *pspec)
-{
-	GDataEntryPrivate *priv;
-
-	priv = GDATA_ENTRY_GET_PRIVATE(obj);
-}
-
-static void gdata_entry_set_property (GObject *obj,
-		guint    property_id,
-		const GValue *value,
-		GParamSpec   *pspec)
-{
-	GDataEntryPrivate *priv;
-	GDataEntry *self = (GDataEntry *) obj;
-
-	priv = GDATA_ENTRY_GET_PRIVATE(self);
-}
-
-static void gdata_entry_class_init (gpointer g_class,
-		gpointer g_class_data)
-{
-	GObjectClass *gobject_class = G_OBJECT_CLASS(g_class);
-	GDataEntryClass *klass = GDATA_ENTRY_CLASS(g_class);
-
-	g_type_class_add_private(klass, sizeof (GDataEntryPrivate));
-	gobject_class->set_property = gdata_entry_set_property;
-	gobject_class->get_property = gdata_entry_get_property;
-	gobject_class->dispose  = gdata_entry_dispose;
-	gobject_class->finalize = gdata_entry_finalize;
-}
-
-GType gdata_entry_get_type (void)
-{
-	static GType type = 0;
-	if (type == 0) {
-		static const GTypeInfo info = {
-			sizeof (GDataEntryClass),
-			NULL, /* base init */
-			NULL, /* base finalize */
-			gdata_entry_class_init, /* class init */
-			NULL, /* class finalize */
-			NULL, /* class data */
-			sizeof (GDataEntry),
-			0, /* n_preallocs */
-			gdata_entry_init /* instance init */
-		};
-		type = g_type_register_static(G_TYPE_OBJECT,"GDataEntryType", &info,0);
-	}
-
-	return type;
-}
-
-
-/*** API ***/
-static GDataEntryAuthor *
-xmlnode_to_author (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryAuthor *author;
-	xmlChar *value;
-
-	author = g_new0(GDataEntryAuthor, 1);
-	author->email = NULL;
-	author->name  = NULL;
-	author->uri   = NULL;
-
-	cur = cur->xmlChildrenNode;
-	while (cur != NULL) {
-		if (!xmlStrcmp(cur->name, (xmlChar *)"email")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			author->email = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"name")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			author->name = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"uri")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			author->uri = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-		cur = cur->next;
-	}
-
-	return author;
-}
-
-static GDataEntryLink *
-xmlnode_to_link (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryLink *link;
-	xmlChar *value;
-
-	link = g_new0(GDataEntryLink, 1);
-	link->href = NULL;
-	link->rel = NULL;
-	link->title = NULL;
-	link->type = NULL;
-
-	value = xmlGetProp(cur, (xmlChar *)"href");
-		if (value) {
-			link->href = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-		if (value) {
-			link->rel = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-	value = xmlGetProp(cur, (xmlChar *)"title");
-		if (value) {
-			link->title = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-	value = xmlGetProp(cur, (xmlChar *)"type");
-		if (value) {
-			link->type = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-	return link;
-}
-
-static GDataEntryCategory *
-xmlnode_to_category (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryCategory *category;
-	xmlChar *value;
-
-	category = g_new0(GDataEntryCategory, 1);
-	category->label = NULL;
-	category->scheme = NULL;
-	category->scheme_prefix = NULL;
-	category->scheme_suffix = NULL;
-	category->term = NULL;
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		category->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"scheme");
-	if (value) {
-		category->scheme = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"term");
-	if (value) {
-		category->term = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	return category;
-}
-
-static Attendee *
-xmlnode_to_attendee (xmlDocPtr doc, xmlNodePtr cur)
-{
-	Attendee *attendee;
-	xmlChar *value;
-
-	attendee = g_new0 (Attendee, 1);
-
-	value = xmlGetProp(cur, (xmlChar *)"email");
-	if (value) {
-		attendee->attendee_email = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		attendee->attendee_rel = g_strdup((gchar *)value);
-		xmlFree (value);
-	}
-
-	value= xmlGetProp(cur, (xmlChar *)"valueString");
-	if (value) {
-		attendee->attendee_value = g_strdup((gchar *)value);
-		xmlFree (value);
-	}
-
-	return attendee;
-}
-
-static GDataEntryEmailAddress *
-xmlnode_to_email_address (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryEmailAddress *email;
-	xmlChar *value;
-
-	email = g_new0(GDataEntryEmailAddress, 1);
-
-	value = xmlGetProp(cur, (xmlChar *)"address");
-	if (value) {
-		email->address = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		email->rel = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		email->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"primary");
-	if (value) {
-		email->primary = TRUE;
-		xmlFree(value);
-	}
-
-	return email;
-}
-
-static GDataEntryIMAddress *
-xmlnode_to_im_address (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryIMAddress *im;
-	xmlChar *value;
-
-	im = g_new0(GDataEntryIMAddress, 1);
-
-	value = xmlGetProp(cur, (xmlChar *)"address");
-	if (value) {
-		im->address = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"protocol");
-	if (value) {
-		im->protocol = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		im->rel = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		im->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"primary");
-	if (value) {
-		im->primary = TRUE;
-		xmlFree(value);
-	}
-
-	return im;
-}
-
-static GDataEntryOrganization *
-xmlnode_to_organization (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryOrganization *org;
-	xmlChar *value;
-
-	org = g_new0(GDataEntryOrganization, 1);
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		org->rel = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		org->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"primary");
-	if (value) {
-		org->primary = TRUE;
-		xmlFree(value);
-	}
-
-	cur = cur->xmlChildrenNode;
-	while (cur != NULL) {
-		if (!xmlStrcmp(cur->name, (xmlChar *)"orgName")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			org->name = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"orgTitle")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			org->title = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-		cur = cur->next;
-	}
-
-	return org;
-}
-
-static GDataEntryPhoneNumber *
-xmlnode_to_phone_number (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryPhoneNumber *phone;
-	xmlChar *value;
-
-	phone = g_new0(GDataEntryPhoneNumber, 1);
-
-	value = xmlGetProp(cur, (xmlChar *)"uri");
-	if (value) {
-		phone->uri = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		phone->rel = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		phone->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"primary");
-	if (value) {
-		phone->primary = TRUE;
-		xmlFree(value);
-	}
-
-	value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-	phone->number = g_strdup((gchar *)value);
-	xmlFree(value);
-
-	return phone;
-}
-
-static GDataEntryPostalAddress *
-xmlnode_to_postal_address (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntryPostalAddress *address;
-	xmlChar *value;
-
-	address = g_new0(GDataEntryPostalAddress, 1);
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		address->rel = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		address->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"primary");
-	if (value) {
-		address->primary = TRUE;
-		xmlFree(value);
-	}
-
-	value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-	address->address = g_strdup((gchar *)value);
-	xmlFree(value);
-
-	return address;
-}
-
-static xmlNodePtr
-author_to_xmlnode (GDataEntryAuthor *author)
-{
-
-	xmlNodePtr author_node;
-
-	author_node = xmlNewNode(NULL, (xmlChar *)"author");
-	if (author->email)
-		xmlNewChild (author_node, NULL, (xmlChar *)"email", (xmlChar *)author->email);
-
-	if (author->name)
-		xmlNewChild (author_node, NULL, (xmlChar *)"name", (xmlChar *)author->name);
-
-	return author_node;
-}
-
-static xmlNodePtr
-link_to_xmlnode (GDataEntryLink *link)
-{
-	xmlNodePtr link_node;
-	link_node = xmlNewNode(NULL, (xmlChar *)"link");
-
-	if (link->href) {
-		xmlSetProp (link_node, (xmlChar *)"href", (xmlChar *)link->href);
-	}
-
-	if (link->rel) {
-		xmlSetProp (link_node, (xmlChar *)"rel", (xmlChar *)link->rel);
-	}
-
-	if (link->title) {
-		xmlSetProp (link_node, (xmlChar *)"title", (xmlChar *)link->title);
-	}
-
-	if (link->type) {
-		xmlSetProp (link_node, (xmlChar *)"type", (xmlChar *)link->type);
-	}
-
-	return link_node;
-}
-
-static xmlNodePtr
-category_to_xmlnode (GDataEntryCategory *category)
-{
-	xmlNodePtr category_node;
-	category_node = xmlNewNode(NULL, (xmlChar *)"category");
-
-	if (category->label) {
-		xmlSetProp (category_node, (xmlChar *)"label", (xmlChar *)category->label);
-	}
-
-	if (category->scheme) {
-		xmlSetProp (category_node, (xmlChar *)"scheme", (xmlChar *)category->scheme);
-	}
-
-	if (category->term) {
-		xmlSetProp (category_node, (xmlChar *)"term", (xmlChar *)category->term);
-	}
-
-	return category_node;
-}
-
-static xmlNodePtr
-email_address_to_xmlnode (GDataEntryEmailAddress *email)
-{
-
-	xmlNodePtr email_node;
-
-	email_node = xmlNewNode(NULL, (xmlChar *)"email");
-	xmlSetNs (email_node, xmlNewNs (email_node, NULL, (xmlChar *)"gd"));
-	if (email->address)
-		xmlSetProp (email_node, (xmlChar *)"address", (xmlChar *)email->address);
-
-	if (email->rel)
-		xmlSetProp (email_node, (xmlChar *)"rel", (xmlChar *)email->rel);
-
-	if (email->label)
-		xmlSetProp (email_node, (xmlChar *)"label", (xmlChar *)email->label);
-	
-	if (email->primary)
-		xmlSetProp (email_node, (xmlChar *)"primary", (xmlChar *)"true");
-
-	return email_node;
-}
-
-static xmlNodePtr
-im_address_to_xmlnode (GDataEntryIMAddress *im)
-{
-
-	xmlNodePtr im_node;
-
-	im_node = xmlNewNode(NULL, (xmlChar *)"im");
-	xmlSetNs (im_node, xmlNewNs (im_node, NULL, (xmlChar *)"gd"));
-	if (im->address)
-		xmlSetProp (im_node, (xmlChar *)"address", (xmlChar *)im->address);
-
-	if (im->protocol)
-		xmlSetProp (im_node, (xmlChar *)"protocol", (xmlChar *)im->protocol);
-
-	if (im->rel)
-		xmlSetProp (im_node, (xmlChar *)"rel", (xmlChar *)im->rel);
-
-	if (im->label)
-		xmlSetProp (im_node, (xmlChar *)"label", (xmlChar *)im->label);
-	
-	if (im->primary)
-		xmlSetProp (im_node, (xmlChar *)"primary", (xmlChar *)"true");
-
-	return im_node;
-}
-
-static xmlNodePtr
-organization_to_xmlnode (GDataEntryOrganization *organization)
-{
-
-	xmlNodePtr organization_node;
-
-	organization_node = xmlNewNode(NULL, (xmlChar *)"organization");
-	xmlSetNs (organization_node, xmlNewNs (organization_node, NULL, (xmlChar *)"gd"));
-	if (organization->rel)
-		xmlSetProp (organization_node, (xmlChar *)"rel", (xmlChar *)organization->rel);
-
-	if (organization->label)
-		xmlSetProp (organization_node, (xmlChar *)"label", (xmlChar *)organization->label);
-	
-	if (organization->primary)
-		xmlSetProp (organization_node, (xmlChar *)"primary", (xmlChar *)"true");
-
-	if (organization->name)
-		xmlNewTextChild (organization_node, NULL, (xmlChar *)"orgName", (xmlChar *)organization->name);
-
-	if (organization->title)
-		xmlNewTextChild (organization_node, NULL, (xmlChar *)"orgTitle", (xmlChar *)organization->title);
-
-	return organization_node;
-}
-
-static xmlNodePtr
-phone_number_to_xmlnode (GDataEntryPhoneNumber *number)
-{
-
-	xmlNodePtr number_node;
-
-	number_node = xmlNewNode(NULL, (xmlChar *)"phoneNumber");
-	xmlSetNs (number_node, xmlNewNs (number_node, NULL, (xmlChar *)"gd"));
-	if (number->uri)
-		xmlSetProp (number_node, (xmlChar *)"uri", (xmlChar *)number->uri);
-
-	if (number->rel)
-		xmlSetProp (number_node, (xmlChar *)"rel", (xmlChar *)number->rel);
-
-	if (number->label)
-		xmlSetProp (number_node, (xmlChar *)"label", (xmlChar *)number->label);
-	
-	if (number->primary)
-		xmlSetProp (number_node, (xmlChar *)"primary", (xmlChar *)"true");
-
-	if (number->number)
-		xmlNodeAddContent(number_node, (xmlChar *)number->number);
-
-	return number_node;
-}
-
-static xmlNodePtr
-postal_address_to_xmlnode (GDataEntryPostalAddress *address)
-{
-
-	xmlNodePtr address_node;
-
-	address_node = xmlNewNode(NULL, (xmlChar *)"postalAddress");
-	xmlSetNs (address_node, xmlNewNs (address_node, NULL, (xmlChar *)"gd"));
-	if (address->rel)
-		xmlSetProp (address_node, (xmlChar *)"rel", (xmlChar *)address->rel);
-
-	if (address->label)
-		xmlSetProp (address_node, (xmlChar *)"label", (xmlChar *)address->label);
-	
-	if (address->primary)
-		xmlSetProp (address_node, (xmlChar *)"primary", (xmlChar *)"true");
-
-	if (address->address)
-		xmlNodeAddContent(address_node, (xmlChar *)address->address);
-
-	return address_node;
-}
-
-
-/**
- * gdata_entry_new:
- * Creates a new #GDataEntry.
- **/
-GDataEntry *
-gdata_entry_new (void)
-{
-	return g_object_new(GDATA_TYPE_ENTRY, NULL);
-}
-
-/**
- * gdata_entry_get_private:
- * @entry: A #GDataEntry object
- * Returns a #GDataEntryPrivate object
- **/
-GDataEntryPrivate *
-gdata_entry_get_private (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-
-	return priv;
-}
-/**
- * gdata_entry_new_from_xmlptr:
- * @doc: A xml document pointer
- * @ptr: A xml Node pointer
- **/
-GDataEntry *
-gdata_entry_new_from_xmlptr (xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataEntry *entry;
-	GDataEntryPrivate *priv;
-	xmlChar *value = NULL;
-	xmlOutputBufferPtr buf;
-	gchar *xmlString;
-
-	g_return_val_if_fail(doc != NULL, NULL);
-	g_return_val_if_fail(cur != NULL, NULL);
-
-	if (xmlStrcmp(cur->name, (xmlChar *)"entry")) {
-		return NULL;
-	}
-
-	entry = gdata_entry_new ();
-	priv  = GDATA_ENTRY_GET_PRIVATE(entry);
-	buf = xmlAllocOutputBuffer (NULL);
-
-	if (buf == NULL) {
-		xmlString = NULL;
-	}
-	else {
-		xmlNodeDumpOutput (buf, NULL, cur, 0, 1, NULL);
-		xmlOutputBufferFlush (buf);
-
-		if (buf->conv == NULL)
-			xmlString = g_strdup ((gchar *)buf->buffer->content);
-		else
-			xmlString = g_strdup ((gchar *)buf->conv->content);
-		xmlOutputBufferClose (buf);
-	}
-
-	priv->entry_xml = g_strdup (xmlString);
-	cur = cur->xmlChildrenNode;
-	while (cur != NULL) {
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"author")) {
-			priv->authors = g_slist_prepend(priv->authors, xmlnode_to_author(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"link")) {
-			priv->links = g_slist_prepend(priv->links, xmlnode_to_link(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"category")) {
-			priv->categories = g_slist_prepend(priv->categories, xmlnode_to_category(doc, cur));
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"where")) {
-			priv->location = (gchar *)xmlGetProp (cur, (xmlChar *)"valueString");
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"eventStatus")) {
-			priv->status = (gchar *)xmlGetProp (cur, (xmlChar *)"value");
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"visibility")) {
-			priv->visibility = (gchar *)xmlNodeListGetString (doc, cur->xmlChildrenNode, 1);
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"when")) {
-			priv->start_time = (gchar *)xmlGetProp (cur, (xmlChar *)"startTime");
-			priv->end_time = (gchar *)xmlGetProp (cur, (xmlChar *)"endTime");
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"recurrence")) {
-			priv->is_recurrent = TRUE;
-		}
-
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"who")) {
-			priv->attendees = g_slist_prepend (priv->attendees, xmlnode_to_attendee (doc, cur));
-			priv->has_attendees = TRUE;
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"sendEventNotifications")) {
-			priv->send_notification =(gchar *)xmlGetProp (cur, (xmlChar *)"value");
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"comments")) {
-			/*FIXME Call _comment_to_xml_node */
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"email")) {
-			priv->email_addresses = g_slist_prepend(priv->email_addresses, xmlnode_to_email_address(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"im")) {
-			priv->im_addresses = g_slist_prepend(priv->im_addresses, xmlnode_to_im_address(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"organization")) {
-			priv->organizations = g_slist_prepend(priv->organizations, xmlnode_to_organization(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"phoneNumber")) {
-			priv->phone_numbers = g_slist_prepend(priv->phone_numbers, xmlnode_to_phone_number(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"postalAddress")) {
-			priv->postal_addresses = g_slist_prepend(priv->postal_addresses, xmlnode_to_postal_address(doc, cur));
-		}
-		else if (!xmlStrcmp (cur->name, (xmlChar *)"deleted")) {
-			priv->is_deleted = TRUE;
-		}
-
-		else {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			if (!value)
-				value = xmlGetProp (cur, (xmlChar *)"value");
-
-			g_hash_table_insert(priv->field_table, g_strdup((gchar *)cur->name),
-					g_strdup((gchar *)value));
-			xmlFree(value);
-		}
-		cur = cur->next;
-	}
-
-	return entry;
-}
-
-/**
- * gdata_entries_new_from_xml:
- * @feed_xml: A xml tree.
- * @length: length of feed_xml
- * Returns the list of all the entries in a feed.
- **/
-/*Returns all the entries from the feed */
-GSList *
-gdata_entries_new_from_xml (const gchar *feed_xml, const gint length)
-{
-	GSList *list;
-	xmlNodePtr cur;
-	xmlDocPtr doc;
-
-	list = NULL;
-
-	g_return_val_if_fail(feed_xml != NULL && *feed_xml != '\0', NULL);
-
-	doc = xmlReadMemory (feed_xml, strlen(feed_xml), "feed.xml", NULL, 0);
-	if (doc == NULL)
-		return NULL;
-
-	cur = xmlDocGetRootElement (doc);
-	if (cur == NULL) {
-		xmlFree (doc);
-	}
-
-	cur = cur->xmlChildrenNode;
-	while (cur != NULL)
-	{
-		if (!xmlStrcmp (cur->name, (xmlChar *)"entry")) {
-			list = g_slist_prepend (list, gdata_entry_new_from_xmlptr (doc, cur));
-		}
-		cur = cur->next;
-	}
-
-	/* Free them */
-	xmlFreeDoc (doc);
-	xmlFreeNode (cur);
-
-	if (list == NULL)
-		g_slist_free (list);
-
-	return list;
-}
-
-/**
- * gdata_entry_new_from_xml:
- * @entry_xml: the xml tree
- * Returns a GDataEntry object:
- **/
-GDataEntry *
-gdata_entry_new_from_xml (const gchar *entry_xml)
-{
-	GDataEntry *entry = NULL;
-	xmlDocPtr doc;
-	xmlNodePtr cur;
-
-	g_return_val_if_fail (entry_xml != NULL && *entry_xml != '\0', NULL);
-	doc = xmlReadMemory (entry_xml, strlen(entry_xml), "feed.xml", NULL, 0);
-
-	if (doc == NULL)
-		return NULL;
-
-	cur = xmlDocGetRootElement (doc);
-	if (cur == NULL)
-		xmlFree (doc);
-
-	while (cur != NULL) {
-		if (!xmlStrcmp (cur->name,(xmlChar *)"entry"))
-			entry = gdata_entry_new_from_xmlptr (doc, cur);
-		cur = cur->next;
-	}
-	/*Free them */
-	xmlFreeDoc (doc);
-	xmlFreeNode (cur);
-
-	if (!GDATA_IS_ENTRY(entry))
-		return NULL;
-
-	return entry;
-}
-
-/**
- *gdata_entry_generate_xml:
- * entry: A GDataEntry Object
- *Returns the xml content:
- **/
-gchar *
-gdata_entry_generate_xml (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	GSList *list;
-	xmlChar *xmlString;
-	xmlNsPtr ns;
-	xmlNodePtr cur, cur_child, root;
-	xmlDocPtr doc;
-	gint xml_buffer_size;
-
-	g_return_val_if_fail(entry !=NULL, NULL);
-	g_return_val_if_fail(GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-
-	if (!(priv->entry_xml == NULL || priv->entry_needs_update == TRUE))
-		return priv->entry_xml;
-
-	/* Construct DOM tree */
-	doc = xmlNewDoc ((xmlChar *)"1.0");
-	root = xmlNewDocNode (doc, NULL, (xmlChar *)"entry", NULL);
-
-	xmlSetProp (root, (xmlChar *)"xmlns", (xmlChar *)"http://www.w3.org/2005/Atom";);
-	ns =  xmlNewNs (root, (xmlChar *)"http://schemas.google.com/g/2005";, (xmlChar *)"gd");
-	xmlDocSetRootElement (doc, root);
-	cur = root;
-
-	list = priv->categories;
-	while (list) {
-		cur_child = category_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	list = priv->authors;
-	while (list) {
-		cur_child = author_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-	
-	list = priv->links;
-	while (list) {
-		cur_child = link_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	if (priv->status) {
-		cur_child = xmlNewChild(root, NULL, (xmlChar *)"eventStatus", NULL);
-		xmlSetNs (cur_child, xmlNewNs (cur_child, NULL, (xmlChar *)"gd"));
-		xmlSetProp (cur_child, (xmlChar *)"value", (xmlChar *)priv->status);
-	}
-
-	if (priv->start_time || priv->end_time || priv->reminder) {
-		cur_child = xmlNewChild(root, NULL, (xmlChar *)"when", NULL);
-		xmlSetNs (cur_child, xmlNewNs (cur_child, NULL, (xmlChar *)"gd"));
-		xmlSetProp (cur_child, (xmlChar *)"startTime", (xmlChar *)priv->start_time);
-		xmlSetProp (cur_child, (xmlChar *)"endTime", (xmlChar *)priv->end_time);
-
-		if (priv->reminder) {
-			cur = cur_child;
-			cur_child = xmlNewChild(cur, NULL, (xmlChar *)"reminder", (xmlChar *)"");
-			xmlSetNs (cur_child, xmlNewNs (cur_child, NULL, (xmlChar *)"gd"));
-			xmlSetProp (cur_child->xmlChildrenNode, (xmlChar *)"minutes", (xmlChar *)priv->reminder);
-		}
-	}
-
-	if (priv->location ) {
-		cur_child = xmlNewChild(root, NULL, (xmlChar *)"where", NULL);
-		xmlSetNs (cur_child, xmlNewNs (cur_child, NULL, (xmlChar *)"gd"));
-		xmlSetProp (cur_child, (xmlChar *)"valueString", (xmlChar *)priv->location);
-	}
-
-	if (priv->content) {
-		cur_child = xmlNewChild(root, NULL, (xmlChar *)"content", (xmlChar *)priv->content);
-		xmlSetProp (cur_child, (xmlChar *)"type", (xmlChar *)"text");
-	}
-
-	if (priv->title) {
-		cur_child = xmlNewChild(root, NULL, (xmlChar *)"title", (xmlChar *)priv->title);
-		xmlSetProp (cur_child, (xmlChar *)"type", (xmlChar *)"text");
-	}
-
-	list = priv->email_addresses;
-	while (list) {
-		cur_child = email_address_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	list = priv->im_addresses;
-	while (list) {
-		cur_child = im_address_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	list = priv->organizations;
-	while (list) {
-		cur_child = organization_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	list = priv->phone_numbers;
-	while (list) {
-		cur_child = phone_number_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	list = priv->postal_addresses;
-	while (list) {
-		cur_child = postal_address_to_xmlnode(list->data);
-		xmlAddChild(root, cur_child);
-		list = g_slist_next(list);
-	}
-
-	/*
-	   if (priv->field_table) {
-	   g_hash_table_foreach (priv->field_table,(GHFunc) _build_hash_table_entries, &root);
-	   }
-	 */
-
-	xmlDocDumpMemory(doc, &xmlString, &xml_buffer_size);
-    g_free (priv->entry_xml);
-	priv->entry_xml = g_strdup((gchar *)xmlString);
-
-	xmlFree(xmlString);
-	xmlFreeDoc(doc);
-
-	return priv->entry_xml;
-}
-
-/**
- * gdata_entry_get_id:
- * @entry: A GDataEntry object
- * Returns the id of the Entry:
- **/
-gchar *
-gdata_entry_get_id (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail(entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return g_hash_table_lookup (priv->field_table, "id");
-}
-
-/**
- * gdata_entry_get_visibility:
- * @entry: A GDataEntry object
- * Returns the visibility of the Entry:
- **/
-gchar *
-gdata_entry_get_visibility (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail(entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->visibility;
-}
-
-/**
- * gdata_entry_get_content:
- * @entry: A #GDataEntry object
- * Returns the content of the Entry/Event.
- **/
-gchar *
-gdata_entry_get_content (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return g_hash_table_lookup (priv->field_table, "content");
-}
-
-/**
- * gdata_entry_get_description:
- * @entry: A #GDataEntry object
- * Returns the description of the Entry.
- **/
-/* Returns the description of the entry */
-gchar *
-gdata_entry_get_description (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return NULL;
-}
-
-/**
- * gdata_entry_get_copyright:
- * @entry: A #GDataEntry object
- * Returns the copyright of the Entry
- **/
-gchar *
-gdata_entry_get_copyright (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return g_hash_table_lookup (priv->field_table, "copyright");
-}
-
-/**
- * gdata_entry_get_title:
- * @entry: A #GDataEntry object.
- * Returns the title of the Entry.
- **/
-gchar *
-gdata_entry_get_title (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return g_hash_table_lookup (priv->field_table, "title");
-}
-
-/**
- * gdata_entry_get_authors:
- * @entry: A #GDataEntry object.
- * Returns the list of authors of entry.
- **/
-GSList *
-gdata_entry_get_authors (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->authors;
-}
-
-/**
- * gdata_entry_get_links:
- * @entry: A #GDataEntry object.
- * Returns the list of links
- **/
-GSList *
-gdata_entry_get_links (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->links;
-}
-
-/**
- * gdata_entry_get_start_time:
- * @entry: A #GDataEntry object.
- * Returns the starting time of the Event.
- **/
-gchar *
-gdata_entry_get_start_time (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry!=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY(entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->start_time;
-}
-
-
-/**
- * gdata_entry_get_transparency:
- * @entry: A #GDataEntry object.
- * Returns the transparency of the Event.
- **/
-gchar *
-gdata_entry_get_transparency (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry!=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY(entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->transparency;
-}
-
-/**
- * gdata_entry_get_end_time:
- * @entry: A #GDataEntry object.
- * Returns the ending time of the Event.
- **/
-gchar *
-gdata_entry_get_end_time (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY(entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->end_time;
-}
-
-/**
- * gdata_entry_get_location:
- * @entry: A #GDataEntry object.
- * Returns the location of the Event.
- **/
-gchar *
-gdata_entry_get_location (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->location;
-}
-
-/**
- * gdata_entry_get_status:
- * @entry: A #GDataEntry object.
- * Returns the status of the Event.
- **/
-gchar *
-gdata_entry_get_status (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail(entry !=NULL, NULL);
-	g_return_val_if_fail(GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->status;
-}
-
-/**
- * gdata_entry_get_categories:
- * @entry: A #GDataEntry object.
- * Returns the status of the Event.
- **/
-GSList *
-gdata_entry_get_categories (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail(entry !=NULL, NULL);
-	g_return_val_if_fail(GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->categories;
-}
-
-/**
- * gdata_entry_get_edit_link:
- * @entry: A #GDataEntry object.
- * Returns the edit link of the entry
- **/
-gchar *
-gdata_entry_get_edit_link (GDataEntry *entry)
-{
-	GSList *list;
-	GDataEntryLink *link;
-	gchar *edit_link = NULL;
-
-	g_return_val_if_fail(GDATA_IS_ENTRY(entry), NULL);
-	list = gdata_entry_get_links (entry);
-
-	while (list) {
-		link = list->data;
-		if (!g_ascii_strcasecmp (link->rel, "edit")) {
-			edit_link = g_strdup(link->href);
-		}
-		list = g_slist_next (list);
-	}
-
-	return edit_link;
-}
-
-/**
- * gdata_entry_get_email_addresses:
- * @entry: A #GDataEntry object.
- * Returns the list of emails of entry.
- **/
-GSList *
-gdata_entry_get_email_addresses (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->email_addresses;
-}
-
-/**
- * gdata_entry_get_primary_email_address:
- * @entry: A #GDataEntry object.
- * Returns the the primary email address.
- **/
-GDataEntryEmailAddress *
-gdata_entry_get_primary_email_address (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	GSList *itr;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-
-	itr = priv->email_addresses;
-	while (itr) {
-		GDataEntryEmailAddress *email = itr->data;
-		if (email->primary)
-			return email;
-		itr = itr->next;
-	}
-	return NULL;
-}
-
-/**
- * gdata_entry_get_im_addresses:
- * @entry: A #GDataEntry object.
- * Returns the list of im addresses of entry.
- **/
-GSList *
-gdata_entry_get_im_addresses (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->im_addresses;
-}
-
-/**
- * gdata_entry_get_primary_im_address:
- * @entry: A #GDataEntry object.
- * Returns the the primary im address.
- **/
-GDataEntryIMAddress *
-gdata_entry_get_primary_im_address (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	GSList *itr;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-
-	itr = priv->im_addresses;
-	while (itr) {
-		GDataEntryIMAddress *im = itr->data;
-		if (im->primary)
-			return im;
-		itr = itr->next;
-	}
-	return NULL;
-}
-
-/**
- * gdata_entry_get_organizations:
- * @entry: A #GDataEntry object.
- * Returns the list of organizations of entry.
- **/
-GSList *
-gdata_entry_get_organizations (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->organizations;
-}
-
-/**
- * gdata_entry_get_primary_organization:
- * @entry: A #GDataEntry object.
- * Returns the the primary organization.
- **/
-GDataEntryOrganization *
-gdata_entry_get_primary_organization (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	GSList *itr;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-
-	itr = priv->organizations;
-	while (itr) {
-		GDataEntryOrganization *org = itr->data;
-		if (org->primary) {
-			g_slist_free (itr);
-			return org;	
-		}
-		itr = itr->next;
-	}
-	return NULL;
-}
-
-/**
- * gdata_entry_get_phone_numbers:
- * @entry: A #GDataEntry object.
- * Returns the list of phone numbers of entry.
- **/
-GSList *
-gdata_entry_get_phone_numbers (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->phone_numbers;
-}
-
-/**
- * gdata_entry_get_primary_phone_number:
- * @entry: A #GDataEntry object.
- * Returns the the primary phone number.
- **/
-GDataEntryPhoneNumber *
-gdata_entry_get_primary_phone_number (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	GSList *itr;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-
-	itr = priv->phone_numbers;
-	while (itr) {
-		GDataEntryPhoneNumber *number = itr->data;
-		if (number->primary)
-			return number;
-		itr = itr->next;
-	}
-	return NULL;
-}
-
-/**
- * gdata_entry_get_postal_addresses:
- * @entry: A #GDataEntry object.
- * Returns the list of postal addresses of entry.
- **/
-GSList *
-gdata_entry_get_postal_addresses (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->postal_addresses;
-}
-
-/**
- * gdata_entry_get_primary_postal_address:
- * @entry: A #GDataEntry object.
- * Returns the the primary postal address.
- **/
-GDataEntryPostalAddress *
-gdata_entry_get_primary_postal_address (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-	GSList *itr;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-
-	itr = priv->postal_addresses;
-	while (itr) {
-		GDataEntryPostalAddress *address = itr->data;
-		if (address->primary)
-			return address;
-		itr = itr->next;
-	}
-	return NULL;
-}
-
-/**
- * gdata_entry_is_deleted:
- * @entry: A #GDataEntry object.
- * Returns whether this entry is marked (remotely) as deleted.
- **/
-gboolean
-gdata_entry_is_deleted (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail(entry !=NULL, TRUE);
-	g_return_val_if_fail(GDATA_IS_ENTRY (entry), TRUE);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->is_deleted;
-}
-
-/**
- * gdata_entry_set_author:
- * @entry: A #GDataEntry object.
- * @author: A list of authors.
- * Sets the list of authors.
- **/
-void
-gdata_entry_set_author (GDataEntry *entry, GSList *author)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (author !=NULL);
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->authors = author;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_id:
- * @entry: A #GDataEntry object.
- * @id: Id of the entry.
- * Sets the list of authors.
- **/
-void
-gdata_entry_set_id (GDataEntry *entry, gchar *id)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (id !=NULL);
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->id = g_strdup(id);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_categories:
- * @entry: A GDataEntry object.
- * @categories: A list of categories.
- * Sets the list of categories of the Entry.
- **/
-void
-gdata_entry_set_categories (GDataEntry *entry, GSList *categories)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(categories !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->categories = categories;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_title:
- * @entry: A GDataEntry object.
- * @title: title of the event.
- * Sets the title of the Entry.
- **/
-void
-gdata_entry_set_title (GDataEntry *entry, const gchar *title)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(title !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY (entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	priv->title = g_strdup(title);
-	g_hash_table_insert (priv->field_table, g_strdup("title"), g_strdup(title));
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_content:
- * @entry: A GDataEntry object.
- * @content: The content of the event.
- * Sets the content of the Entry.
- **/
-void
-gdata_entry_set_content (GDataEntry *entry, const gchar *content)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(content !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->content = g_strdup (content);
-	priv->entry_needs_update = TRUE;
-	g_hash_table_insert (priv->field_table, g_strdup("content"), g_strdup (content));
-}
-
-/**
- * gdata_entry_set_links:
- * @entry: A GDataEntry object.
- * @links: A list of links associated.
- * Sets the links of the Event.
- **/
-void
-gdata_entry_set_links (GDataEntry *entry, GSList *links)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail( links !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->links = links;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_status:
- * @entry: A GDataEntry object.
- * @status: The status of the event.
- * Sets the status of the Event.
- **/
-void
-gdata_entry_set_status (GDataEntry *entry, const gchar *status)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(status!=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->status = g_strdup (status);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_sendNotification:
- * @entry: A GDataEntry object.
- * @sendNotification: Whether notification is required.
- * Sets whether notification should be sent by the Event.
- **/
-void
-gdata_entry_set_send_notification (GDataEntry *entry, const gchar *send_notification)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (send_notification!=NULL);
-	g_return_if_fail (GDATA_IS_ENTRY (entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->send_notification = g_strdup(send_notification);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_reminder:
- * @entry: A GDataEntry object.
- * @reminder: The reminder set.
- * Sets the reminder of the Event.
- **/
-void
-gdata_entry_set_reminder (GDataEntry *entry, const gchar *reminder)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(reminder !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY (entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->reminder = g_strdup (reminder);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_start_time:
- * @entry: A GDataEntry object.
- * @start_time: The starting time of the event.
- * Sets the starting time of the Event.
- **/
-void
-gdata_entry_set_start_time (GDataEntry *entry, const gchar *start_time)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(start_time !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->start_time = g_strdup(start_time);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_end_time:
- * @entry: A GDataEntry object.
- * @end_time: The end time of the event.
- * Sets the end time of the event.
- **/
-void
-gdata_entry_set_end_time (GDataEntry *entry, const gchar *end_time)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail(end_time !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY (entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->end_time = g_strdup(end_time);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_transparency:
- * @entry: A GDataEntry object.
- * @transparency: Transparency of the Entry.
- * Sets the transparency of the entry.
- **/
-void
-gdata_entry_set_transparency (GDataEntry *entry, const gchar *transparency)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (transparency !=NULL);
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->transparency = g_strdup (transparency);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_location:
- * @entry: A GDataEntry object.
- * @location: Location of the event.
- * Sets the location of the event.
- **/
-void
-gdata_entry_set_location (GDataEntry *entry, const gchar *location)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (location !=NULL);
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->location = g_strdup (location);
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_create_authors:
- * @entry: A GDataEntry object.
- * @name: The name of the author.
- * @email: The email of the author.
- * Sets the list of authors to the Entry.
- **/
-void
-gdata_entry_create_authors (GDataEntry *entry,
-			    const gchar *name,
-			    const gchar *email)
-{
-	GDataEntryPrivate *priv;
-	GDataEntryAuthor *author;
-
-	g_return_if_fail(name !=NULL || email !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY(entry));
-
-	author = g_new0 (GDataEntryAuthor, 1);
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-
-	author->name = g_strdup(name);
-	author->email = g_strdup(email);
-
-	priv->authors =	g_slist_prepend(priv->authors, author);
-	priv->entry_needs_update = TRUE;
-
-}
-
-/**
- * gdata_entry_create_categories:
- * @entry: A GDataEntry object.
- * @scheme:Scheme.
- * @label:Label.
- * @term: Term.
- * Sets the categories of the Event.
- **/
-void
-gdata_entry_create_categories (GDataEntry *entry,
-			       const gchar *scheme,
-			       const gchar *label ,
-			       const gchar *term)
-{
-	GDataEntryPrivate *priv;
-	GDataEntryCategory *category;
-
-	g_return_if_fail(scheme !=NULL || label !=NULL || term !=NULL);
-	g_return_if_fail(GDATA_IS_ENTRY (entry));
-
-	category = g_new0(GDataEntryCategory, 1);
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-
-	category->scheme = g_strdup(scheme);
-	category->label = g_strdup(label);
-	category->term = g_strdup(term);
-
-	priv->categories = g_slist_prepend(priv->categories, category);
-	priv->entry_needs_update = TRUE;
-}
-
-gboolean
-gdata_entry_is_recurrent (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, 0);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), 0);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return priv->is_recurrent;
-}
-
-GSList *
-gdata_entry_get_attendee_list (GDataEntry *entry)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY(entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	return priv->attendees;
-}
-
-void
-gdata_entry_set_attendee_list (GDataEntry *entry, GSList *attendees)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (entry != NULL);
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-	g_return_if_fail (attendees != NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->attendees = attendees;
-	priv->has_attendees = TRUE;
-}
-
-/**
- * gdata_entry_set_email_addresses:
- * @entry: A #GDataEntry object.
- * @emails: A list of emails.
- * Sets the list of emails.
- **/
-void
-gdata_entry_set_email_addresses (GDataEntry *entry, GSList *emails)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->email_addresses = emails;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_im_addresses:
- * @entry: A #GDataEntry object.
- * @ims: A list of im addresses.
- * Sets the list of im addresses.
- **/
-void
-gdata_entry_set_im_addresses (GDataEntry *entry, GSList *ims)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->im_addresses = ims;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_organizations:
- * @entry: A #GDataEntry object.
- * @orgs: A list of organizations.
- * Sets the list of organizations.
- **/
-void
-gdata_entry_set_organizations (GDataEntry *entry, GSList *orgs)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->organizations = orgs;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_phone_numbers:
- * @entry: A #GDataEntry object.
- * @numbers: A list of phone numbers.
- * Sets the list of phone numbers.
- **/
-void
-gdata_entry_set_phone_numbers (GDataEntry *entry, GSList *numbers)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->phone_numbers = numbers;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_set_postal_addresses:
- * @entry: A #GDataEntry object.
- * @addresses: A list of postal addresses.
- * Sets the list of postal addresses.
- **/
-void
-gdata_entry_set_postal_addresses (GDataEntry *entry, GSList *addresses)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (GDATA_IS_ENTRY(entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE(entry);
-	priv->postal_addresses = addresses;
-	priv->entry_needs_update = TRUE;
-}
-
-/**
- * gdata_entry_get_custom:
- * entry owns the returned pointer and is valid as long as the item is alive
- * and the value isn't changed by gdata_entry_set_custom or other method.
- * Do not use this method if there is direct method for your value!
- **/
-const gchar *
-gdata_entry_get_custom (GDataEntry *entry, const gchar *name)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_val_if_fail (entry != NULL, NULL);
-	g_return_val_if_fail (name != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_ENTRY (entry), NULL);
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	return g_hash_table_lookup (priv->field_table, name);
-}
-
-/**
- * gdata_entry_set_custom:
- * Sets the custom value.
- * Do not use this function when there exists direct method for your value!
- **/
-void
-gdata_entry_set_custom (GDataEntry *entry, const gchar *name, const gchar *value)
-{
-	GDataEntryPrivate *priv;
-
-	g_return_if_fail (entry != NULL);
-	g_return_if_fail (name != NULL);
-	g_return_if_fail (GDATA_IS_ENTRY (entry));
-
-	priv = GDATA_ENTRY_GET_PRIVATE (entry);
-	g_hash_table_insert (priv->field_table, g_strdup (name), g_strdup (value ? value : ""));
-}
diff --git a/servers/google/libgdata/gdata-entry.h b/servers/google/libgdata/gdata-entry.h
deleted file mode 100644
index 8d8941e..0000000
--- a/servers/google/libgdata/gdata-entry.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbyw gnome org>
- *  Jason Willis <zenbrother gmail com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef _GDATA_ENTRY_H_
-#define _GDATA_ENTRY_H_
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-/* LibXML2 includes */
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-#include <libxml/xpath.h>
-#include <libxml/xpathInternals.h>
-
-
-G_BEGIN_DECLS
-
-
-#define GDATA_TYPE_ENTRY           (gdata_entry_get_type())
-#define GDATA_ENTRY(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj), GDATA_TYPE_ENTRY, GDataEntry))
-#define GDATA_ENTRY_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass), GDATA_TYPE_ENTRY, GDataEntryClass))
-#define GDATA_IS_ENTRY(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj), GDATA_TYPE_ENTRY))
-#define GDATA_IS_ENTRY_CLASS(klass)(G_TYPE_CHECK_CLASS_TYPE((klass), GDATA_TYPE_ENTRY))
-#define GDATA_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDATA_TYPE_ENTRY, GDataEntryClass))
-
-typedef struct _GDataEntry GDataEntry;
-typedef struct _GDataEntryClass GDataEntryClass;
-typedef struct _GDataEntryPrivate GDataEntryPrivate;
-
-
-struct _GDataEntry {
-
-  GObject parent;
-
-  /* private */
-  GDataEntryPrivate *priv;
-};
-
-struct _GDataEntryClass {
-
-  GObjectClass parent_class;
-  /* class members */
-
-};
-
-/* Should be moved under extensions */
-typedef struct _Attendee Attendee;
-struct _Attendee {
-	gchar *attendee_email;
-	gchar *attendee_rel;
-	gchar *attendee_value;
-	gchar *attendee_status;
-	gchar *attendee_type;
-};
-
-typedef struct _GDataEntryAuthor GDataEntryAuthor;
-struct _GDataEntryAuthor {
-	gchar *email;
-	gchar *name;
-	gchar *uri;
-};
-
-typedef struct _GDataEntryCategory GDataEntryCategory;
-struct _GDataEntryCategory {
-	gchar *label;
-	gchar *scheme;
-	gchar *scheme_prefix;
-	gchar *scheme_suffix;
-	gchar *term;
-};
-
-typedef struct _GDataEntryLink GDataEntryLink;
-struct _GDataEntryLink {
-	gchar *href;
-	gint  length;
-	gchar *rel;
-	gchar *title;
-	gchar *type;
-};
-
-typedef struct _GDataEntryEmailAddress GDataEntryEmailAddress;
-struct _GDataEntryEmailAddress {
-	gchar *address;
-	gchar *label;
-	gchar *rel;
-	gboolean primary;
-};
-
-typedef struct _GDataEntryIMAddress GDataEntryIMAddress;
-struct _GDataEntryIMAddress {
-	gchar *address;
-	gchar *label;
-	gchar *rel;
-	gchar *protocol;
-	gboolean primary;
-};
-
-typedef struct _GDataEntryOrganization GDataEntryOrganization;
-struct _GDataEntryOrganization {
-	gchar *name;
-	gchar *title;
-	gchar *label;
-	gchar *rel;
-	gboolean primary;
-};
-
-typedef struct _GDataEntryPhoneNumber GDataEntryPhoneNumber;
-struct _GDataEntryPhoneNumber {
-	gchar *number;
-	gchar *uri;
-	gchar *label;
-	gchar *rel;
-	gboolean primary;
-};
-
-typedef struct _GDataEntryPostalAddress GDataEntryPostalAddress;
-struct _GDataEntryPostalAddress {
-	char *address;
-	char *label;
-	char *rel;
-	gboolean primary;
-};
-
-
-GType gdata_entry_get_type(void);
-
-
-/***** API  *****/
-
-GDataEntry * gdata_entry_new(void);
-
-GDataEntryPrivate * gdata_entry_get_private (GDataEntry *entry);
-
-GDataEntry * gdata_entry_new_from_xml(const gchar *entryXML);
-
-GDataEntry * gdata_entry_new_from_xmlptr (xmlDocPtr doc, xmlNodePtr cur);
-
-gchar * gdata_entry_generate_xml (GDataEntry *entry);
-
-gchar * gdata_entry_get_id(GDataEntry *entry);
-
-gchar * gdata_entry_get_content(GDataEntry *entry);
-
-gchar * gdata_entry_get_description (GDataEntry *entry);
-
-gchar * gdata_entry_get_copyright (GDataEntry *entry);
-
-gchar * gdata_entry_get_title (GDataEntry *entry);
-
-GSList * gdata_entry_get_authors (GDataEntry *entry);
-
-GSList * gdata_entry_get_links (GDataEntry *links);
-
-gchar * gdata_entry_get_start_time (GDataEntry *entry);
-
-gchar * gdata_entry_get_end_time (GDataEntry *entry);
-
-gchar * gdata_entry_get_location (GDataEntry *entry);
-
-gchar * gdata_entry_get_status (GDataEntry *entry);
-
-gchar * gdata_entry_get_edit_link (GDataEntry *entry);
-
-GSList * gdata_entry_get_categories (GDataEntry *entry);
-
-gchar * gdata_entry_get_start_date (GDataEntry *entry);
-
-gchar * gdata_entry_get_end_date (GDataEntry *entry);
-
-gchar * gdata_entry_get_visibility (GDataEntry *entry);
-
-gchar * gdata_entry_get_transparency (GDataEntry *entry);
-
-GSList * gdata_entry_get_attendee_list (GDataEntry *entry);
-
-GSList * gdata_entries_new_from_xml (const gchar *feedXML, const gint length);
-
-gboolean gdata_entry_is_recurrent (GDataEntry *entry);
-
-void gdata_entry_set_author (GDataEntry *entry, GSList *author);
-
-void gdata_entry_set_phone_numbers (GDataEntry *entry, GSList *phone_numbers);
-
-void gdata_entry_set_categories (GDataEntry *entry, GSList *categories);
-
-void gdata_entry_set_title (GDataEntry *entry, const gchar *title);
-
-void gdata_entry_set_content (GDataEntry *entry, const gchar *content);
-
-void gdata_entry_set_links (GDataEntry *entry, GSList *links);
-
-void gdata_entry_set_status (GDataEntry *entry, const gchar *status);
-
-void gdata_entry_set_send_notification (GDataEntry *entry, const gchar *sendNotification);
-
-void gdata_entry_set_reminder (GDataEntry *entry, const gchar *reminder);
-
-void gdata_entry_set_start_time (GDataEntry *entry, const gchar *start_time);
-
-void gdata_entry_set_end_time (GDataEntry *entry, const gchar *end_time);
-
-void gdata_entry_set_transparency (GDataEntry *entry, const gchar *transparency);
-
-void gdata_entry_set_location (GDataEntry *entry, const gchar *location);
-
-void gdata_entry_create_authors (GDataEntry *entry,const gchar *name, const gchar *email);
-
-void gdata_entry_create_categories (GDataEntry *entry, const gchar *scheme, const gchar *label , const gchar *term);
-
-void gdata_entry_set_id (GDataEntry *entry, gchar *id);
-
-void  gdata_entry_set_email_addresses (GDataEntry *entry, GSList *emails);
-
-void  gdata_entry_set_im_addresses (GDataEntry *entry, GSList *ims);
-
-void  gdata_entry_set_organizations (GDataEntry *entry, GSList *orgs);
-
-void  gdata_entry_set_phone_numbers (GDataEntry *entry, GSList *numbers);
-
-void  gdata_entry_set_postal_addresses (GDataEntry *entry, GSList *pas);
-
-void gdata_entry_set_attendee_list (GDataEntry *entry, GSList *attendee);
-
-gboolean gdata_entry_is_deleted (GDataEntry *entry);
-
-GSList * gdata_entry_get_email_addresses (GDataEntry *entry);
-
-GSList * gdata_entry_get_im_addresses (GDataEntry *entry);
-
-GSList * gdata_entry_get_organizations (GDataEntry *entry);
-
-GSList * gdata_entry_get_phone_numbers (GDataEntry *entry);
-
-GSList * gdata_entry_get_postal_addresses (GDataEntry *entry);
-
-gboolean gdata_entry_is_deleted (GDataEntry *entry);
-
-GDataEntryEmailAddress * gdata_entry_get_primary_email_address (GDataEntry *entry);
-
-GDataEntryIMAddress * gdata_entry_get_primary_im_address (GDataEntry *entry);
-
-GDataEntryOrganization * gdata_entry_get_primary_organization (GDataEntry *entry);
-
-GDataEntryPhoneNumber * gdata_entry_get_primary_phone_number (GDataEntry *entry);
-
-GDataEntryPostalAddress * gdata_entry_get_primary_postal_address (GDataEntry *entry);
-
-const gchar *gdata_entry_get_custom (GDataEntry *entry, const gchar *name);
-void gdata_entry_set_custom (GDataEntry *entry, const gchar *name, const gchar *value);
-
-#endif
-
diff --git a/servers/google/libgdata/gdata-feed.c b/servers/google/libgdata/gdata-feed.c
deleted file mode 100644
index b730b8d..0000000
--- a/servers/google/libgdata/gdata-feed.c
+++ /dev/null
@@ -1,719 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbywiselyn gmail com>
- *  Jason Willis <zenbrother gmail com>
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include <config.h>
-
-#include <gdata-feed.h>
-#include <gdata-entry.h>
-
-/* LibXML2 includes */
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-#include <libxml/xpath.h>
-#include <libxml/xpathInternals.h>
-
-#include <string.h>
-
-#define GDATA_FEED_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GDATA_TYPE_FEED, GDataFeedPrivate))
-
-
-struct _GDataFeedAuthor {
-	gchar *email;
-	gchar *name;
-	gchar *uri;
-};
-typedef struct _GDataFeedAuthor GDataFeedAuthor;
-
-struct _GDataFeedCategory {
-	gchar *label;
-	gchar *scheme;
-	gchar *scheme_prefix;
-	gchar *scheme_suffix;
-	gchar *term;
-};
-typedef struct _GDataFeedCategory GDataFeedCategory;
-
-struct _GDataFeedLink {
-	gchar *href;
-	gint  length;
-	gchar *rel;
-	gchar *title;
-	gchar *type;
-};
-typedef struct _GDataFeedLink GDataFeedLink;
-
-
-
-struct _GDataFeedPrivate {
-
-	/* feed information */
-	GSList *authors;
-	GSList *categories;
-	GSList *links;
-	GSList *entries;
-
-	gchar *content;
-	gchar *contributor;
-	gchar *id;
-	gchar *link;
-	gchar *published;
-	gchar *rights;
-	gchar *source;
-	gchar *summary;
-	gchar *title;
-	gchar *updated;
-	gchar *timezone;
-
-	GHashTable *field_table;
-	gchar *feedXML;
-
-	gboolean dispose_has_run;
-};
-
-static void destroy_authors(gpointer data, gpointer user_data)
-{
-	GDataFeedAuthor *author = (GDataFeedAuthor *)data;
-	if (author->email != NULL)
-		g_free(author->email);
-
-	if (author->name != NULL)
-		g_free(author->name);
-
-	if (author->uri != NULL)
-		g_free(author->uri);
-
-	g_free(author);
-}
-
-static void destroy_categories(gpointer data, gpointer user_data)
-{
-	GDataFeedCategory *category = (GDataFeedCategory *)data;
-	if (category->label != NULL)
-		g_free(category->label);
-
-	if (category->scheme != NULL)
-		g_free(category->scheme);
-
-	if (category->scheme_prefix != NULL)
-		g_free(category->scheme_prefix);
-
-	if (category->scheme_suffix != NULL)
-		g_free(category->scheme_suffix);
-
-	if (category->term != NULL)
-		g_free(category->term);
-
-	g_free(category);
-}
-
-static void destroy_links(gpointer data, gpointer user_data)
-{
-	GDataFeedLink *link = (GDataFeedLink *)data;
-
-	if (link->href != NULL)
-		g_free(link->href);
-
-	if (link->rel != NULL)
-		g_free(link->rel);
-
-	if (link->title != NULL)
-		g_free(link->title);
-
-	if (link->type != NULL)
-		g_free(link->type);
-
-	g_free(link);
-}
-
-static void destroy_entries(gpointer data, gpointer user_data)
-{
-	GDataEntry *entry = GDATA_ENTRY(data);
-	g_object_unref(G_OBJECT(entry));
-}
-
-enum {
-	PROP_0,
-
-};
-
-static void
-gdata_feed_init(GTypeInstance *instance,
-		gpointer      g_class)
-{
-	GDataFeedPrivate *priv;
-
-	GDataFeed *self = (GDataFeed *)instance;
-
-	/* Private data set by g_type_class_add_private */
-	priv = GDATA_FEED_GET_PRIVATE(self);
-	priv->dispose_has_run = FALSE;
-
-	priv->content = NULL;
-	priv->contributor = NULL;
-	priv->id = NULL;
-	priv->link = NULL;
-	priv->published = NULL;
-	priv->rights = NULL;
-	priv->source = NULL;
-	priv->summary = NULL;
-	priv->title = NULL;
-	priv->updated = NULL;
-	priv->timezone = NULL;
-
-	priv->authors = NULL;
-	priv->links = NULL;
-	priv->categories = NULL;
-	priv->entries = NULL;
-
-	priv->field_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-	priv->feedXML = NULL;
-}
-
-static void
-gdata_feed_dispose(GObject *obj)
-{
-	GObjectClass *parent_class;
-	GDataFeedClass *klass;
-
-	GDataFeed *self = GDATA_FEED(obj);
-	GDataFeedPrivate *priv = GDATA_FEED_GET_PRIVATE(self);
-
-	if (priv->dispose_has_run) {
-		/* Don't run dispose twice */
-		return;
-	}
-
-	priv->dispose_has_run = TRUE;
-
-	/* Chain up to the parent class */
-	klass = GDATA_FEED_CLASS(g_type_class_peek(GDATA_TYPE_FEED));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-
-	parent_class->dispose(obj);
-}
-
-static void
-gdata_feed_finalize(GObject *obj)
-{
-	GDataFeedPrivate *priv;
-	GDataFeed *self = GDATA_FEED(obj);
-
-	GObjectClass *parent_class;
-	GDataFeedClass *klass;
-
-	priv = GDATA_FEED_GET_PRIVATE(self);
-	if (priv->entries != NULL) {
-		g_slist_foreach(priv->entries, (GFunc)destroy_entries, NULL);
-		g_slist_free(priv->entries);
-	}
-
-	if (priv->authors != NULL) {
-		g_slist_foreach(priv->authors, (GFunc)destroy_authors, NULL);
-		g_slist_free(priv->authors);
-	}
-
-	if (priv->links != NULL) {
-		g_slist_foreach(priv->links, (GFunc)destroy_links, NULL);
-		g_slist_free(priv->links);
-	}
-
-	if (priv->categories != NULL) {
-		g_slist_foreach(priv->categories, (GFunc)destroy_categories, NULL);
-		g_slist_free(priv->categories);
-	}
-
-	g_free (priv->updated);
-	g_free (priv->timezone);
-
-	if (priv->field_table != NULL)
-		g_hash_table_destroy(priv->field_table);
-
-	if (priv->feedXML != NULL)
-		g_free(priv->feedXML);
-
-
-	/* Chain up to the parent class */
-	klass = GDATA_FEED_CLASS(g_type_class_peek(GDATA_TYPE_FEED));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-	parent_class->finalize(obj);
-}
-
-static void
-gdata_feed_get_property (GObject *obj,
-		guint    property_id,
-		GValue  *value,
-		GParamSpec *pspec)
-{
-	GDataFeedPrivate *priv;
-
-	priv = GDATA_FEED_GET_PRIVATE(obj);
-
-}
-
-static void
-gdata_feed_set_property (GObject *obj,
-		guint    property_id,
-		const GValue *value,
-		GParamSpec   *pspec)
-{
-	GDataFeedPrivate *priv;
-	GDataFeed *self = (GDataFeed *) obj;
-
-	priv = GDATA_FEED_GET_PRIVATE(self);
-
-}
-
-static GObject * gdata_feed_constructor(GType type,
-		guint n_construct_properties,
-		GObjectConstructParam *construct_properties)
-{
-	GObject *obj;
-
-	GObjectClass *parent_class;
-	GDataFeedClass *klass;
-
-	/* Chain up to the parent class */
-	klass = GDATA_FEED_CLASS(g_type_class_peek(GDATA_TYPE_FEED));
-	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-
-	obj = parent_class->constructor(type, n_construct_properties, construct_properties);
-
-	return obj;
-
-}
-
-static void
-gdata_feed_class_init(gpointer g_class,
-		gpointer g_class_data)
-{
-	GObjectClass *gobject_class = G_OBJECT_CLASS(g_class);
-	GDataFeedClass *klass = GDATA_FEED_CLASS(g_class);
-
-
-	g_type_class_add_private(klass, sizeof (GDataFeedPrivate));
-
-	gobject_class->set_property = gdata_feed_set_property;
-	gobject_class->get_property = gdata_feed_get_property;
-
-
-	gobject_class->dispose     = gdata_feed_dispose;
-	gobject_class->finalize    = gdata_feed_finalize;
-	gobject_class->constructor = gdata_feed_constructor;
-
-}
-
-GType gdata_feed_get_type(void)
-{
-  static GType type = 0;
-  if (type == 0) {
-    static const GTypeInfo info = {
-      sizeof (GDataFeedClass),
-      NULL, /* base init */
-      NULL, /* base finalize */
-      gdata_feed_class_init, /* class init */
-      NULL, /* class finalize */
-      NULL, /* class data */
-      sizeof (GDataFeed),
-      0, /* n_preallocs */
-      gdata_feed_init /* instance init */
-    };
-    type = g_type_register_static(G_TYPE_OBJECT,"GDataFeedType", &info,0);
-  }
-  return type;
-}
-
-
-/*** API ***/
-	static GDataFeedAuthor *
-xmlnode_to_author(xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataFeedAuthor *author;
-	xmlChar *value;
-
-	author = g_new0(GDataFeedAuthor, 1);
-	author->email = NULL;
-	author->name  = NULL;
-	author->uri   = NULL;
-
-	cur = cur->xmlChildrenNode;
-	while (cur != NULL) {
-		if (!xmlStrcmp(cur->name, (xmlChar *)"email")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			author->email = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"name")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			author->name = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"uri")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			author->uri = g_strdup((gchar *)value);
-			xmlFree(value);
-		}
-		cur = cur->next;
-	}
-
-	return author;
-}
-
-static GDataFeedLink *
-xmlnode_to_link(xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataFeedLink *link;
-	xmlChar *value;
-
-	link = g_new0(GDataFeedLink, 1);
-	link->href = NULL;
-	link->rel = NULL;
-	link->title = NULL;
-	link->type = NULL;
-
-
-	value = xmlGetProp(cur, (xmlChar *)"href");
-	if (value) {
-		link->href = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"rel");
-	if (value) {
-		link->rel = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"title");
-	if (value) {
-		link->title = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"type");
-	if (value) {
-		link->type = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	return link;
-}
-
-
-static GDataFeedCategory *
-xmlnode_to_category(xmlDocPtr doc, xmlNodePtr cur)
-{
-	GDataFeedCategory *category;
-	xmlChar *value;
-
-	category = g_new0(GDataFeedCategory, 1);
-	category->label = NULL;
-	category->scheme = NULL;
-	category->scheme_prefix = NULL;
-	category->scheme_suffix = NULL;
-	category->term = NULL;
-
-	value = xmlGetProp(cur, (xmlChar *)"label");
-	if (value) {
-		category->label = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"scheme");
-	if (value) {
-		category->scheme = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-
-	value = xmlGetProp(cur, (xmlChar *)"term");
-	if (value) {
-		category->term = g_strdup((gchar *)value);
-		xmlFree(value);
-	}
-	return category;
-}
-
-static xmlNodePtr
-link_to_xmlnode (GDataFeedLink *link)
-{
-	xmlNodePtr cur;
-	cur = xmlNewNode (NULL, (xmlChar *)"link");
-
-	if (link->href) {
-		xmlSetProp (cur, (xmlChar *)"href", (xmlChar *)link->href);
-	}
-	if (link->rel) {
-		xmlSetProp (cur, (xmlChar *)"rel", (xmlChar *)link->rel);
-	}
-	if (link->title) {
-		xmlSetProp (cur, (xmlChar *)"title", (xmlChar *)link->title);
-	}
-	if (link->type) {
-		xmlSetProp (cur, (xmlChar *)"type", (xmlChar *)link->type);
-	}
-
-	return cur;
-}
-
-static xmlNodePtr
-author_to_xmlnode (GDataFeedAuthor *author)
-{
-	xmlNodePtr cur;
-	cur = xmlNewNode (NULL, (xmlChar *)"author");
-
-	if (author->name)
-	xmlNewChild (cur, NULL, (xmlChar *)"name", (xmlChar *)author->name);
-
-	if (author->email)
-	xmlNewChild (cur, NULL, (xmlChar *)"email", (xmlChar *)author->email);
-
-	if (author->uri)
-	xmlNewChild (cur, NULL, (xmlChar *)"uri", (xmlChar *)author->uri);
-
-	return cur;
-}
-
-static xmlNodePtr
-category_to_xmlnode (GDataFeedCategory *category)
-{
-	xmlNodePtr cur;
-	cur = xmlNewNode (NULL, (xmlChar *)"category");
-
-	if (category->label)
-		xmlSetProp (cur, (xmlChar *)"label", (xmlChar *)category->label);
-	if (category->scheme)
-		xmlSetProp (cur, (xmlChar *)"scheme", (xmlChar *)category->scheme);
-
-	return cur;
-}
-
-static xmlNodePtr
-entry_to_xmlnode (GDataEntry *entry)
-{
-	xmlDocPtr doc;
-	xmlNodePtr cur;
-	gchar *xmlEntry;
-
-	xmlEntry = gdata_entry_generate_xml (entry);
-	doc = xmlReadMemory (xmlEntry, strlen (xmlEntry), "feed.xml", NULL, 0);
-	cur = xmlDocGetRootElement (doc);
-
-	return cur;
-}
-
-GDataFeed *
-gdata_feed_new(void)
-{
-	return g_object_new(GDATA_TYPE_FEED, NULL);
-}
-
-
-GDataFeed *
-gdata_feed_new_from_xml(const gchar* feedXML, const gint length)
-{
-	GDataFeed *feed;
-	GDataFeedPrivate *priv;
-
-	xmlDocPtr doc;
-	xmlNodePtr cur;
-
-	xmlChar *value;
-	gint value_size;
-
-	g_return_val_if_fail(feedXML != NULL && *feedXML != '\0', NULL);
-	doc = xmlReadMemory(feedXML, length,
-			"feed.xml",
-			NULL,
-			0);
-
-	if (doc == NULL)
-		return NULL;
-
-	cur = xmlDocGetRootElement(doc);
-	if (cur == NULL) {
-		/* Empty */
-		xmlFreeDoc(doc);
-		return NULL;
-	}
-
-	if (xmlStrcmp(cur->name, (xmlChar *)"feed")) {
-		xmlFreeDoc(doc);
-		return NULL;
-	}
-
-	feed = g_object_new(GDATA_TYPE_FEED, NULL);
-	priv  = GDATA_FEED_GET_PRIVATE(feed);
-
-	cur = cur->xmlChildrenNode;
-	while (cur != NULL) {
-
-		if (!xmlStrcmp(cur->name, (xmlChar *)"author")) {
-			priv->authors = g_slist_prepend(priv->authors, xmlnode_to_author(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"link")) {
-			priv->links = g_slist_prepend(priv->links, xmlnode_to_link(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"category")) {
-			priv->categories = g_slist_prepend(priv->categories, xmlnode_to_category(doc, cur));
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"updated")) {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			priv->updated = g_strdup ((gchar*)value);
-			xmlFree(value);
-		} else if (!xmlStrcmp(cur->name, (xmlChar *)"timezone")) {
-			value = xmlGetProp (cur, (xmlChar *)"value");
-			g_free (priv->timezone);
-			priv->timezone = g_strdup ((gchar*)value);
-			xmlFree (value);
-		}
-		else if (!xmlStrcmp(cur->name, (xmlChar *)"entry")) {
-			priv->entries = g_slist_prepend(priv->entries, gdata_entry_new_from_xmlptr(doc,cur));
-		}
-		else {
-			value = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
-			g_hash_table_insert(priv->field_table, g_strdup((gchar *)cur->name),
-					g_strdup((gchar *)value));
-			xmlFree(value);
-		}
-		cur = cur->next;
-	}
-
-	xmlDocDumpFormatMemory(doc, &value, &value_size, 1);
-	priv->feedXML = g_strdup(feedXML);
-
-	xmlFree(value);
-	xmlFreeDoc(doc);
-
-	return feed;
-}
-
-
-gchar *
-gdata_feed_generate_xml(GDataFeed *feed)
-{
-	GDataFeedPrivate *priv;
-	xmlDocPtr doc;
-	xmlNodePtr cur;
-	xmlNodePtr root;
-	xmlNsPtr ns_os, ns_gd, ns_gcal;
-	xmlChar *xmlString;
-	gint xml_buffer_size;
-	GSList *list;
-
-	g_return_val_if_fail(feed != NULL, NULL);
-	g_return_val_if_fail(GDATA_IS_FEED(feed), NULL);
-
-	priv = GDATA_FEED_GET_PRIVATE(feed);
-
-	if (!priv->feedXML) {
-		doc = xmlNewDoc ((xmlChar *)"1.0");
-		root = xmlNewDocNode (doc, NULL, (xmlChar *)"feed", NULL);
-
-		xmlSetProp (root, (xmlChar *)"xmlns", (xmlChar *)"http://www.w3.org/2005/Atom";);
-		ns_os = xmlNewNs (root, (xmlChar *)"http://a9.com/-/spec/opensearchrss/1.0/";, (xmlChar *)"openSearch");
-		ns_gd = xmlNewNs (root, (xmlChar *)"http://schemas.google.com/g/2005";, (xmlChar *)"gd");
-		ns_gcal = xmlNewNs (root, (xmlChar *)"http://schemas.google.com/gcal/2005";, (xmlChar *)"gCal");
-
-		if (priv->id) {
-			cur = xmlNewChild (root, NULL, (xmlChar *)"id", NULL);
-			xmlNodeSetContent (cur, (xmlChar *)priv->id);
-		}
-
-		list = priv->categories;
-		while (list) {
-			cur = category_to_xmlnode (list->data);
-			xmlAddChild (root, cur);
-			list = g_slist_next (list);
-		}
-
-		list = priv->links;
-		while (list) {
-			cur = link_to_xmlnode (list->data);
-			xmlAddChild (root, cur);
-			list = g_slist_next (list);
-		}
-
-		list = priv->authors;
-		while (list) {
-			cur = author_to_xmlnode (list->data);
-			xmlAddChild (root, cur);
-			list = g_slist_next (list);
-		}
-
-		list = priv->entries;
-		while (list) {
-			cur = entry_to_xmlnode (list->data);
-			xmlAddChild (root, cur);
-			list = g_slist_next (list);
-		}
-		xmlDocDumpMemory (doc, &xmlString, &xml_buffer_size);
-		priv->feedXML = g_strdup ((gchar *)xmlString);
-		xmlFree (xmlString);
-		xmlFreeDoc (doc);
-		return priv->feedXML;
-	}
-	else {
-		return priv->feedXML;
-	}
-}
-
-gchar * gdata_feed_get_updated (GDataFeed *feed)
-{
-	GDataFeedPrivate *priv;
-	priv = GDATA_FEED_GET_PRIVATE (feed);
-
-	g_return_val_if_fail (feed !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_FEED(feed), NULL);
-
-	return priv->updated;
-}
-
-GSList *
-gdata_feed_get_entries (GDataFeed *feed)
-{
-	GDataFeedPrivate *priv;
-	priv = GDATA_FEED_GET_PRIVATE (feed);
-
-	g_return_val_if_fail (feed !=NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_FEED(feed), NULL);
-
-	return priv->entries;
-}
-
-/**
- * gdata_feed_get_timezone:
- * Returned pointer owns the feed, its value is like 'Indian/Christmas'
- **/
-const gchar *
-gdata_feed_get_timezone (GDataFeed *feed)
-{
-	GDataFeedPrivate *priv;
-
-	g_return_val_if_fail (feed != NULL, NULL);
-	g_return_val_if_fail (GDATA_IS_FEED (feed), NULL);
-	
-	priv = GDATA_FEED_GET_PRIVATE (feed);
-
-	return priv->timezone;
-}
diff --git a/servers/google/libgdata/gdata-feed.h b/servers/google/libgdata/gdata-feed.h
deleted file mode 100644
index c616a1d..0000000
--- a/servers/google/libgdata/gdata-feed.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbywiselyn gmail com>
- *  Jason Willis <zenbrother gmail com>
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef _GDATA_FEED_H_
-#define _GDATA_FEED_H_
-
-#include <glib.h>
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-
-#define GDATA_TYPE_FEED           (gdata_feed_get_type())
-#define GDATA_FEED(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj), GDATA_TYPE_FEED, GDataFeed))
-#define GDATA_FEED_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass), GDATA_TYPE_FEED, GDataFeedClass))
-#define GDATA_IS_FEED(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj), GDATA_TYPE_FEED))
-#define GDATA_IS_FEED_CLASS(klass)(G_TYPE_CHECK_CLASS_TYPE((klass), GDATA_TYPE_FEED))
-#define GDATA_FEED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDATA_TYPE_FEED, GDataFeedClass))
-
-typedef struct _GDataFeed GDataFeed;
-typedef struct _GDataFeedClass GDataFeedClass;
-typedef struct _GDataFeedPrivate GDataFeedPrivate;
-
-
-struct _GDataFeed {
-
-  GObject parent;
-
-  /* private */
-  GDataFeedPrivate *priv;
-};
-
-struct _GDataFeedClass {
-
-  GObjectClass parent_class;
-  /* class members */
-
-};
-
-GType gdata_feed_get_type(void);
-#endif
-
-/*** API ***/
-
-GDataFeed * gdata_feed_new(void);
-
-GDataFeed * gdata_feed_new_from_xml(const gchar *feedXML, const gint length);
-
-gchar * gdata_feed_generate_xml(GDataFeed *feed);
-
-gchar * gdata_feed_get_updated (GDataFeed *feed);
-
-GSList * gdata_feed_get_entries (GDataFeed *feed);
-
-const gchar *gdata_feed_get_timezone (GDataFeed *feed);
diff --git a/servers/google/libgdata/gdata-service-iface.c b/servers/google/libgdata/gdata-service-iface.c
deleted file mode 100644
index 07cddca..0000000
--- a/servers/google/libgdata/gdata-service-iface.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbywiselyn gmail com>
- *  Jason Willis <zenbrother gmail com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include <config.h>
-#include <gdata-service-iface.h>
-
-void
-gdata_service_set_proxy (GDataService *self, SoupURI *proxy)
-{
-	GDATA_SERVICE_GET_IFACE(self)->set_proxy(self, proxy);
-}
-
-void
-gdata_service_set_credentials (GDataService *self, const char *username, const gchar *password)
-{
-	GDATA_SERVICE_GET_IFACE(self)->set_credentials(self, username, password);
-}
-
-GDataFeed*
-gdata_service_get_feed (GDataService *self, const char* feedURL, GError **error)
-{
-	return GDATA_SERVICE_GET_IFACE(self)->get_feed(self, feedURL, error);
-}
-
-GDataEntry*
-gdata_service_insert_entry (GDataService *self, const gchar *feed_postURL, GDataEntry *entry, GError **error)
-{
-	return GDATA_SERVICE_GET_IFACE(self)->insert_entry(self, feed_postURL, entry, error);
-}
-
-GDataEntry*
-gdata_service_get_entry (GDataService *self, const gchar *entry_getURL, GError **error)
-{
-	return	GDATA_SERVICE_GET_IFACE(self)->get_entry(self, entry_getURL, error);
-}
-
-GDataEntry*
-gdata_service_update_entry (GDataService *self, GDataEntry *entry, GError **error)
-{
-	return GDATA_SERVICE_GET_IFACE(self)->update_entry(self, entry, error);
-}
-
-GDataEntry*
-gdata_service_update_entry_with_link (GDataService *self, GDataEntry *entry, gchar *link, GError **error)
-{
-	return GDATA_SERVICE_GET_IFACE(self)->update_entry_with_link(self, entry, link, error);
-}
-
-gboolean
-gdata_service_delete_entry (GDataService *self, GDataEntry *entry, GError **error)
-{
-	return GDATA_SERVICE_GET_IFACE(self)->delete_entry (self, entry, error);
-}
-
-static void
-gdata_service_base_init (gpointer g_class)
-{
-	static gboolean initialized = FALSE;
-
-	if (!initialized) {
-		/* create interface signals here. */
-		initialized = TRUE;
-	}
-}
-
-GType
-gdata_service_get_type (void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY(type == 0))
-	{
-		static const GTypeInfo info =
-		{
-			sizeof (GDataServiceIface),
-			gdata_service_base_init,   /* base_init */
-			NULL,   /* base_finalize */
-			NULL,   /* class_init */
-			NULL,   /* class_finalize */
-			NULL,   /* class_data */
-			0,
-			0,      /* n_preallocs */
-			NULL    /* instance_init */
-		};
-		type = g_type_register_static (G_TYPE_INTERFACE,
-				"GDataService", &info, 0);
-		g_type_interface_add_prerequisite (type, G_TYPE_OBJECT );
-	}
-
-	return type;
-}
diff --git a/servers/google/libgdata/gdata-service-iface.h b/servers/google/libgdata/gdata-service-iface.h
deleted file mode 100644
index f263d6d..0000000
--- a/servers/google/libgdata/gdata-service-iface.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors :
- *  Ebby Wiselyn <ebbywiselyn gmail com>
- *  Jason Willis <zenbrother gmail com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef _GDATA_SERVICE_H_
-#define _GDATA_SERVICE_H_
-
-#include <glib.h>
-#include <glib-object.h>
-#include <libsoup/soup.h>
-
-#include "gdata-feed.h"
-#include "gdata-entry.h"
-
-G_BEGIN_DECLS
-
-#define GDATA_TYPE_SERVICE           (gdata_service_get_type())
-#define GDATA_SERVICE(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj), GDATA_TYPE_SERVICE, GDataService))
-#define GDATA_SERVICE_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass), GDATA_TYPE_SERVICE, GDataServiceClass))
-#define GDATA_IS_SERVICE(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj), GDATA_TYPE_SERVICE))
-#define GDATA_IS_SERVICE_CLASS(klass)(G_TYPE_CHECK_CLASS_TYPE((klass), GDATA_TYPE_SERVICE))
-#define GDATA_SERVICE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GDATA_TYPE_SERVICE, GDataServiceIface))
-
-typedef struct _GDataService GDataService;
-typedef struct _GDataServiceIface GDataServiceIface;
-
-struct _GDataServiceIface {
-
-  GTypeInterface parent;
-
-  /* Public Methods */
-  void         (*set_proxy) (GDataService *self, SoupURI *proxy);
-  void         (*set_credentials)(GDataService *self, const gchar *username, const gchar *password);
-  GDataFeed *  (*get_feed)    (GDataService *self, const gchar *feed_getURL, GError **error);
-  GDataEntry*  (*insert_entry)(GDataService *self, const gchar *feed_postURL, GDataEntry *entry, GError **error);
-  GDataEntry*  (*get_entry)   (GDataService *self, const gchar *entry_getURL, GError **error);
-  GDataEntry*  (*update_entry)(GDataService *self, GDataEntry *entry, GError **error);
-  GDataEntry*  (*update_entry_with_link)(GDataService *self, GDataEntry *entry, const gchar *link, GError **error);
-  gboolean     (*delete_entry)(GDataService *self, GDataEntry *entry, GError **error);
-};
-
-GType gdata_service_get_type(void);
-
-/* Function Prototypes */
-void        gdata_service_set_proxy (GDataService *self, SoupURI *proxy);
-void        gdata_service_set_credentials(GDataService *self, const gchar *username, const gchar *password);
-
-GDataFeed*  gdata_service_get_feed(GDataService *self, const gchar *feed_getURL, GError **error);
-
-GDataEntry* gdata_service_insert_entry(GDataService *self, const gchar *feed_postURL, GDataEntry *entry, GError **error);
-
-GDataEntry* gdata_service_get_entry(GDataService *self, const gchar *entry_getURL, GError **error);
-
-GDataEntry* gdata_service_update_entry(GDataService *self, GDataEntry *entry, GError **error);
-
-GDataEntry* gdata_service_update_entry_with_link(GDataService *self, GDataEntry *entry, gchar *link, GError **error);
-
-gboolean    gdata_service_delete_entry(GDataService *self, GDataEntry *entry, GError **error);
-
-G_END_DECLS
-
-#endif
diff --git a/servers/google/libgdata/libgdata.pc.in b/servers/google/libgdata/libgdata.pc.in
deleted file mode 100644
index 49c4c7f..0000000
--- a/servers/google/libgdata/libgdata.pc.in
+++ /dev/null
@@ -1,15 +0,0 @@
-prefix= prefix@
-exec_prefix= exec_prefix@
-libdir= libdir@
-includedir= includedir@
-datarootdir= datarootdir@
-datadir= datadir@
-
-privincludedir= privincludedir@
-
-Name: libgdata
-Description: Client library for accessing google POA through SOAP interface
-Version: @VERSION@
-Requires: libsoup-2.4 >= @LIBSOUP_REQUIRED@ 
-Libs: -L${libdir} -lgdata-1.2
-Cflags: -I${privincludedir}/google/libgdata



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