static void remove_contact_ready_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { EBookClient *book_client = E_BOOK_CLIENT (source_object); EContactMergingLookup *lookup = user_data; GError *error = NULL; g_return_if_fail (book_client != NULL); g_return_if_fail (lookup != NULL); e_book_client_remove_contact_finish (book_client, result, &error); if (error != NULL) { g_warning ( "%s: Failed to remove contact: %s", G_STRFUNC, error->message); g_error_free (error); } e_book_client_add_contact ( book_client, lookup->contact, NULL, add_contact_ready_cb, lookup); }
static void remove_contact_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { RemoveData *data = (RemoveData *) user_data; GError *error = NULL; if (!e_book_client_remove_contact_finish (E_BOOK_CLIENT (source_object), result, &error)) g_error ("remove contact finish: %s", error->message); check_removed_contact (E_BOOK_CLIENT (source_object), data->uid); g_main_loop_quit (data->loop); }