From f41e2fe50e08e52411d104f6e4aa26b31d0a9e86 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Wed, 30 Jan 2002 21:11:13 +0000 Subject: compute the change db filename based on our contact db filename. 2002-01-30 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_changes): compute the change db filename based on our contact db filename. (pas_backend_file_load_uri): store the filename in bf->priv->filename. (pas_backend_file_destroy): free the filename, and (!) free bf->priv too. svn path=/trunk/; revision=15529 --- addressbook/ChangeLog | 9 +++++++++ addressbook/backend/pas/pas-backend-file.c | 22 ++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) (limited to 'addressbook') diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index dfeb7a70e9..f7b8e5f16f 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,12 @@ +2002-01-30 Chris Toshok + + * backend/pas/pas-backend-file.c (pas_backend_file_changes): + compute the change db filename based on our contact db filename. + (pas_backend_file_load_uri): store the filename in + bf->priv->filename. + (pas_backend_file_destroy): free the filename, and (!) free + bf->priv too. + 2002-01-28 Jeffrey Stedfast * backend/ebook/e-destination.c (e_destination_is_valid): Revert diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c index 56c8d545cc..57f9462bb8 100644 --- a/addressbook/backend/pas/pas-backend-file.c +++ b/addressbook/backend/pas/pas-backend-file.c @@ -54,6 +54,7 @@ struct _PASBackendFilePrivate { GList *clients; gboolean loaded; char *uri; + char *filename; DB *file_db; EList *book_views; gboolean writable; @@ -369,6 +370,7 @@ pas_backend_file_changes (PASBackendFile *bf, DBC *dbc; PASBackendFileBookView *view = (PASBackendFileBookView *)cnstview; PASBackendFileChangeContext *ctx = cnstview->change_context; + char *dirname, *slash; memset (&id_dbt, 0, sizeof (id_dbt)); memset (&vcard_dbt, 0, sizeof (vcard_dbt)); @@ -376,11 +378,16 @@ pas_backend_file_changes (PASBackendFile *bf, if (!bf->priv->loaded) return; - /* Find the changed ids - FIX ME, path should not be hard coded */ - filename = g_strdup_printf ("%s/evolution/local/Contacts/%s.db", g_get_home_dir (), view->change_id); + /* Find the changed ids */ + dirname = g_strdup (bf->priv->filename); + slash = strrchr (dirname, '/'); + *slash = '\0'; + + filename = g_strdup_printf ("%s/%s.db", dirname, view->change_id); ehash = e_dbhash_new (filename); g_free (filename); - + g_free (dirname); + db_error = db->cursor (db, NULL, &dbc, 0); if (db_error != 0) { @@ -1303,9 +1310,6 @@ pas_backend_file_load_uri (PASBackend *backend, } } - g_free (filename); - - if (db_error != 0) { bf->priv->file_db = NULL; return FALSE; @@ -1325,6 +1329,9 @@ pas_backend_file_load_uri (PASBackend *backend, g_free(bf->priv->uri); bf->priv->uri = g_strdup (uri); + g_free (bf->priv->filename); + bf->priv->filename = filename; + return TRUE; } @@ -1471,6 +1478,9 @@ pas_backend_file_destroy (GtkObject *object) gtk_object_unref(GTK_OBJECT(bf->priv->book_views)); g_free (bf->priv->uri); + g_free (bf->priv->filename); + + g_free (bf->priv); GTK_OBJECT_CLASS (pas_backend_file_parent_class)->destroy (object); } -- cgit v1.2.3