diff options
author | Chris Toshok <toshok@ximian.com> | 2001-10-16 07:13:52 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2001-10-16 07:13:52 +0800 |
commit | 31c48795638fe625ac2f19d01cb9791104768424 (patch) | |
tree | 88f0e7617ed6913b69d52b36ed59465e2364c9b1 /addressbook/backend | |
parent | 4bcda57628342b0015417c5cf9c2932e1f8e8f54 (diff) | |
download | gsoc2013-evolution-31c48795638fe625ac2f19d01cb9791104768424.tar.gz gsoc2013-evolution-31c48795638fe625ac2f19d01cb9791104768424.tar.zst gsoc2013-evolution-31c48795638fe625ac2f19d01cb9791104768424.zip |
unref op->view. (pas_backend_ldap_process_create_card): ref op->view.
2001-10-15 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-backend-ldap.c (create_card_dtor): unref
op->view.
(pas_backend_ldap_process_create_card): ref op->view.
(remove_card_dtor): unref op->view.
(pas_backend_ldap_process_remove_card): ref op->view.
(modify_card_dtor): unref op->view.
(pas_backend_ldap_process_modify_card): ref op->view.
(ldap_search_dtor): unref op->view.
(pas_backend_ldap_search): ref op->view.
svn path=/trunk/; revision=13690
Diffstat (limited to 'addressbook/backend')
-rw-r--r-- | addressbook/backend/pas/pas-backend-file.c | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c index 56c6485e7f..08698a74ca 100644 --- a/addressbook/backend/pas/pas-backend-file.c +++ b/addressbook/backend/pas/pas-backend-file.c @@ -508,6 +508,7 @@ do_create(PASBackend *backend, } else { + g_free (id); ret_val = NULL; } @@ -575,8 +576,20 @@ pas_backend_file_process_remove_card (PASBackend *backend, int db_error; EIterator *iterator; char *vcard_string; + const char *id; - string_to_dbt (req->id, &id_dbt); + /* This is disgusting, but for a time cards were added with + ID's that are no longer used (they contained both the uri + and the id.) If we recognize it as a uri (file:///...) trim + off everything before the last '/', and use that as the + id.*/ + if (!strncmp (req->id, "file:///", strlen ("file:///"))) { + id = strrchr (req->id, '/') + 1; + } + else + id = req->id; + + string_to_dbt (id, &id_dbt); memset (&vcard_dbt, 0, sizeof (vcard_dbt)); db_error = db->get (db, NULL, &id_dbt, &vcard_dbt, 0); @@ -632,14 +645,25 @@ pas_backend_file_process_modify_card (PASBackend *backend, int db_error; EIterator *iterator; ECard *card; - const char *id; + const char *id, *lookup_id; char *old_vcard_string; /* create a new ecard from the request data */ card = e_card_new(req->vcard); id = e_card_get_id(card); - string_to_dbt (id, &id_dbt); + /* This is disgusting, but for a time cards were added with + ID's that are no longer used (they contained both the uri + and the id.) If we recognize it as a uri (file:///...) trim + off everything before the last '/', and use that as the + id.*/ + if (!strncmp (id, "file:///", strlen ("file:///"))) { + lookup_id = strrchr (id, '/') + 1; + } + else + lookup_id = id; + + string_to_dbt (lookup_id, &id_dbt); memset (&vcard_dbt, 0, sizeof (vcard_dbt)); /* get the old ecard - the one that's presently in the db */ |