[balsa/wip/gtk4: 174/351] address-book-gpe: Declare it final



commit 415cb82ef9a496f58038184ed48bf0c3fe77d25d
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Wed Feb 14 15:11:26 2018 -0500

    address-book-gpe: Declare it final
    
    Use G_DECLARE_FINAL_TYPE for LibBalsaAddressBookGpe and take all members
    private.

 libbalsa/address-book-gpe.c |  226 +++++++++++++++++++++----------------------
 libbalsa/address-book-gpe.h |   26 +-----
 src/address-book-config.c   |    9 +-
 3 files changed, 118 insertions(+), 143 deletions(-)
---
diff --git a/libbalsa/address-book-gpe.c b/libbalsa/address-book-gpe.c
index 0f5d106..e33b3e4 100644
--- a/libbalsa/address-book-gpe.c
+++ b/libbalsa/address-book-gpe.c
@@ -47,12 +47,10 @@
     do {gchar* dir = g_strconcat(g_get_home_dir(), "/.gpe", NULL);\
  mkdir(dir, S_IRUSR|S_IWUSR|S_IXUSR); g_free(dir);}while(0)
 
-static LibBalsaAddressBookClass *parent_class = NULL;
-
 static void
 libbalsa_address_book_gpe_class_init(LibBalsaAddressBookGpeClass *
                                      klass);
-static void libbalsa_address_book_gpe_init(LibBalsaAddressBookGpe * ab);
+static void libbalsa_address_book_gpe_init(LibBalsaAddressBookGpe * ab_gpe);
 static void libbalsa_address_book_gpe_finalize(GObject * object);
 
 static LibBalsaABErr libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab, 
@@ -61,7 +59,7 @@ static LibBalsaABErr libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
                                                     gpointer closure);
 
 static void
-libbalsa_address_book_gpe_close_db(LibBalsaAddressBookGpe *ab);
+libbalsa_address_book_gpe_close_db(LibBalsaAddressBookGpe *ab_gpe);
 static LibBalsaABErr
 libbalsa_address_book_gpe_add_address(LibBalsaAddressBook *ab,
                                       LibBalsaAddress *address);
@@ -77,31 +75,21 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
 static GList *libbalsa_address_book_gpe_alias_complete(LibBalsaAddressBook *ab,
                                                        const gchar *prefix);
 
-GType libbalsa_address_book_gpe_get_type(void)
-{
-    static GType address_book_gpe_type = 0;
-
-    if (!address_book_gpe_type) {
-       static const GTypeInfo address_book_gpe_info = {
-           sizeof(LibBalsaAddressBookGpeClass),
-            NULL,               /* base_init */
-            NULL,               /* base_finalize */
-           (GClassInitFunc) libbalsa_address_book_gpe_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-           sizeof(LibBalsaAddressBookGpe),
-            0,                  /* n_preallocs */
-           (GInstanceInitFunc) libbalsa_address_book_gpe_init
-       };
-
-       address_book_gpe_type =
-            g_type_register_static(LIBBALSA_TYPE_ADDRESS_BOOK,
-                                  "LibBalsaAddressBookGpe",
-                                  &address_book_gpe_info, 0);
-    }
+struct _LibBalsaAddressBookGpe {
+    LibBalsaAddressBook parent;
+#ifdef HAVE_SQLITE3
+    sqlite3 *db;
+#else                           /* HAVE_SQLITE3 */
+    sqlite *db;
+#endif                          /* HAVE_SQLITE3 */
+};
 
-    return address_book_gpe_type;
-}
+struct _LibBalsaAddressBookGpeClass {
+    LibBalsaAddressBookClass parent_class;
+};
+
+G_DEFINE_TYPE(LibBalsaAddressBookGpe, libbalsa_address_book_gpe,
+        LIBBALSA_TYPE_ADDRESS_BOOK)
 
 static void
 libbalsa_address_book_gpe_class_init(LibBalsaAddressBookGpeClass * klass)
