diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2001-10-10 02:14:21 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2001-10-10 02:14:21 +0800 |
commit | 6b431c0e47b33d6076e5b6cfb7b0be6f33065c89 (patch) | |
tree | e03b99618d19e1229a2fae94c32bf52bf3c9719d /calendar/pcs | |
parent | beaba25d506b981d39340bb071dcb58baf106265 (diff) | |
download | gsoc2013-evolution-6b431c0e47b33d6076e5b6cfb7b0be6f33065c89.tar.gz gsoc2013-evolution-6b431c0e47b33d6076e5b6cfb7b0be6f33065c89.tar.zst gsoc2013-evolution-6b431c0e47b33d6076e5b6cfb7b0be6f33065c89.zip |
deal correctly with URIs to be inserted into the hash table, so that we
2001-10-09 Rodrigo Moya <rodrigo@ximian.com>
* pcs/cal-factory.c (lookup_backend, add_backend): deal correctly with
URIs to be inserted into the hash table, so that we don't add the same
backend over and over because the URI strings were different (although
refering to the same backend)
svn path=/trunk/; revision=13523
Diffstat (limited to 'calendar/pcs')
-rw-r--r-- | calendar/pcs/cal-factory.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/calendar/pcs/cal-factory.c b/calendar/pcs/cal-factory.c index 9b4bc2fc67..a404ee49f4 100644 --- a/calendar/pcs/cal-factory.c +++ b/calendar/pcs/cal-factory.c @@ -103,10 +103,20 @@ lookup_backend (CalFactory *factory, const char *uristr) { CalFactoryPrivate *priv; CalBackend *backend; + EUri *uri; + char *tmp; priv = factory->priv; - backend = g_hash_table_lookup (priv->backends, uristr); + uri = e_uri_new (uristr); + if (!uri) + return NULL; + + tmp = e_uri_to_string (uri, FALSE); + backend = g_hash_table_lookup (priv->backends, tmp); + g_free (tmp); + e_uri_free (uri); + return backend; } @@ -152,10 +162,18 @@ static void add_backend (CalFactory *factory, const char *uristr, CalBackend *backend) { CalFactoryPrivate *priv; + EUri *uri; + char *tmp; priv = factory->priv; - g_hash_table_insert (priv->backends, g_strdup (uristr), backend); + uri = e_uri_new (uristr); + if (!uri) + return; + + tmp = e_uri_to_string (uri, FALSE); + g_hash_table_insert (priv->backends, tmp, backend); + e_uri_free (uri); gtk_signal_connect (GTK_OBJECT (backend), "last_client_gone", GTK_SIGNAL_FUNC (backend_last_client_gone_cb), |