summaryrefslogtreecommitdiff
path: root/libedataserver
diff options
context:
space:
mode:
authorHans Petter Jansson <hpj@ximian.com>2003-12-17 00:43:56 +0000
committerHans Petter <hansp@src.gnome.org>2003-12-17 00:43:56 +0000
commit8c76cacf3a622a9366c5ea825728e8576b465ed8 (patch)
tree3c917c9f2013e69dc98dfd4c6083e2ecded75379 /libedataserver
parent19a0f2dc3566f87737bd7dd9cc33da9e8474046d (diff)
downloadevolution-data-server-8c76cacf3a622a9366c5ea825728e8576b465ed8.tar.gz
Implement. Compares two sources based on UID and full URI.
2003-12-16 Hans Petter Jansson <hpj@ximian.com> * libedataserver/e-source.c (e_source_equal): Implement. Compares two sources based on UID and full URI.
Diffstat (limited to 'libedataserver')
-rw-r--r--libedataserver/e-source.c26
-rw-r--r--libedataserver/e-source.h2
2 files changed, 28 insertions, 0 deletions
diff --git a/libedataserver/e-source.c b/libedataserver/e-source.c
index 71631d399..abb4977be 100644
--- a/libedataserver/e-source.c
+++ b/libedataserver/e-source.c
@@ -206,6 +206,32 @@ e_source_new_from_xml_node (xmlNodePtr node)
return NULL;
}
+gboolean
+e_source_equal (ESource *source_1, ESource *source_2)
+{
+ gboolean equal = FALSE;
+
+ g_return_val_if_fail (E_IS_SOURCE (source_1), FALSE);
+ g_return_val_if_fail (E_IS_SOURCE (source_2), FALSE);
+
+ if (source_1->priv->uid && source_2->priv->uid &&
+ !strcmp (source_1->priv->uid, source_2->priv->uid)) {
+ equal = TRUE;
+ } else {
+ gchar *uri_1, *uri_2;
+
+ uri_1 = e_source_get_uri (source_1);
+ uri_2 = e_source_get_uri (source_2);
+
+ if (uri_1 && uri_2 && !strcmp (uri_1, uri_2))
+ equal = TRUE;
+
+ g_free (uri_1);
+ g_free (uri_2);
+ }
+
+ return equal;
+}
static void
import_properties (ESource *source,
diff --git a/libedataserver/e-source.h b/libedataserver/e-source.h
index 1a668ba1b..1a8f40842 100644
--- a/libedataserver/e-source.h
+++ b/libedataserver/e-source.h
@@ -62,6 +62,8 @@ ESource *e_source_new_from_standalone_xml (const char *xml);
ESource *e_source_copy (ESource *source);
+gboolean e_source_equal (ESource *source_1, ESource *source_2);
+
gboolean e_source_update_from_xml_node (ESource *source,
xmlNodePtr node,
gboolean *changed_return);