@@ -109,8 +97,6 @@ libbalsa_address_book_gpe_class_init(LibBalsaAddressBookGpeClass * klass)
     LibBalsaAddressBookClass *address_book_class;
     GObjectClass *object_class;
 
-    parent_class = g_type_class_peek_parent(klass);
-
     object_class = G_OBJECT_CLASS(klass);
     address_book_class = LIBBALSA_ADDRESS_BOOK_CLASS(klass);
 
@@ -128,10 +114,14 @@ libbalsa_address_book_gpe_class_init(LibBalsaAddressBookGpeClass * klass)
 }
 
 static void
-libbalsa_address_book_gpe_init(LibBalsaAddressBookGpe * ab)
+libbalsa_address_book_gpe_init(LibBalsaAddressBookGpe * ab_gpe)
 {
-    ab->db = NULL;
-    LIBBALSA_ADDRESS_BOOK(ab)->is_expensive = FALSE;
+    LibBalsaAddressBook *ab;
+
+    ab_gpe->db = NULL;
+
+    ab = LIBBALSA_ADDRESS_BOOK(ab_gpe);
+    libbalsa_address_book_set_is_expensive(ab, FALSE);
 }
 
 static void
@@ -139,23 +129,24 @@ libbalsa_address_book_gpe_finalize(GObject * object)
 {
     libbalsa_address_book_gpe_close_db(LIBBALSA_ADDRESS_BOOK_GPE(object));
 
-    G_OBJECT_CLASS(parent_class)->finalize(object);
+    G_OBJECT_CLASS(libbalsa_address_book_gpe_parent_class)->finalize(object);
 }
 
 LibBalsaAddressBook *
 libbalsa_address_book_gpe_new(const gchar *name)
 {
-    LibBalsaAddressBookGpe *gpe;
+    LibBalsaAddressBookGpe *ab_gpe;
     LibBalsaAddressBook *ab;
 
-    gpe = LIBBALSA_ADDRESS_BOOK_GPE(g_object_new
-                                    (LIBBALSA_TYPE_ADDRESS_BOOK_GPE,
-                                     NULL));
-    ab = LIBBALSA_ADDRESS_BOOK(gpe);
+    ab_gpe = LIBBALSA_ADDRESS_BOOK_GPE(g_object_new
+                                       (LIBBALSA_TYPE_ADDRESS_BOOK_GPE,
+                                        NULL));
+    ab = LIBBALSA_ADDRESS_BOOK(ab_gpe);
+    libbalsa_address_book_set_name(ab, name);
 
-    ab->name = g_strdup(name);
     /* We open on demand... */
-    gpe->db = NULL;
+    ab_gpe->db = NULL;
+
     return ab;
 }
 
@@ -163,15 +154,15 @@ libbalsa_address_book_gpe_new(const gchar *name)
  * Close the SQLite db....
  */
 static void
