[balsa] Use macro to declare LibBalsaAddressBook
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] Use macro to declare LibBalsaAddressBook
- Date: Tue, 14 May 2019 02:49:10 +0000 (UTC)
commit bc7b24766de23d658fa612c9e5d912af1019e7ee
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Mon May 13 22:46:27 2019 -0400
Use macro to declare LibBalsaAddressBook
Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaAddressBook
The macro defines _LibBalsaAddressBook to be a bare structure
with a single GObject member. The instance data must be in a
_LibBalsaAddressBookPrivate structure, access to which is channeled
through getters and setters.
* libbalsa/address-book-extern.c
(libbalsa_address_book_externq_new),
(libbalsa_address_book_externq_alias_complete):
* libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_init),
(libbalsa_address_book_gpe_new), (libbalsa_address_book_gpe_load):
* libbalsa/address-book-ldap.c (libbalsa_address_book_ldap_init),
(libbalsa_address_book_ldap_new),
(libbalsa_address_book_ldap_open_connection),
(libbalsa_address_book_ldap_add_address),
(libbalsa_address_book_ldap_remove_address),
(libbalsa_address_book_ldap_modify_address),
(libbalsa_address_book_ldap_load_config),
(libbalsa_address_book_ldap_alias_complete):
* libbalsa/address-book-ldif.c (libbalsa_address_book_ldif_new):
* libbalsa/address-book-osmo.c (libbalsa_address_book_osmo_init),
(libbalsa_address_book_osmo_new),
(libbalsa_address_book_osmo_load),
(libbalsa_address_book_osmo_alias_complete):
* libbalsa/address-book-rubrica.c
(libbalsa_address_book_rubrica_new),
(libbalsa_address_book_rubrica_alias_complete),
(lbab_rubrica_load_xml):
* libbalsa/address-book-text.c (lbab_text_load_file),
(libbalsa_address_book_text_alias_complete):
* libbalsa/address-book-vcard.c (libbalsa_address_book_vcard_new):
* libbalsa/address-book.c (libbalsa_address_book_class_init),
(libbalsa_address_book_init), (libbalsa_address_book_finalize),
(libbalsa_address_book_set_status),
(libbalsa_address_book_load_config),
(libbalsa_address_is_dist_list),
(libbalsa_address_book_real_save_config),
(libbalsa_address_book_real_load_config),
(libbalsa_address_book_strerror),
(libbalsa_address_book_get_expand_aliases),
(libbalsa_address_book_get_is_expensive),
(libbalsa_address_book_get_dist_list_mode),
(libbalsa_address_book_get_name),
(libbalsa_address_book_get_config_prefix),
(libbalsa_address_book_set_name),
(libbalsa_address_book_set_is_expensive),
(libbalsa_address_book_set_expand_aliases),
ChangeLog | 71 ++++++++++++
libbalsa/address-book-extern.c | 6 +-
libbalsa/address-book-gpe.c | 138 +++++++++++------------
libbalsa/address-book-ldap.c | 33 +++---
libbalsa/address-book-ldif.c | 2 +-
libbalsa/address-book-osmo.c | 14 ++-
libbalsa/address-book-rubrica.c | 6 +-
libbalsa/address-book-text.c | 4 +-
libbalsa/address-book-vcard.c | 2 +-
libbalsa/address-book.c | 240 ++++++++++++++++++++++++++++------------
libbalsa/address-book.h | 50 ++++-----
libbalsa/address-view.c | 3 +-
src/ab-main.c | 29 +++--
src/ab-window.c | 14 ++-
src/address-book-config.c | 53 +++++----
src/pref-manager.c | 8 +-
src/save-restore.c | 26 +++--
src/store-address.c | 4 +-
18 files changed, 442 insertions(+), 261 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index aff4671be..08ed19ceb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,74 @@
+2019-05-13 Peter Bloomfield <pbloomfield bellsouth net>
+
+ Use G_DECLARE_DERIVABLE_TYPE to declare LibBalsaAddressBook
+
+ The macro defines _LibBalsaAddressBook to be a bare structure
+ with a single GObject member. The instance data must be in a
+ _LibBalsaAddressBookPrivate structure, access to which is
+ channeled through getters and setters.
+
+ * libbalsa/address-book-extern.c
+ (libbalsa_address_book_externq_new),
+ (libbalsa_address_book_externq_alias_complete):
+ * libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_init),
+ (libbalsa_address_book_gpe_new), (libbalsa_address_book_gpe_load):
+ * libbalsa/address-book-ldap.c (libbalsa_address_book_ldap_init),
+ (libbalsa_address_book_ldap_new),
+ (libbalsa_address_book_ldap_open_connection),
+ (libbalsa_address_book_ldap_add_address),
+ (libbalsa_address_book_ldap_remove_address),
+ (libbalsa_address_book_ldap_modify_address),
+ (libbalsa_address_book_ldap_load_config),
+ (libbalsa_address_book_ldap_alias_complete):
+ * libbalsa/address-book-ldif.c (libbalsa_address_book_ldif_new):
+ * libbalsa/address-book-osmo.c (libbalsa_address_book_osmo_init),
+ (libbalsa_address_book_osmo_new),
+ (libbalsa_address_book_osmo_load),
+ (libbalsa_address_book_osmo_alias_complete):
+ * libbalsa/address-book-rubrica.c
+ (libbalsa_address_book_rubrica_new),
+ (libbalsa_address_book_rubrica_alias_complete),
+ (lbab_rubrica_load_xml):
+ * libbalsa/address-book-text.c (lbab_text_load_file),
+ (libbalsa_address_book_text_alias_complete):
+ * libbalsa/address-book-vcard.c (libbalsa_address_book_vcard_new):
+ * libbalsa/address-book.c (libbalsa_address_book_class_init),
+ (libbalsa_address_book_init), (libbalsa_address_book_finalize),
+ (libbalsa_address_book_set_status),
+ (libbalsa_address_book_load_config),
+ (libbalsa_address_is_dist_list),
+ (libbalsa_address_book_real_save_config),
+ (libbalsa_address_book_real_load_config),
+ (libbalsa_address_book_strerror),
+ (libbalsa_address_book_get_expand_aliases),
+ (libbalsa_address_book_get_is_expensive),
+ (libbalsa_address_book_get_dist_list_mode),
+ (libbalsa_address_book_get_name),
+ (libbalsa_address_book_get_config_prefix),
+ (libbalsa_address_book_set_name),
+ (libbalsa_address_book_set_is_expensive),
+ (libbalsa_address_book_set_expand_aliases),
+ (libbalsa_address_book_set_dist_list_mode):
+ * libbalsa/address-book.h:
+ * libbalsa/address-view.c (lbav_get_matching_addresses):
+ * src/ab-main.c (bab_set_address_book), (bab_window_set_title),
+ (address_book_change_state), (set_address_book_menu_items),
+ (address_book_change), (file_delete_activated),
+ (bab_set_intial_address_book):
+ * src/ab-window.c (balsa_ab_window_load_books),
+ (balsa_ab_window_init), (balsa_ab_window_set_title),
+ (balsa_ab_window_load), (balsa_ab_window_dist_mode_toggled),
+ (balsa_ab_window_menu_changed):
+ * src/address-book-config.c (add_radio_buttons),
+ (create_local_dialog), (create_osmo_dialog),
+ (create_externq_dialog), (create_ldap_dialog), (create_gpe_dialog),
+ (create_book), (modify_book):
+ * src/pref-manager.c (update_address_books):
+ * src/save-restore.c (address_book_section_path),
+ (config_address_book_delete), (config_save):
+ * src/store-address.c (store_address_book_frame),
+ (store_address_add_list):
+
2019-05-13 Peter Bloomfield <pbloomfield bellsouth net>
Clean up conditional compilations after bumping required
diff --git a/libbalsa/address-book-extern.c b/libbalsa/address-book-extern.c
index 22e786ce0..61b3ff583 100644
--- a/libbalsa/address-book-extern.c
+++ b/libbalsa/address-book-extern.c
@@ -187,7 +187,7 @@ libbalsa_address_book_externq_new(const gchar * name, const gchar * load,
NULL));
ab = LIBBALSA_ADDRESS_BOOK(abvc);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(ab, name);
abvc->load = g_strdup(load);
abvc->save = g_strdup(save);
@@ -386,12 +386,12 @@ libbalsa_address_book_externq_alias_complete(LibBalsaAddressBook * ab,
ex = LIBBALSA_ADDRESS_BOOK_EXTERN(ab);
- if ( !ab->expand_aliases )
+ if (!libbalsa_address_book_get_expand_aliases(ab))
return NULL;
if(!parse_externq_file(ex, (gchar *)prefix, lbe_expand_cb, &res))
return NULL;
-
+
res = g_list_reverse(res);
return res;
diff --git a/libbalsa/address-book-gpe.c b/libbalsa/address-book-gpe.c
index 0f5d10684..fd0f8dc33 100644
--- a/libbalsa/address-book-gpe.c
+++ b/libbalsa/address-book-gpe.c
@@ -128,10 +128,10 @@ libbalsa_address_book_gpe_class_init(LibBalsaAddressBookGpeClass * klass)
}
static void
-libbalsa_address_book_gpe_init(LibBalsaAddressBookGpe * ab)
+libbalsa_address_book_gpe_init(LibBalsaAddressBookGpe * gpe)
{
- ab->db = NULL;
- LIBBALSA_ADDRESS_BOOK(ab)->is_expensive = FALSE;
+ gpe->db = NULL;
+ libbalsa_address_book_set_is_expensive(LIBBALSA_ADDRESS_BOOK(gpe), FALSE);
}
static void
@@ -153,7 +153,7 @@ libbalsa_address_book_gpe_new(const gchar *name)
NULL));
ab = LIBBALSA_ADDRESS_BOOK(gpe);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(LIBBALSA_ADDRESS_BOOK(gpe), name);
/* We open on demand... */
gpe->db = NULL;
return ab;
@@ -337,7 +337,7 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
LibBalsaAddressBookLoadFunc callback,
gpointer closure)
{
- LibBalsaAddressBookGpe *gpe_ab;
+ LibBalsaAddressBookGpe *gpe;
gchar *err = NULL;
struct gpe_closure gc;
int r;
@@ -348,15 +348,15 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
if (callback == NULL)
return LBABERR_OK;
- gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+ gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
- if (gpe_ab->db == NULL)
- if (!libbalsa_address_book_gpe_open_db(gpe_ab))
+ if (gpe->db == NULL)
+ if (!libbalsa_address_book_gpe_open_db(gpe))
return LBABERR_CANNOT_CONNECT;
gc.callback = callback;
gc.closure = closure;
- gc.gpe = gpe_ab;
+ gc.gpe = gpe;
/* FIXME: error reporting */
#ifdef HAVE_SQLITE3
if (filter && *filter) {
@@ -369,17 +369,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(gpe->db, sql, gpe_read_address, &gc, &err);
sqlite3_free(sql);
} else {
- r = sqlite3_exec(gpe_ab->db,
+ r = sqlite3_exec(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,
+ (gpe->db,
"select distinct urn from contacts where "
"(upper(tag)='FAMILY_NAME' or upper(tag)='GIVEN_NAME' or "
"upper(tag)='NAME' or "
@@ -387,14 +387,14 @@ 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(gpe->db, "select distinct urn from contacts_urn",
gpe_read_address, &gc, &err);
}
#endif /* HAVE_SQLITE3 */
if(r != SQLITE_OK) {
printf("r=%d err=%s\n", r, err);
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
#ifdef HAVE_SQLITE3
sqlite3_free(err);
#else /* HAVE_SQLITE3 */
@@ -428,7 +428,7 @@ static LibBalsaABErr
libbalsa_address_book_gpe_add_address(LibBalsaAddressBook *ab,
LibBalsaAddress *address)
{
- LibBalsaAddressBookGpe *gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+ LibBalsaAddressBookGpe *gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
int r;
guint id;
char *err = NULL;
@@ -439,21 +439,21 @@ 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 (gpe->db == NULL) {
+ if(!libbalsa_address_book_gpe_open_db(gpe))
return LBABERR_CANNOT_CONNECT;
}
#ifdef HAVE_SQLITE3
- r = sqlite3_exec(gpe_ab->db, "insert into contacts_urn values (NULL)",
+ r = sqlite3_exec(gpe->db, "insert into contacts_urn values (NULL)",
NULL, NULL, &err);
if (r != SQLITE_OK) {
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
sqlite3_free(err);
#else /* HAVE_SQLITE3 */
- r = sqlite_exec(gpe_ab->db, "insert into contacts_urn values (NULL)",
+ r = sqlite_exec(gpe->db, "insert into contacts_urn values (NULL)",
NULL, NULL, &err);
if (r != SQLITE_OK) {
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
free(err);
#endif /* HAVE_SQLITE3 */
return LBABERR_CANNOT_WRITE;
@@ -461,25 +461,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(gpe->db);
#else /* HAVE_SQLITE3 */
- id = sqlite_last_insert_rowid(gpe_ab->db);
+ id = sqlite_last_insert_rowid(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(gpe->db,id, "NAME", address->full_name);
+ INSERT_ATTR(gpe->db,id, "GIVEN_NAME", address->first_name);
+ INSERT_ATTR(gpe->db,id, "FAMILY_NAME", address->last_name);
+ INSERT_ATTR(gpe->db,id, "NICKNAME", address->nick_name);
+ INSERT_ATTR(gpe->db,id, "WORK.ORGANIZATION", address->organization);
+ INSERT_ATTR(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(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(gpe->db, "insert into contacts values "
"('%d', 'MODIFIED', %d)", NULL, NULL, NULL,
id, time(NULL));
#endif /* HAVE_SQLITE3 */
@@ -548,23 +548,23 @@ static LibBalsaABErr
libbalsa_address_book_gpe_remove_address(LibBalsaAddressBook *ab,
LibBalsaAddress *address)
{
- LibBalsaAddressBookGpe *gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+ LibBalsaAddressBookGpe *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 (gpe->db == NULL) {
+ if( !libbalsa_address_book_gpe_open_db(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(gpe->db, uid);
if(err) {
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
#ifdef HAVE_SQLITE3
sqlite3_free(err);
#else /* HAVE_SQLITE3 */
@@ -600,7 +600,7 @@ libbalsa_address_book_gpe_modify_address(LibBalsaAddressBook *ab,
LibBalsaAddress *address,
LibBalsaAddress *newval)
{
- LibBalsaAddressBookGpe *gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+ LibBalsaAddressBookGpe *gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
guint uid;
int r;
char *err;
@@ -612,8 +612,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 (gpe->db == NULL) {
+ if( !libbalsa_address_book_gpe_open_db(gpe))
return LBABERR_CANNOT_CONNECT;
}
uid = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(address), "urn"));
@@ -622,9 +622,9 @@ 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(gpe->db, "begin transaction",
NULL, NULL, &err)) != SQLITE_OK) {
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
sqlite3_free(err); /* failed, so soon!? */
return LBABERR_CANNOT_WRITE;
}
@@ -636,20 +636,20 @@ 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(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(gpe->db, "begin transaction",
NULL, NULL, &err)) != SQLITE_OK) {
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
free(err); /* failed, so soon!? */
return LBABERR_CANNOT_WRITE;
}
if( (r=sqlite_exec_printf
- (gpe_ab->db,
+ (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,42 +657,42 @@ 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(gpe->db,uid, "NAME", newval->full_name);
+ INSERT_ATTR_R(gpe->db,uid, "GIVEN_NAME", newval->first_name);
+ INSERT_ATTR_R(gpe->db,uid, "FAMILY_NAME", newval->last_name);
+ INSERT_ATTR_R(gpe->db,uid, "NICKNAME", newval->nick_name);
+ INSERT_ATTR_R(gpe->db,uid, "WORK.ORGANIZATION", newval->organization);
+ INSERT_ATTR_R(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(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(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(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(gpe->db, "commit transaction", NULL,
NULL, &err)) == SQLITE_OK) return LBABERR_OK;
#endif /* HAVE_SQLITE3 */
rollback:
- libbalsa_address_book_set_status(ab, g_strdup(err));
+ libbalsa_address_book_set_status(ab, err);
#ifdef HAVE_SQLITE3
sqlite3_free(err);
- sqlite3_exec(gpe_ab->db, "rollback transaction", NULL, NULL, NULL);
+ sqlite3_exec(gpe->db, "rollback transaction", NULL, NULL, NULL);
#else /* HAVE_SQLITE3 */
free(err);
- sqlite_exec(gpe_ab->db, "rollback transaction", NULL, NULL, NULL);
+ sqlite_exec(gpe->db, "rollback transaction", NULL, NULL, NULL);
#endif /* HAVE_SQLITE3 */
return LBABERR_CANNOT_WRITE;
@@ -756,30 +756,32 @@ 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 *gpe;
char *err = NULL;
int r;
g_return_val_if_fail ( LIBBALSA_ADDRESS_BOOK_GPE(ab), NULL);
- gpe_ab = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+ gpe = LIBBALSA_ADDRESS_BOOK_GPE(ab);
+
+ if (!libbalsa_address_book_get_expand_aliases(ab))
+ return NULL;
- if (!ab->expand_aliases) return NULL;
- if (gpe_ab->db == NULL) {
- if( !libbalsa_address_book_gpe_open_db(gpe_ab))
+ if (gpe->db == NULL) {
+ if( !libbalsa_address_book_gpe_open_db(gpe))
return NULL;
}
- gcc.db = gpe_ab->db;
+ gcc.db = 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(gpe->db, sql, gpe_read_completion, &gcc, &err);
sqlite3_free(sql);
} else
- r = sqlite3_exec(gpe_ab->db,
+ r = sqlite3_exec(gpe->db,
"select distinct urn from contacts_urn",
gpe_read_completion, &gcc, &err);
if(err) {
@@ -788,11 +790,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(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(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-ldap.c b/libbalsa/address-book-ldap.c
index e13481ea3..136861770 100644
--- a/libbalsa/address-book-ldap.c
+++ b/libbalsa/address-book-ldap.c
@@ -185,7 +185,7 @@ libbalsa_address_book_ldap_init(LibBalsaAddressBookLdap * ab)
ab->passwd = NULL;
ab->enable_tls = FALSE;
ab->directory = NULL;
- LIBBALSA_ADDRESS_BOOK(ab)->is_expensive = TRUE;
+ libbalsa_address_book_set_is_expensive(LIBBALSA_ADDRESS_BOOK(ab), TRUE);
}
static void
@@ -221,7 +221,7 @@ libbalsa_address_book_ldap_new(const gchar *name, const gchar *host,
NULL));
ab = LIBBALSA_ADDRESS_BOOK(ldap);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(ab, name);
ldap->host = g_strdup(host);
ldap->base_dn = g_strdup(base_dn);
ldap->bind_dn = g_strdup(bind_dn);
@@ -303,7 +303,7 @@ libbalsa_address_book_ldap_open_connection(LibBalsaAddressBookLdap * ab)
ldap_initialize(&ab->directory, ab->host);
if (ab->directory == NULL) { /* very unlikely... */
- libbalsa_address_book_set_status(lbab, g_strdup("Host not found"));
+ libbalsa_address_book_set_status(lbab, _("Host not found"));
return LDAP_SERVER_DOWN;
}
/* ignore error if the V3 LDAP cannot be set */
@@ -318,8 +318,7 @@ libbalsa_address_book_ldap_open_connection(LibBalsaAddressBookLdap * ab)
if(result != LDAP_SUCCESS) {
ldap_unbind_ext(ab->directory, NULL, NULL);
ab->directory = NULL;
- libbalsa_address_book_set_status
- (lbab, g_strdup(ldap_err2string(result)));
+ libbalsa_address_book_set_status(lbab, ldap_err2string(result));
return result;
}
#else /* HAVE_LDAP_TLS */
@@ -349,8 +348,7 @@ libbalsa_address_book_ldap_open_connection(LibBalsaAddressBookLdap * ab)
result = ldap_set_option(ab->directory, LDAP_OPT_REFERRALS, (void *)LDAP_OPT_OFF);
if (result != LDAP_SUCCESS) {
- libbalsa_address_book_set_status(lbab,
- g_strdup(ldap_err2string(result)));
+ libbalsa_address_book_set_status(lbab, ldap_err2string(result));
ldap_unbind_ext(ab->directory, NULL, NULL);
ab->directory = NULL;
}
@@ -605,7 +603,7 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
libbalsa_address_book_set_status
(ab, _("Undefined location of user address book"));
return LBABERR_CANNOT_WRITE;
- }
+ }
dn = g_strdup_printf("mail=%s,%s",
(char*)address->address_list->data,
@@ -646,8 +644,7 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
case LDAP_SUCCESS: g_free(dn); return LBABERR_OK;
case LDAP_ALREADY_EXISTS:
g_free(dn);
- libbalsa_address_book_set_status(ab,
- g_strdup(ldap_err2string(rc)));
+ libbalsa_address_book_set_status(ab, ldap_err2string(rc));
return LBABERR_DUPLICATE;
case LDAP_SERVER_DOWN:
libbalsa_address_book_ldap_close_connection(ldap_ab);
@@ -706,8 +703,7 @@ libbalsa_address_book_ldap_remove_address(LibBalsaAddressBook *ab,
}
} while(cnt++<1);
g_free(dn);
- libbalsa_address_book_set_status(ab,
- g_strdup(ldap_err2string(rc)));
+ libbalsa_address_book_set_status(ab, ldap_err2string(rc));
return LBABERR_CANNOT_WRITE;
}
@@ -818,8 +814,7 @@ libbalsa_address_book_ldap_modify_address(LibBalsaAddressBook *ab,
}
} while(cnt++<1);
g_free(dn);
- libbalsa_address_book_set_status(ab,
- g_strdup(ldap_err2string(rc)));
+ libbalsa_address_book_set_status(ab, ldap_err2string(rc));
return LBABERR_CANNOT_WRITE;
}
@@ -877,8 +872,8 @@ libbalsa_address_book_ldap_load_config(LibBalsaAddressBook * ab,
if (LIBBALSA_ADDRESS_BOOK_CLASS(parent_class)->load_config)
LIBBALSA_ADDRESS_BOOK_CLASS(parent_class)->load_config(ab, prefix);
- if (ab->is_expensive < 0)
- ab->is_expensive = TRUE;
+ if (libbalsa_address_book_get_is_expensive(ab) < 0)
+ libbalsa_address_book_set_is_expensive(ab, TRUE);
}
@@ -959,11 +954,11 @@ libbalsa_address_book_ldap_alias_complete(LibBalsaAddressBook * ab,
int rc;
LDAPMessage * e, *result;
- g_return_val_if_fail ( LIBBALSA_ADDRESS_BOOK_LDAP(ab), NULL);
-
ldap_ab = LIBBALSA_ADDRESS_BOOK_LDAP(ab);
- if (!ab->expand_aliases || strlen(prefix)<ABL_MIN_LEN) return NULL;
+ if (!libbalsa_address_book_get_expand_aliases(ab) || strlen(prefix) < ABL_MIN_LEN)
+ return NULL;
+
if (ldap_ab->directory == NULL) {
if( (rc=libbalsa_address_book_ldap_open_connection(ldap_ab))
!= LDAP_SUCCESS)
diff --git a/libbalsa/address-book-ldif.c b/libbalsa/address-book-ldif.c
index f0c5b6f4d..67c99cfea 100644
--- a/libbalsa/address-book-ldif.c
+++ b/libbalsa/address-book-ldif.c
@@ -97,7 +97,7 @@ libbalsa_address_book_ldif_new(const gchar * name, const gchar * path)
NULL));
ab = LIBBALSA_ADDRESS_BOOK(ab_ldif);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(ab, name);
LIBBALSA_ADDRESS_BOOK_TEXT(ab)->path = g_strdup(path);
return ab;
diff --git a/libbalsa/address-book-osmo.c b/libbalsa/address-book-osmo.c
index e5028cf32..bf0f70ead 100644
--- a/libbalsa/address-book-osmo.c
+++ b/libbalsa/address-book-osmo.c
@@ -89,7 +89,7 @@ libbalsa_address_book_osmo_class_init(LibBalsaAddressBookOsmoClass *klass)
static void
libbalsa_address_book_osmo_init(LibBalsaAddressBookOsmo *ab)
{
- LIBBALSA_ADDRESS_BOOK(ab)->is_expensive = FALSE;
+ libbalsa_address_book_set_is_expensive(LIBBALSA_ADDRESS_BOOK(ab), FALSE);
}
@@ -116,7 +116,7 @@ libbalsa_address_book_osmo_new(const gchar *name)
osmo = LIBBALSA_ADDRESS_BOOK_OSMO(g_object_new(LIBBALSA_TYPE_ADDRESS_BOOK_OSMO, NULL));
ab = LIBBALSA_ADDRESS_BOOK(osmo);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(ab, name);
return ab;
}
@@ -143,7 +143,12 @@ libbalsa_address_book_osmo_load(LibBalsaAddressBook *ab,
addresses = osmo_read_addresses(osmo, filter, &error);
if (error != NULL) {
- libbalsa_address_book_set_status(ab, g_strdup_printf(_("Reading Osmo contacts failed:
%s"), error->message));
+ gchar *message;
+
+ message =
+ g_strdup_printf(_("Reading Osmo contacts failed: %s"), error->message);
+ libbalsa_address_book_set_status(ab, message);
+ g_free(message);
g_error_free(error);
result = LBABERR_CANNOT_SEARCH;
} else {
@@ -220,9 +225,8 @@ libbalsa_address_book_osmo_alias_complete(LibBalsaAddressBook *ab,
osmo = LIBBALSA_ADDRESS_BOOK_OSMO(ab);
- if (!ab->expand_aliases || strlen(prefix) < LOOKUP_MIN_LEN) {
+ if (!libbalsa_address_book_get_expand_aliases(ab) || strlen(prefix) < LOOKUP_MIN_LEN)
return NULL;
- }
g_debug("%s: filter for %s", __func__, prefix);
addresses = osmo_read_addresses(osmo, prefix, &error);
diff --git a/libbalsa/address-book-rubrica.c b/libbalsa/address-book-rubrica.c
index 6064fa825..13a1ba13f 100644
--- a/libbalsa/address-book-rubrica.c
+++ b/libbalsa/address-book-rubrica.c
@@ -167,7 +167,7 @@ libbalsa_address_book_rubrica_new(const gchar * name, const gchar * path)
ab_text = LIBBALSA_ADDRESS_BOOK_TEXT(ab_rubrica);
ab = LIBBALSA_ADDRESS_BOOK(ab_rubrica);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(ab, name);
ab_text->path = g_strdup(path);
return ab;
@@ -228,7 +228,7 @@ libbalsa_address_book_rubrica_alias_complete(LibBalsaAddressBook * ab,
GList *list;
GList *res = NULL;
- if (ab->expand_aliases == FALSE)
+ if (!libbalsa_address_book_get_expand_aliases(ab))
return NULL;
if (lbab_rubrica_load_xml(ab_rubrica, NULL) != LBABERR_OK)
@@ -468,7 +468,7 @@ lbab_rubrica_load_xml(LibBalsaAddressBookRubrica * ab_rubrica,
continue;
if (address->address_list->next
- && LIBBALSA_ADDRESS_BOOK(ab_rubrica)->dist_list_mode) {
+ && libbalsa_address_book_get_dist_list_mode(LIBBALSA_ADDRESS_BOOK(ab_rubrica))) {
/* Create a group address. */
InternetAddress *ia =
internet_address_group_new(address->full_name);
diff --git a/libbalsa/address-book-text.c b/libbalsa/address-book-text.c
index 04cf2f465..801acdfd6 100644
--- a/libbalsa/address-book-text.c
+++ b/libbalsa/address-book-text.c
@@ -348,7 +348,7 @@ lbab_text_load_file(LibBalsaAddressBookText * ab_text, FILE * stream)
continue;
if (address->address_list->next
- && LIBBALSA_ADDRESS_BOOK(ab_text)->dist_list_mode) {
+ && libbalsa_address_book_get_dist_list_mode(LIBBALSA_ADDRESS_BOOK(ab_text))) {
/* Create a group address. */
InternetAddress *ia =
internet_address_group_new(address->full_name);
@@ -706,7 +706,7 @@ libbalsa_address_book_text_alias_complete(LibBalsaAddressBook * ab,
GList *list;
GList *res = NULL;
- if (ab->expand_aliases == FALSE)
+ if (!libbalsa_address_book_get_expand_aliases(ab))
return NULL;
stream = fopen(ab_text->path, "r");
diff --git a/libbalsa/address-book-vcard.c b/libbalsa/address-book-vcard.c
index 7dbe6008b..e3ef4a60c 100644
--- a/libbalsa/address-book-vcard.c
+++ b/libbalsa/address-book-vcard.c
@@ -105,7 +105,7 @@ libbalsa_address_book_vcard_new(const gchar * name, const gchar * path)
NULL));
ab = LIBBALSA_ADDRESS_BOOK(abvc);
- ab->name = g_strdup(name);
+ libbalsa_address_book_set_name(ab, name);
LIBBALSA_ADDRESS_BOOK_TEXT(ab)->path = g_strdup(path);
return ab;
diff --git a/libbalsa/address-book.c b/libbalsa/address-book.c
index 44953d7ec..7bcc85a4b 100644
--- a/libbalsa/address-book.c
+++ b/libbalsa/address-book.c
@@ -28,11 +28,20 @@
#include "libbalsa-conf.h"
-static GObjectClass *parent_class = NULL;
+typedef struct _LibBalsaAddressBookPrivate LibBalsaAddressBookPrivate;
+
+struct _LibBalsaAddressBookPrivate {
+ /* The gnome_config prefix where we save this address book */
+ gchar *config_prefix;
+ gchar *name;
+ gchar *ext_op_code; /* extra description for last operation */
+ gboolean is_expensive; /* is lookup to the address book expensive?
+ e.g. LDAP address book */
+ gboolean expand_aliases;
+
+ gboolean dist_list_mode;
+};
-static void libbalsa_address_book_class_init(LibBalsaAddressBookClass *
- klass);
-static void libbalsa_address_book_init(LibBalsaAddressBook * ab);
static void libbalsa_address_book_finalize(GObject * object);
static void libbalsa_address_book_real_save_config(LibBalsaAddressBook *
@@ -42,39 +51,13 @@ static void libbalsa_address_book_real_load_config(LibBalsaAddressBook *
ab,
const gchar * group);
-GType libbalsa_address_book_get_type(void)
-{
- static GType address_book_type = 0;
-
- if (!address_book_type) {
- static const GTypeInfo address_book_info = {
- sizeof(LibBalsaAddressBookClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) libbalsa_address_book_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(LibBalsaAddressBook),
- 0, /* n_preallocs */
- (GInstanceInitFunc) libbalsa_address_book_init
- };
-
- address_book_type =
- g_type_register_static(G_TYPE_OBJECT,
- "LibBalsaAddressBook",
- &address_book_info, 0);
- }
-
- return address_book_type;
-}
+G_DEFINE_TYPE_WITH_PRIVATE(LibBalsaAddressBook, libbalsa_address_book, G_TYPE_OBJECT)
static void
libbalsa_address_book_class_init(LibBalsaAddressBookClass * klass)
{
GObjectClass *object_class;
- parent_class = g_type_class_peek_parent(klass);
-
object_class = G_OBJECT_CLASS(klass);
klass->load = NULL;
@@ -91,28 +74,29 @@ libbalsa_address_book_class_init(LibBalsaAddressBookClass * klass)
static void
libbalsa_address_book_init(LibBalsaAddressBook * ab)
{
- ab->config_prefix = NULL;
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ priv->config_prefix = NULL;
- ab->name = NULL;
- ab->expand_aliases = TRUE;
- ab->dist_list_mode = FALSE;
- ab->is_expensive = FALSE;
+ priv->name = NULL;
+ priv->expand_aliases = TRUE;
+ priv->dist_list_mode = FALSE;
+ priv->is_expensive = FALSE;
}
static void
libbalsa_address_book_finalize(GObject * object)
{
- LibBalsaAddressBook *ab;
+ LibBalsaAddressBook *ab = LIBBALSA_ADDRESS_BOOK(object);
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
- ab = LIBBALSA_ADDRESS_BOOK(object);
+ g_free(priv->config_prefix);
+ priv->config_prefix = NULL;
- g_free(ab->config_prefix);
- ab->config_prefix = NULL;
+ g_free(priv->name);
+ priv->name = NULL;
- g_free(ab->name);
- ab->name = NULL;
-
- G_OBJECT_CLASS(parent_class)->finalize(object);
+ G_OBJECT_CLASS(libbalsa_address_book_parent_class)->finalize(object);
}
LibBalsaAddressBook *
@@ -202,13 +186,15 @@ libbalsa_address_book_modify_address(LibBalsaAddressBook * ab,
return res;
}
-/* set_status takes over the string ownership */
void
-libbalsa_address_book_set_status(LibBalsaAddressBook * ab, gchar *str)
+libbalsa_address_book_set_status(LibBalsaAddressBook * ab, const gchar *str)
{
- g_return_if_fail(ab);
- g_free(ab->ext_op_code);
- ab->ext_op_code = str;
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+
+ g_free(priv->ext_op_code);
+ priv->ext_op_code = g_strdup(str);
}
void
@@ -229,14 +215,16 @@ void
libbalsa_address_book_load_config(LibBalsaAddressBook * ab,
const gchar * group)
{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
libbalsa_conf_push_group(group);
LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->load_config(ab, group);
libbalsa_conf_pop_group();
- if (ab->is_expensive < 0)
- ab->is_expensive = FALSE;
+ if (priv->is_expensive < 0)
+ priv->is_expensive = FALSE;
}
GList *
@@ -249,10 +237,16 @@ libbalsa_address_book_alias_complete(LibBalsaAddressBook * ab,
}
-gboolean libbalsa_address_is_dist_list(const LibBalsaAddressBook *ab,
- const LibBalsaAddress *address)
+gboolean
+libbalsa_address_is_dist_list(LibBalsaAddressBook *ab,
+ LibBalsaAddress *address)
{
- return (ab->dist_list_mode && g_list_length(address->address_list)>1);
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), FALSE);
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS(address), FALSE);
+
+ return (priv->dist_list_mode && address->address_list->next != NULL);
}
@@ -261,51 +255,55 @@ static void
libbalsa_address_book_real_save_config(LibBalsaAddressBook * ab,
const gchar * group)
{
- g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
libbalsa_conf_set_string("Type", g_type_name(G_OBJECT_TYPE(ab)));
- libbalsa_conf_set_string("Name", ab->name);
- libbalsa_conf_set_bool("ExpandAliases", ab->expand_aliases);
- libbalsa_conf_set_bool("IsExpensive", ab->is_expensive);
- libbalsa_conf_set_bool("DistListMode", ab->dist_list_mode);
+ libbalsa_conf_set_string("Name", priv->name);
+ libbalsa_conf_set_bool("ExpandAliases", priv->expand_aliases);
+ libbalsa_conf_set_bool("IsExpensive", priv->is_expensive);
+ libbalsa_conf_set_bool("DistListMode", priv->dist_list_mode);
- g_free(ab->config_prefix);
- ab->config_prefix = g_strdup(group);
+ g_free(priv->config_prefix);
+ priv->config_prefix = g_strdup(group);
}
static void
libbalsa_address_book_real_load_config(LibBalsaAddressBook * ab,
const gchar * group)
{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
gboolean def;
g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
- g_free(ab->config_prefix);
- ab->config_prefix = g_strdup(group);
+ g_free(priv->config_prefix);
+ priv->config_prefix = g_strdup(group);
- ab->expand_aliases = libbalsa_conf_get_bool("ExpandAliases=false");
+ priv->expand_aliases = libbalsa_conf_get_bool("ExpandAliases=false");
- ab->is_expensive =
+ priv->is_expensive =
libbalsa_conf_get_bool_with_default("IsExpensive", &def);
if (def)
/* Default will be supplied by the backend, or in
* libbalsa_address_book_load_config. */
- ab->is_expensive = -1;
+ priv->is_expensive = -1;
- ab->dist_list_mode = libbalsa_conf_get_bool("DistListMode=false");
+ priv->dist_list_mode = libbalsa_conf_get_bool("DistListMode=false");
- g_free(ab->name);
- ab->name = libbalsa_conf_get_string("Name=Address Book");
+ g_free(priv->name);
+ priv->name = libbalsa_conf_get_string("Name=Address Book");
}
const gchar*
libbalsa_address_book_strerror(LibBalsaAddressBook * ab, LibBalsaABErr err)
{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
const gchar *s;
- g_return_val_if_fail(ab, NULL);
- if(ab->ext_op_code)
- return ab->ext_op_code;
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), NULL);
+
+ if(priv->ext_op_code)
+ return priv->ext_op_code;
switch(err) {
case LBABERR_OK: s= _("No error"); break;
@@ -322,4 +320,102 @@ libbalsa_address_book_strerror(LibBalsaAddressBook * ab, LibBalsaABErr err)
return s;
}
+/*
+ * Getters
+ */
+
+gboolean
+libbalsa_address_book_get_expand_aliases(LibBalsaAddressBook * ab)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), FALSE);
+
+ return priv->expand_aliases;
+}
+
+gboolean
+libbalsa_address_book_get_is_expensive(LibBalsaAddressBook * ab)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), FALSE);
+
+ return priv->is_expensive;
+}
+
+gboolean
+libbalsa_address_book_get_dist_list_mode(LibBalsaAddressBook * ab)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), FALSE);
+
+ return priv->dist_list_mode;
+}
+
+const gchar *
+libbalsa_address_book_get_name(LibBalsaAddressBook *ab)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), NULL);
+
+ return priv->name;
+}
+
+const gchar *
+libbalsa_address_book_get_config_prefix(LibBalsaAddressBook *ab)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), NULL);
+
+ return priv->config_prefix;
+}
+
+/*
+ * Setters
+ */
+
+void
+libbalsa_address_book_set_name(LibBalsaAddressBook *ab, const gchar *name)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+
+ g_free(priv->name);
+ priv->name = g_strdup(name);
+}
+
+void
+libbalsa_address_book_set_is_expensive(LibBalsaAddressBook *ab, gboolean is_expensive)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+
+ priv->is_expensive = is_expensive;
+}
+
+void
+libbalsa_address_book_set_expand_aliases(LibBalsaAddressBook *ab, gboolean expand_aliases)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+
+ priv->expand_aliases = expand_aliases;
+}
+
+void
+libbalsa_address_book_set_dist_list_mode(LibBalsaAddressBook *ab, gboolean dist_list_mode)
+{
+ LibBalsaAddressBookPrivate *priv = libbalsa_address_book_get_instance_private(ab);
+
+ g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+
+ priv->dist_list_mode = dist_list_mode;
+}
diff --git a/libbalsa/address-book.h b/libbalsa/address-book.h
index b48e541d0..82d115aa3 100644
--- a/libbalsa/address-book.h
+++ b/libbalsa/address-book.h
@@ -24,13 +24,7 @@
#include "address.h"
#define LIBBALSA_TYPE_ADDRESS_BOOK (libbalsa_address_book_get_type())
-#define LIBBALSA_ADDRESS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj,
LIBBALSA_TYPE_ADDRESS_BOOK, LibBalsaAddressBook))
-#define LIBBALSA_ADDRESS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass,
LIBBALSA_TYPE_ADDRESS_BOOK, LibBalsaAddressBookClass))
-#define LIBBALSA_IS_ADDRESS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj,
LIBBALSA_TYPE_ADDRESS_BOOK))
-#define LIBBALSA_IS_ADDRESS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass,
LIBBALSA_TYPE_ADDRESS_BOOK))
-#define LIBBALSA_ADDRESS_BOOK_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBBALSA_TYPE_ADDRESS_BOOK, \
- LibBalsaAddressBookClass))
+G_DECLARE_DERIVABLE_TYPE(LibBalsaAddressBook, libbalsa_address_book, LIBBALSA, ADDRESS_BOOK, GObject)
typedef enum {
LBABERR_OK = 0,
@@ -41,28 +35,11 @@ typedef enum {
LBABERR_DUPLICATE,
LBABERR_ADDRESS_NOT_FOUND
} LibBalsaABErr;
-
-typedef struct _LibBalsaAddressBook LibBalsaAddressBook;
-typedef struct _LibBalsaAddressBookClass LibBalsaAddressBookClass;
typedef LibBalsaABErr (*LibBalsaAddressBookLoadFunc)(LibBalsaAddressBook *ab,
LibBalsaAddress *address,
gpointer closure);
-struct _LibBalsaAddressBook {
- GObject parent;
-
- /* The gnome_config prefix where we save this address book */
- gchar *config_prefix;
- gchar *name;
- gchar *ext_op_code; /* extra description for last operation */
- gboolean is_expensive; /* is lookup to the address book expensive?
- e.g. LDAP address book */
- gboolean expand_aliases;
-
- gboolean dist_list_mode;
-};
-
struct _LibBalsaAddressBookClass {
GObjectClass parent;
@@ -120,8 +97,7 @@ LibBalsaABErr libbalsa_address_book_modify_address(LibBalsaAddressBook *ab,
LibBalsaAddress *address,
LibBalsaAddress *newval);
-/* set_status takes over the string ownership */
-void libbalsa_address_book_set_status(LibBalsaAddressBook * ab, gchar *str);
+void libbalsa_address_book_set_status(LibBalsaAddressBook * ab, const gchar *str);
void libbalsa_address_book_save_config(LibBalsaAddressBook * ab,
const gchar * prefix);
void libbalsa_address_book_load_config(LibBalsaAddressBook * ab,
@@ -139,8 +115,26 @@ const gchar* libbalsa_address_book_strerror(LibBalsaAddressBook * ab,
*/
GList *libbalsa_address_book_alias_complete(LibBalsaAddressBook * ab,
const gchar *prefix);
-gboolean libbalsa_address_is_dist_list(const LibBalsaAddressBook *ab,
- const LibBalsaAddress *address);
+gboolean libbalsa_address_is_dist_list(LibBalsaAddressBook *ab,
+ LibBalsaAddress *address);
+
+/*
+ * Getters
+ */
+gboolean libbalsa_address_book_get_dist_list_mode(LibBalsaAddressBook *ab);
+gboolean libbalsa_address_book_get_expand_aliases(LibBalsaAddressBook *ab);
+gboolean libbalsa_address_book_get_is_expensive(LibBalsaAddressBook *ab);
+const gchar *libbalsa_address_book_get_name(LibBalsaAddressBook *ab);
+const gchar *libbalsa_address_book_get_config_prefix(LibBalsaAddressBook *ab);
+
+/*
+ * Setters
+ */
+void libbalsa_address_book_set_dist_list_mode(LibBalsaAddressBook *ab, gboolean dist_list_mode);
+void libbalsa_address_book_set_expand_aliases(LibBalsaAddressBook *ab, gboolean expand_aliases);
+void libbalsa_address_book_set_is_expensive(LibBalsaAddressBook *ab, gboolean is_expensive);
+void libbalsa_address_book_set_name(LibBalsaAddressBook *ab, const gchar *name);
+
#endif
diff --git a/libbalsa/address-view.c b/libbalsa/address-view.c
index b70f0ffee..8d1fe3a48 100644
--- a/libbalsa/address-view.c
+++ b/libbalsa/address-view.c
@@ -190,7 +190,8 @@ lbav_get_matching_addresses(LibBalsaAddressView * address_view,
ab = LIBBALSA_ADDRESS_BOOK(list->data);
if (type == LIBBALSA_ADDRESS_VIEW_MATCH_FAST
- && (!ab->expand_aliases || ab->is_expensive))
+ && (!libbalsa_address_book_get_expand_aliases(ab) ||
+ libbalsa_address_book_get_is_expensive(ab)))
continue;
match =
diff --git a/src/ab-main.c b/src/ab-main.c
index b8276f7bb..6f44998e2 100644
--- a/src/ab-main.c
+++ b/src/ab-main.c
@@ -175,7 +175,7 @@ bab_set_address_book(LibBalsaAddressBook * ab,
libbalsa_address_book_load(ab, filter,
(LibBalsaAddressBookLoadFunc)
bab_load_cb, model)) != LBABERR_OK) {
- printf("error loading address book from %s: %d\n", ab->name,
+ printf("error loading address book from %s: %d\n", libbalsa_address_book_get_name(ab),
ab_err);
}
@@ -208,7 +208,7 @@ bab_window_set_title(LibBalsaAddressBook * address_book)
#endif /* HAVE_RUBRICA */
title =
- g_strconcat(type, _(" address book: "), address_book->name, NULL);
+ g_strconcat(type, _(" address book: "), libbalsa_address_book_get_name(address_book), NULL);
gtk_window_set_title(contacts_app.window, title);
g_free(title);
}
@@ -225,7 +225,7 @@ address_book_change_state(GSimpleAction * action,
value = g_variant_get_string(state, NULL);
for (l = contacts_app.address_book_list; l; l = l->next) {
address_book = l->data;
- if (address_book && strcmp(value, address_book->name) == 0)
+ if (address_book && strcmp(value, libbalsa_address_book_get_name(address_book)) == 0)
break;
}
@@ -276,7 +276,7 @@ set_address_book_menu_items(void)
g_string_append(string, "<attribute name='label'>");
g_string_append_printf(string, "_%d:%s", ++pos,
- address_book->name);
+ libbalsa_address_book_get_name(address_book));
g_string_append(string, "</attribute>");
g_string_append(string, "<attribute name='action'>");
@@ -284,7 +284,7 @@ set_address_book_menu_items(void)
g_string_append(string, "</attribute>");
g_string_append(string, "<attribute name='target'>");
- g_string_append(string, address_book->name);
+ g_string_append(string, libbalsa_address_book_get_name(address_book));
g_string_append(string, "</attribute>");
g_string_append(string, "<attribute name='accel'>");
@@ -337,17 +337,20 @@ get_unused_group(const gchar * prefix)
static void
address_book_change(LibBalsaAddressBook * address_book, gboolean append)
{
+ const gchar *config_prefix;
gchar *group;
- if (append)
+ if (append) {
contacts_app.address_book_list =
g_list_append(contacts_app.address_book_list, address_book);
+ }
set_address_book_menu_items();
bab_window_set_title(address_book);
- group = address_book->config_prefix ?
- g_strdup(address_book->config_prefix) :
+ config_prefix = libbalsa_address_book_get_config_prefix(address_book);
+ group = config_prefix != NULL ?
+ g_strdup(config_prefix) :
get_unused_group(ADDRESS_BOOK_SECTION_PREFIX);
libbalsa_address_book_save_config(address_book, group);
g_free(group);
@@ -441,15 +444,17 @@ file_delete_activated(GSimpleAction * action,
gpointer user_data)
{
LibBalsaAddressBook *address_book;
+ const gchar *config_prefix;
GList *list;
if (!(address_book = contacts_app.address_book)
|| !g_list_next(contacts_app.address_book_list))
return;
- if (address_book->config_prefix) {
- libbalsa_conf_remove_group(address_book->config_prefix);
- libbalsa_conf_private_remove_group(address_book->config_prefix);
+ config_prefix = libbalsa_address_book_get_config_prefix(address_book);
+ if (config_prefix != NULL) {
+ libbalsa_conf_remove_group(config_prefix);
+ libbalsa_conf_private_remove_group(config_prefix);
libbalsa_conf_queue_sync();
}
@@ -1029,7 +1034,7 @@ bab_set_intial_address_book(LibBalsaAddressBook * ab,
action =
g_action_map_lookup_action(G_ACTION_MAP(window), "address-book");
- g_action_change_state(action, g_variant_new_string(ab->name));
+ g_action_change_state(action, g_variant_new_string(libbalsa_address_book_get_name(ab)));
}
GtkDialogFlags
diff --git a/src/ab-window.c b/src/ab-window.c
index d3820a022..53bc209f3 100644
--- a/src/ab-window.c
+++ b/src/ab-window.c
@@ -215,7 +215,7 @@ balsa_ab_window_load_books(BalsaAbWindow * ab)
LibBalsaAddressBook *address_book = ab_list->data;
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(ab->combo_box),
- address_book->name);
+ libbalsa_address_book_get_name(address_book));
if (ab->current_address_book == NULL)
ab->current_address_book = address_book;
@@ -401,7 +401,7 @@ balsa_ab_window_init(BalsaAbWindow *ab)
if(ab->current_address_book)
gtk_toggle_button_set_active(
GTK_TOGGLE_BUTTON(ab->dist_address_mode_radio),
- ab->current_address_book->dist_list_mode);
+ libbalsa_address_book_get_dist_list_mode(ab->current_address_book));
/* Pack them into a box */
box2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1);
@@ -703,7 +703,8 @@ balsa_ab_window_set_title(BalsaAbWindow *ab)
#endif
title =
- g_strconcat(type, _(" address book: "), address_book->name, NULL);
+ g_strconcat(type, _(" address book: "),
+ libbalsa_address_book_get_name(address_book), NULL);
gtk_window_set_title(GTK_WINDOW(ab), title);
g_free(title);
}
@@ -732,7 +733,8 @@ balsa_ab_window_load(BalsaAbWindow *ab)
balsa_information_parented(GTK_WINDOW(ab),
LIBBALSA_INFORMATION_ERROR,
_("Error opening address book ā%sā:\n%s"),
- ab->current_address_book->name, desc);
+ libbalsa_address_book_get_name(ab->current_address_book),
+ desc);
}
balsa_ab_window_set_title(ab);
}
@@ -860,7 +862,7 @@ balsa_ab_window_dist_mode_toggled(GtkWidget * w, BalsaAbWindow *ab)
active = gtk_toggle_button_get_active
(GTK_TOGGLE_BUTTON(ab->single_address_mode_radio));
- ab->current_address_book->dist_list_mode = !active;
+ libbalsa_address_book_set_dist_list_mode(ab->current_address_book, !active);
balsa_ab_window_load(ab);
}
@@ -881,7 +883,7 @@ balsa_ab_window_menu_changed(GtkWidget * widget, BalsaAbWindow *ab)
g_signal_handler_block(G_OBJECT(ab->single_address_mode_radio),
ab->toggle_handler_id);
- if ( ab->current_address_book->dist_list_mode )
+ if (libbalsa_address_book_get_dist_list_mode(ab->current_address_book))
gtk_toggle_button_set_active(
GTK_TOGGLE_BUTTON(ab->dist_address_mode_radio), TRUE);
else
diff --git a/src/address-book-config.c b/src/address-book-config.c
index 87a7f4632..a280d97ca 100644
--- a/src/address-book-config.c
+++ b/src/address-book-config.c
@@ -200,10 +200,10 @@ add_radio_buttons(GtkWidget * grid, gint row, AddressBookConfig * abc)
gtk_grid_attach(GTK_GRID(grid), abc->never, 0, row, 2, 1);
button = abc->as_i_type;
- if (abc->address_book) {
- if (!abc->address_book->expand_aliases)
+ if (abc->address_book != NULL) {
+ if (!libbalsa_address_book_get_expand_aliases(abc->address_book))
button = abc->never;
- else if (abc->address_book->is_expensive)
+ else if (libbalsa_address_book_get_is_expensive(abc->address_book))
button = abc->on_request;
}
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
@@ -222,10 +222,10 @@ create_local_dialog(AddressBookConfig * abc, const gchar * type)
GtkSizeGroup *size_group;
ab = abc->address_book;
- if (ab) {
+ if (ab != NULL) {
title = g_strdup_printf(_("Modify %s Address Book"), type);
action = _("_Apply");
- name = ab->name;
+ name = libbalsa_address_book_get_name(ab);
} else {
title = g_strdup_printf(_("Add %s Address Book"), type);
action = _("_Add");
@@ -374,7 +374,7 @@ create_osmo_dialog(AddressBookConfig *abc)
if (ab) {
title = g_strdup_printf(_("Modify Osmo Address Book"));
action = _("_Apply");
- name = ab->name;
+ name = libbalsa_address_book_get_name(ab);
} else {
title = g_strdup_printf(_("Add Osmo Address Book"));
action = _("_Add");
@@ -425,8 +425,10 @@ create_externq_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 ? abc->address_book->name : NULL,
+ abc->name_entry =
+ libbalsa_create_grid_entry(grid, NULL, NULL, 0,
+ ab != NULL ?
+ libbalsa_address_book_get_name(LIBBALSA_ADDRESS_BOOK(ab)) : NULL,
label);
label = gtk_label_new(_("Load program location:"));
@@ -491,8 +493,10 @@ create_ldap_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 ? abc->address_book->name : name,
+ abc->name_entry =
+ libbalsa_create_grid_entry(grid, NULL, NULL, 0,
+ ab != NULL ?
+ libbalsa_address_book_get_name(LIBBALSA_ADDRESS_BOOK(ab)) : name,
label);
label = libbalsa_create_grid_label(_("_Host Name"), grid, 1);
@@ -558,8 +562,10 @@ 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"),
+ 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);
@@ -755,11 +761,11 @@ create_book(AddressBookConfig * abc)
} else
g_assert_not_reached();
- if (address_book) {
- address_book->expand_aliases =
- !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->never));
- address_book->is_expensive =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->on_request));
+ if (address_book != NULL) {
+ libbalsa_address_book_set_expand_aliases(address_book,
+ !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->never)));
+ libbalsa_address_book_set_is_expensive(address_book,
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->on_request)));
abc->callback(address_book, TRUE);
}
@@ -771,9 +777,8 @@ modify_book(AddressBookConfig * abc)
{
LibBalsaAddressBook *address_book = abc->address_book;
- g_free(address_book->name);
- address_book->name =
- g_strdup(gtk_entry_get_text(GTK_ENTRY(abc->name_entry)));
+ libbalsa_address_book_set_name(address_book,
+ gtk_entry_get_text(GTK_ENTRY(abc->name_entry)));
if (abc->type == LIBBALSA_TYPE_ADDRESS_BOOK_VCARD
|| abc->type == LIBBALSA_TYPE_ADDRESS_BOOK_LDIF
@@ -846,10 +851,10 @@ modify_book(AddressBookConfig * abc)
} else
g_assert_not_reached();
- address_book->expand_aliases =
- !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->never));
- address_book->is_expensive =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->on_request));
+ libbalsa_address_book_set_expand_aliases(address_book,
+ !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->never)));
+ libbalsa_address_book_set_is_expensive(address_book,
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abc->on_request)));
abc->callback(address_book, FALSE);
}
diff --git a/src/pref-manager.c b/src/pref-manager.c
index f81944e3d..43d7b636b 100644
--- a/src/pref-manager.c
+++ b/src/pref-manager.c
@@ -943,16 +943,16 @@ update_address_books(void)
type = _("Unknown");
if (address_book == balsa_app.default_address_book) {
- name = g_strdup_printf(_("%s (default)"), address_book->name);
+ name = g_strdup_printf(_("%s (default)"), libbalsa_address_book_get_name(address_book));
} else {
- name = g_strdup(address_book->name);
+ name = g_strdup(libbalsa_address_book_get_name(address_book));
}
gtk_list_store_append(GTK_LIST_STORE(model), &iter);
gtk_list_store_set(GTK_LIST_STORE(model), &iter,
AB_TYPE_COLUMN, type,
AB_NAME_COLUMN, name,
- AB_XPND_COLUMN, (address_book->expand_aliases
- && !address_book->is_expensive),
+ AB_XPND_COLUMN, (libbalsa_address_book_get_expand_aliases(address_book)
+ && !libbalsa_address_book_get_is_expensive(address_book)),
AB_DATA_COLUMN, address_book, -1);
g_free(name);
diff --git a/src/save-restore.c b/src/save-restore.c
index ba7b025ab..29f4c08e6 100644
--- a/src/save-restore.c
+++ b/src/save-restore.c
@@ -79,10 +79,14 @@ static inline gboolean is_special_name(const gchar *name);
g_strdup(LIBBALSA_MAILBOX(mbox)->config_prefix) : \
config_get_unused_group(MAILBOX_SECTION_PREFIX)
-#define address_book_section_path(ab) \
- LIBBALSA_ADDRESS_BOOK(ab)->config_prefix ? \
- g_strdup(LIBBALSA_ADDRESS_BOOK(ab)->config_prefix) : \
- config_get_unused_group(ADDRESS_BOOK_SECTION_PREFIX)
+static gchar *
+address_book_section_path(LibBalsaAddressBook *address_book)
+{
+ const gchar *config_prefix = libbalsa_address_book_get_config_prefix(address_book);
+
+ return config_prefix != NULL ? g_strdup(config_prefix) :
+ config_get_unused_group(ADDRESS_BOOK_SECTION_PREFIX);
+}
gint config_load(void)
{
@@ -327,9 +331,11 @@ config_address_book_save(LibBalsaAddressBook * ab)
void
config_address_book_delete(LibBalsaAddressBook * ab)
{
- if (ab->config_prefix) {
- libbalsa_conf_remove_group(ab->config_prefix);
- libbalsa_conf_private_remove_group(ab->config_prefix);
+ const gchar *config_prefix = libbalsa_address_book_get_config_prefix(ab);
+
+ if (config_prefix != NULL) {
+ libbalsa_conf_remove_group(config_prefix);
+ libbalsa_conf_private_remove_group(config_prefix);
libbalsa_conf_queue_sync();
}
}
@@ -1486,10 +1492,10 @@ config_save(void)
libbalsa_conf_set_bool("EmptyTrash", balsa_app.empty_trash_on_exit);
- if (balsa_app.default_address_book)
+ if (balsa_app.default_address_book != NULL)
libbalsa_conf_set_string("DefaultAddressBook",
- balsa_app.default_address_book->
- config_prefix);
+ libbalsa_address_book_get_config_prefix
+ (balsa_app.default_address_book));
else
libbalsa_conf_clean_key("DefaultAddressBook");
diff --git a/src/store-address.c b/src/store-address.c
index 288a3a24e..199c3f1f0 100644
--- a/src/store-address.c
+++ b/src/store-address.c
@@ -308,7 +308,7 @@ store_address_book_frame(StoreAddressInfo * info)
info->current_address_book = address_book;
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box),
- address_book->name);
+ libbalsa_address_book_get_name(address_book));
if (address_book == balsa_app.default_address_book)
default_ab_offset = off;
}
@@ -457,7 +457,7 @@ store_address_add_list(StoreAddressInfo * info,
if (INTERNET_ADDRESS_IS_MAILBOX(ia)) {
store_address_add_address(info, label, ia, NULL);
- } else if (info->current_address_book->dist_list_mode) {
+ } else if (libbalsa_address_book_get_dist_list_mode(info->current_address_book)) {
store_address_add_address(info, label, ia, ia);
} else {
InternetAddressList *members =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]