-libbalsa_address_book_gpe_close_db(LibBalsaAddressBookGpe * ab)
+libbalsa_address_book_gpe_close_db(LibBalsaAddressBookGpe * ab_gpe)
 {
-    if (ab->db) {
+    if (ab_gpe->db) {
 #ifdef HAVE_SQLITE3
-       sqlite3_close(ab->db);
+       sqlite3_close(ab_gpe->db);
 #else                           /* HAVE_SQLITE3 */
-       sqlite_close(ab->db);
+       sqlite_close(ab_gpe->db);
 #endif                          /* HAVE_SQLITE3 */
-       ab->db = NULL;
+       ab_gpe->db = NULL;
     }
 }
 
@@ -189,7 +180,7 @@ static const char *schema2_str =
 "create table contacts_urn (urn INTEGER PRIMARY KEY)";
 
 static int
-libbalsa_address_book_gpe_open_db(LibBalsaAddressBookGpe * ab)
+libbalsa_address_book_gpe_open_db(LibBalsaAddressBookGpe * ab_gpe)
 {
 #ifdef HAVE_SQLITE3
     gchar *dir, *name;
@@ -199,31 +190,31 @@ libbalsa_address_book_gpe_open_db(LibBalsaAddressBookGpe * ab)
     name = g_build_filename(dir, "contacts", NULL);
     g_free(dir);
 
-    if (sqlite3_open(name, &ab->db) != SQLITE_OK) {
-        printf("Cannot open ā€œ%sā€: %s\n", name, sqlite3_errmsg(ab->db));
+    if (sqlite3_open(name, &ab_gpe->db) != SQLITE_OK) {
+        printf("Cannot open ā€œ%sā€: %s\n", name, sqlite3_errmsg(ab_gpe->db));
         g_free(name);
-        sqlite3_close(ab->db);
-        ab->db = NULL;
+        sqlite3_close(ab_gpe->db);
+        ab_gpe->db = NULL;
         return 0;
     }
     g_free(name);
 
-    sqlite3_exec(ab->db, schema_str,  NULL, NULL, NULL);
-    sqlite3_exec(ab->db, schema2_str, NULL, NULL, NULL);
+    sqlite3_exec(ab_gpe->db, schema_str,  NULL, NULL, NULL);
+    sqlite3_exec(ab_gpe->db, schema2_str, NULL, NULL, NULL);
 #else                           /* HAVE_SQLITE3 */
     gchar *name, *errmsg = NULL;
 
     ASSURE_GPE_DIR;
     name = g_strconcat(g_get_home_dir(), DB_NAME, NULL);
-    ab->db = sqlite_open(name, 0, &errmsg);
+    ab_gpe->db = sqlite_open(name, 0, &errmsg);
     g_free(name);
-    if(ab->db == NULL) {
+    if(ab_gpe->db == NULL) {
         printf("Cannot open: %s\n", errmsg);
         free(errmsg);
         return 0;
     }
-    sqlite_exec (ab->db, schema_str,  NULL, NULL, NULL);
-    sqlite_exec (ab->db, schema2_str, NULL, NULL, NULL);
+    sqlite_exec (ab_gpe->db, schema_str,  NULL, NULL, NULL);
+    sqlite_exec (ab_gpe->db, schema2_str, NULL, NULL, NULL);
 #endif                          /* HAVE_SQLITE3 */
 
     return 1;
@@ -295,7 +286,7 @@ struct gpe_closure {
     gpointer closure;
     LibBalsaAddressBookGpe *gpe;
 };
-                                             
+
 static int
 gpe_read_address(void *arg, int argc, char **argv, char **names)
 {
@@ -337,26 +328,26 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
                                LibBalsaAddressBookLoadFunc callback,
                                gpointer closure)
 {
-    LibBalsaAddressBookGpe *gpe_ab;
+    LibBalsaAddressBookGpe *ab_gpe;
     gchar *err = NULL;
     struct gpe_closure gc;
     int r;
     LibBalsaABErr ret;
 
-    g_return_val_if_fail ( LIBBALSA_IS_ADDRESS_BOOK_GPE(ab), LBABERR_OK);
+    g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK_GPE(ab), LBABERR_OK);
 
     if (callback == NULL)
        return LBABERR_OK;
 
-    gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+    ab_gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
     
-    if (gpe_ab->db == NULL)
-        if (!libbalsa_address_book_gpe_open_db(gpe_ab))
+    if (ab_gpe->db == NULL)
+        if (!libbalsa_address_book_gpe_open_db(ab_gpe))
             return LBABERR_CANNOT_CONNECT;
 
     gc.callback = callback;
     gc.closure  = closure;
-    gc.gpe      = gpe_ab;
+    gc.gpe      = ab_gpe;
     /* FIXME: error reporting */
 #ifdef HAVE_SQLITE3
     if (filter && *filter) {
@@ -369,17 +360,17 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
                             " upper(tag)='HOME.EMAIL') "
                             "and value LIKE '%q%%'",
                             filter);
-        r = sqlite3_exec(gpe_ab->db, sql, gpe_read_address, &gc, &err);
+        r = sqlite3_exec(ab_gpe->db, sql, gpe_read_address, &gc, &err);
         sqlite3_free(sql);
     } else {
-        r = sqlite3_exec(gpe_ab->db,
+        r = sqlite3_exec(ab_gpe->db,
                          "select distinct urn from contacts_urn",
                          gpe_read_address, &gc, &err);
     }
 #else                           /* HAVE_SQLITE3 */
     if(filter && *filter) {
         r = sqlite_exec_printf
-            (gpe_ab->db, 
+            (ab_gpe->db, 
              "select distinct urn from contacts where "
              "(upper(tag)='FAMILY_NAME' or upper(tag)='GIVEN_NAME' or "
              "upper(tag)='NAME' or "
@@ -387,7 +378,7 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
              "and value LIKE '%q%%'",
              gpe_read_address, &gc, &err, filter);
     } else {
-        r = sqlite_exec(gpe_ab->db, "select distinct urn from contacts_urn",
+        r = sqlite_exec(ab_gpe->db, "select distinct urn from contacts_urn",
                         gpe_read_address, &gc, &err);
     }
 #endif                          /* HAVE_SQLITE3 */
@@ -428,7 +419,7 @@ static LibBalsaABErr
 libbalsa_address_book_gpe_add_address(LibBalsaAddressBook *ab,
                                        LibBalsaAddress *address)
 {
-    LibBalsaAddressBookGpe *gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+    LibBalsaAddressBookGpe *ab_gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
     int r;
     guint id;
     char *err = NULL;
@@ -439,18 +430,18 @@ libbalsa_address_book_gpe_add_address(LibBalsaAddressBook *ab,
     g_return_val_if_fail(address, LBABERR_CANNOT_WRITE);
     g_return_val_if_fail(address->address_list, LBABERR_CANNOT_WRITE);
 
-    if (gpe_ab->db == NULL) {
-        if(!libbalsa_address_book_gpe_open_db(gpe_ab))
+    if (ab_gpe->db == NULL) {
+        if(!libbalsa_address_book_gpe_open_db(ab_gpe))
            return LBABERR_CANNOT_CONNECT;
     }
 #ifdef HAVE_SQLITE3
-    r = sqlite3_exec(gpe_ab->db, "insert into contacts_urn values (NULL)",
+    r = sqlite3_exec(ab_gpe->db, "insert into contacts_urn values (NULL)",
                      NULL, NULL, &err);
     if (r != SQLITE_OK) {
         libbalsa_address_book_set_status(ab, g_strdup(err));
         sqlite3_free(err);
 #else                           /* HAVE_SQLITE3 */
-    r = sqlite_exec(gpe_ab->db, "insert into contacts_urn values (NULL)",
+    r = sqlite_exec(ab_gpe->db, "insert into contacts_urn values (NULL)",
                     NULL, NULL, &err);
     if (r != SQLITE_OK) {
         libbalsa_address_book_set_status(ab, g_strdup(err));
@@ -461,25 +452,25 @@ libbalsa_address_book_gpe_add_address(LibBalsaAddressBook *ab,
     /* FIXME: duplicate detection! */
 
 #ifdef HAVE_SQLITE3
-    id = sqlite3_last_insert_rowid(gpe_ab->db);
+    id = sqlite3_last_insert_rowid(ab_gpe->db);
 #else                           /* HAVE_SQLITE3 */
-    id = sqlite_last_insert_rowid(gpe_ab->db);
+    id = sqlite_last_insert_rowid(ab_gpe->db);
 #endif                          /* HAVE_SQLITE3 */
-    INSERT_ATTR(gpe_ab->db,id, "NAME",        address->full_name);
-    INSERT_ATTR(gpe_ab->db,id, "GIVEN_NAME",  address->first_name);
-    INSERT_ATTR(gpe_ab->db,id, "FAMILY_NAME", address->last_name);
-    INSERT_ATTR(gpe_ab->db,id, "NICKNAME",    address->nick_name);
-    INSERT_ATTR(gpe_ab->db,id, "WORK.ORGANIZATION", address->organization);
-    INSERT_ATTR(gpe_ab->db,id, "WORK.EMAIL",
+    INSERT_ATTR(ab_gpe->db,id, "NAME",        address->full_name);
+    INSERT_ATTR(ab_gpe->db,id, "GIVEN_NAME",  address->first_name);
+    INSERT_ATTR(ab_gpe->db,id, "FAMILY_NAME", address->last_name);
+    INSERT_ATTR(ab_gpe->db,id, "NICKNAME",    address->nick_name);
+    INSERT_ATTR(ab_gpe->db,id, "WORK.ORGANIZATION", address->organization);
+    INSERT_ATTR(ab_gpe->db,id, "WORK.EMAIL",
                 (char*)address->address_list->data);
 #ifdef HAVE_SQLITE3
     sql = sqlite3_mprintf("insert into contacts values "
                           "('%d', 'MODIFIED', %d)",
                           id, time(NULL));
-    sqlite3_exec(gpe_ab->db, sql, NULL, NULL, NULL);
+    sqlite3_exec(ab_gpe->db, sql, NULL, NULL, NULL);
     sqlite3_free(sql);
 #else                           /* HAVE_SQLITE3 */
-    sqlite_exec_printf(gpe_ab->db, "insert into contacts values "
+    sqlite_exec_printf(ab_gpe->db, "insert into contacts values "
                        "('%d', 'MODIFIED', %d)", NULL, NULL, NULL,
                        id, time(NULL));
 #endif                          /* HAVE_SQLITE3 */
@@ -548,21 +539,21 @@ static LibBalsaABErr
 libbalsa_address_book_gpe_remove_address(LibBalsaAddressBook *ab,
                                           LibBalsaAddress *address)
 {
-    LibBalsaAddressBookGpe *gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+    LibBalsaAddressBookGpe *ab_gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
     guint uid;
     char *err;
     g_return_val_if_fail(address, LBABERR_CANNOT_WRITE);
     g_return_val_if_fail(address->address_list, LBABERR_CANNOT_WRITE);
 
-    if (gpe_ab->db == NULL) {
-        if( !libbalsa_address_book_gpe_open_db(gpe_ab))
+    if (ab_gpe->db == NULL) {
+        if( !libbalsa_address_book_gpe_open_db(ab_gpe))
            return LBABERR_CANNOT_CONNECT;
     }
     uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(address), "urn"));
     if(!uid)/* safety check, perhaps unnecessary */
         return LBABERR_CANNOT_WRITE;
         
-    err = db_delete_by_uid(gpe_ab->db, uid);
+    err = db_delete_by_uid(ab_gpe->db, uid);
     if(err) {
         libbalsa_address_book_set_status(ab, g_strdup(err));
 #ifdef HAVE_SQLITE3
@@ -600,7 +591,7 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
                                          LibBalsaAddress *address,
                                          LibBalsaAddress *newval)
 {
-    LibBalsaAddressBookGpe *gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+    LibBalsaAddressBookGpe *ab_gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
     guint uid;
     int r;
     char *err;
@@ -612,8 +603,8 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
     g_return_val_if_fail(address->address_list, LBABERR_CANNOT_WRITE);
     g_return_val_if_fail(newval->address_list, LBABERR_CANNOT_WRITE);
 
-    if (gpe_ab->db == NULL) {
-        if( !libbalsa_address_book_gpe_open_db(gpe_ab))
+    if (ab_gpe->db == NULL) {
+        if( !libbalsa_address_book_gpe_open_db(ab_gpe))
            return LBABERR_CANNOT_CONNECT;
     }
     uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(address), "urn"));
@@ -622,7 +613,7 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
 
     /* do the real work here */
 #ifdef HAVE_SQLITE3
-    if ((r = sqlite3_exec(gpe_ab->db, "begin transaction",
+    if ((r = sqlite3_exec(ab_gpe->db, "begin transaction",
                           NULL, NULL, &err)) != SQLITE_OK) {
         libbalsa_address_book_set_status(ab, g_strdup(err));
         sqlite3_free(err);              /* failed, so soon!? */
@@ -636,12 +627,12 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
                           " upper(tag)='WORK.ORGANIZATION' or"
                           " upper(tag)='WORK.EMAIL' or"
                           " upper(tag)='MODIFIED')", uid);
-    r = sqlite3_exec(gpe_ab->db, sql, NULL, NULL, &err);
+    r = sqlite3_exec(ab_gpe->db, sql, NULL, NULL, &err);
     sqlite3_free(sql);
     if (r != SQLITE_OK)
         goto rollback;
 #else                           /* HAVE_SQLITE3 */
-    if( (r=sqlite_exec(gpe_ab->db, "begin transaction",
+    if( (r=sqlite_exec(ab_gpe->db, "begin transaction",
                        NULL, NULL, &err)) != SQLITE_OK) {
         libbalsa_address_book_set_status(ab, g_strdup(err));
         free(err); /* failed, so soon!? */
@@ -649,7 +640,7 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
     }
 
     if( (r=sqlite_exec_printf
-         (gpe_ab->db,
+         (ab_gpe->db,
           "delete from contacts where urn='%d' and "
           "(upper(tag)='NAME' or upper(tag)='GIVEN_NAME' or "
           "upper(tag)='NICKNAME' or upper(tag)='WORK.ORGANIZATION' or "
@@ -657,31 +648,31 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
           NULL, NULL, &err, uid)) != SQLITE_OK)
         goto rollback;
 #endif                          /* HAVE_SQLITE3 */
-    INSERT_ATTR_R(gpe_ab->db,uid, "NAME",        newval->full_name);
-    INSERT_ATTR_R(gpe_ab->db,uid, "GIVEN_NAME",  newval->first_name);
-    INSERT_ATTR_R(gpe_ab->db,uid, "FAMILY_NAME", newval->last_name);
-    INSERT_ATTR_R(gpe_ab->db,uid, "NICKNAME",    newval->nick_name);
-    INSERT_ATTR_R(gpe_ab->db,uid, "WORK.ORGANIZATION", newval->organization);
-    INSERT_ATTR_R(gpe_ab->db,uid, "WORK.EMAIL",
+    INSERT_ATTR_R(ab_gpe->db,uid, "NAME",        newval->full_name);
+    INSERT_ATTR_R(ab_gpe->db,uid, "GIVEN_NAME",  newval->first_name);
+    INSERT_ATTR_R(ab_gpe->db,uid, "FAMILY_NAME", newval->last_name);
+    INSERT_ATTR_R(ab_gpe->db,uid, "NICKNAME",    newval->nick_name);
+    INSERT_ATTR_R(ab_gpe->db,uid, "WORK.ORGANIZATION", newval->organization);
+    INSERT_ATTR_R(ab_gpe->db,uid, "WORK.EMAIL",
                 (char*)newval->address_list->data);
 #ifdef HAVE_SQLITE3
     sql = sqlite3_mprintf("insert into contacts values "
                           "('%d', 'MODIFIED', %d)", uid, time(NULL));
-    r = sqlite3_exec(gpe_ab->db, sql, NULL, NULL, &err);
+    r = sqlite3_exec(ab_gpe->db, sql, NULL, NULL, &err);
     sqlite3_free(sql);
     if (r != SQLITE_OK)
         goto rollback;
 
-    if (sqlite3_exec(gpe_ab->db, "commit transaction", NULL, NULL, &err) ==
+    if (sqlite3_exec(ab_gpe->db, "commit transaction", NULL, NULL, &err) ==
         SQLITE_OK)
         return LBABERR_OK;
 #else                           /* HAVE_SQLITE3 */
-    if( (r=sqlite_exec_printf(gpe_ab->db, "insert into contacts values "
+    if( (r=sqlite_exec_printf(ab_gpe->db, "insert into contacts values "
                               "('%d', 'MODIFIED', %d)", NULL, NULL, &err,
                               uid, time(NULL))) != SQLITE_OK)
         goto rollback;
     
-    if( (r=sqlite_exec(gpe_ab->db, "commit transaction", NULL,
+    if( (r=sqlite_exec(ab_gpe->db, "commit transaction", NULL,
                        NULL, &err)) == SQLITE_OK) return LBABERR_OK;
 #endif                          /* HAVE_SQLITE3 */
 
@@ -689,10 +680,10 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
     libbalsa_address_book_set_status(ab, g_strdup(err));
 #ifdef HAVE_SQLITE3
     sqlite3_free(err);
-    sqlite3_exec(gpe_ab->db, "rollback transaction", NULL, NULL, NULL);
+    sqlite3_exec(ab_gpe->db, "rollback transaction", NULL, NULL, NULL);
 #else                           /* HAVE_SQLITE3 */
     free(err);
-    sqlite_exec(gpe_ab->db, "rollback transaction", NULL, NULL, NULL);
+    sqlite_exec(ab_gpe->db, "rollback transaction", NULL, NULL, NULL);
 #endif                          /* HAVE_SQLITE3 */
 
     return LBABERR_CANNOT_WRITE;
@@ -756,30 +747,31 @@ libbalsa_address_book_gpe_alias_complete(LibBalsaAddressBook * ab,
         "upper(tag)='WORK.EMAIL' or upper(tag)='HOME.EMAIL') "
         "and upper(value) LIKE '%q%%'";
     struct gpe_completion_closure gcc;
-    LibBalsaAddressBookGpe *gpe_ab;
+    LibBalsaAddressBookGpe *ab_gpe;
     char *err = NULL;
     int r;
 
-    g_return_val_if_fail ( LIBBALSA_ADDRESS_BOOK_GPE(ab), NULL);
+    g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK_GPE(ab), NULL);
 
-    gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+    ab_gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
 
-    if (!ab->expand_aliases) return NULL;
-    if (gpe_ab->db == NULL) {
-        if( !libbalsa_address_book_gpe_open_db(gpe_ab))
+    if (!libbalsa_address_book_get_expand_aliases(ab))
+        return NULL;
+    if (ab_gpe->db == NULL) {
+        if( !libbalsa_address_book_gpe_open_db(ab_gpe))
            return NULL;
     }
 
-    gcc.db = gpe_ab->db;
+    gcc.db = ab_gpe->db;
     gcc.prefix = prefix;
     gcc.res = NULL;
 #ifdef HAVE_SQLITE3
     if (prefix) {
         gchar *sql = sqlite3_mprintf(query, prefix);
-        r = sqlite3_exec(gpe_ab->db, sql, gpe_read_completion, &gcc, &err);
+        r = sqlite3_exec(ab_gpe->db, sql, gpe_read_completion, &gcc, &err);
         sqlite3_free(sql);
     } else
-        r = sqlite3_exec(gpe_ab->db,
+        r = sqlite3_exec(ab_gpe->db,
                          "select distinct urn from contacts_urn",
                          gpe_read_completion, &gcc, &err);
     if(err) {
@@ -788,11 +780,11 @@ libbalsa_address_book_gpe_alias_complete(LibBalsaAddressBook * ab,
     }
 #else                           /* HAVE_SQLITE3 */
     if(prefix)
-        r = sqlite_exec_printf(gpe_ab->db, query,
+        r = sqlite_exec_printf(ab_gpe->db, query,
                                gpe_read_completion, &gcc, &err,
                                prefix);
     else
-        r = sqlite_exec(gpe_ab->db, "select distinct urn from contacts_urn",
+        r = sqlite_exec(ab_gpe->db, "select distinct urn from contacts_urn",
                         gpe_read_completion, &gcc, &err);
     if(err) {
         printf("r=%d err=%s\n", r, err);
diff --git a/libbalsa/address-book-gpe.h b/libbalsa/address-book-gpe.h
index fd3313f..27a63d5 100644
--- a/libbalsa/address-book-gpe.h
+++ b/libbalsa/address-book-gpe.h
@@ -39,29 +39,9 @@
 
 #include "address-book.h"
 
-#define LIBBALSA_TYPE_ADDRESS_BOOK_GPE         (libbalsa_address_book_gpe_get_type())
-#define LIBBALSA_ADDRESS_BOOK_GPE(obj)         (G_TYPE_CHECK_INSTANCE_CAST(obj, 
LIBBALSA_TYPE_ADDRESS_BOOK_GPE, LibBalsaAddressBookGpe))
-#define LIBBALSA_ADDRESS_BOOK_GPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, 
LIBBALSA_TYPE_ADDRESS_BOOK_GPE, LibBalsaAddressBookGpeClass))
-#define LIBBALSA_IS_ADDRESS_BOOK_GPE(obj)              (G_TYPE_CHECK_INSTANCE_TYPE(obj, 
LIBBALSA_TYPE_ADDRESS_BOOK_GPE))
-#define LIBBALSA_IS_ADDRESS_BOOK_GPE_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE (klass, 
LIBBALSA_TYPE_ADDRESS_BOOK_GPE))
-
-typedef struct _LibBalsaAddressBookGpe LibBalsaAddressBookGpe;
-typedef struct _LibBalsaAddressBookGpeClass LibBalsaAddressBookGpeClass;
-
-struct _LibBalsaAddressBookGpe {
-    LibBalsaAddressBook parent;
-#ifdef HAVE_SQLITE3
-    sqlite3 *db;
-#else                           /* HAVE_SQLITE3 */
-    sqlite *db;
-#endif                          /* HAVE_SQLITE3 */
-};
-
-struct _LibBalsaAddressBookGpeClass {
-    LibBalsaAddressBookClass parent_class;
-};
-
-GType libbalsa_address_book_gpe_get_type(void);
+#define LIBBALSA_TYPE_ADDRESS_BOOK_GPE (libbalsa_address_book_gpe_get_type())
+G_DECLARE_FINAL_TYPE(LibBalsaAddressBookGpe, libbalsa_address_book_gpe,
+        LIBBALSA, ADDRESS_BOOK_GPE, LibBalsaAddressBook)
 
 LibBalsaAddressBook *libbalsa_address_book_gpe_new(const gchar *name);
 
diff --git a/src/address-book-config.c b/src/address-book-config.c
index d113780..2797891 100644
--- a/src/address-book-config.c
+++ b/src/address-book-config.c
@@ -562,9 +562,12 @@ create_gpe_dialog(AddressBookConfig * abc)
     /* mailbox name */
 
     label = libbalsa_create_grid_label(_("A_ddress Book Name:"), grid, 0);
-    abc->name_entry = libbalsa_create_grid_entry(grid, NULL, NULL, 0, 
-                                  ab ? ab->name : _("GPE Address Book"), 
-                                  label);
+    abc->name_entry =
+        libbalsa_create_grid_entry(grid, NULL, NULL, 0,
+                                   ab != NULL ?
+                                   libbalsa_address_book_get_name(ab) :
+                                   _("GPE Address Book"),
+                                   label);
 
     add_radio_buttons(grid, 1, abc);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]