aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook')
-rw-r--r--addressbook/backend/ebook/e-card-compare.c4
-rw-r--r--addressbook/backend/ebook/e-card-simple.c60
2 files changed, 38 insertions, 26 deletions
diff --git a/addressbook/backend/ebook/e-card-compare.c b/addressbook/backend/ebook/e-card-compare.c
index fc80d5e6c6..f249c1727b 100644
--- a/addressbook/backend/ebook/e-card-compare.c
+++ b/addressbook/backend/ebook/e-card-compare.c
@@ -419,7 +419,7 @@ use_common_book_cb (EBook *book, gpointer closure)
/* Build up our full query from the parts. */
-
+ query_parts[p] = NULL;
qj = g_strjoinv (" ", query_parts);
if (p > 0) {
query = g_strdup_printf ("(or %s)", qj);
@@ -446,7 +446,7 @@ e_card_locate_match (ECard *card, ECardMatchQueryCallback cb, gpointer closure)
info = g_new (MatchSearchInfo, 1);
info->card = card;
- gtk_object_unref (GTK_OBJECT (card));
+ gtk_object_ref (GTK_OBJECT (card));
info->cb = cb;
info->closure = closure;
diff --git a/addressbook/backend/ebook/e-card-simple.c b/addressbook/backend/ebook/e-card-simple.c
index f7550017a0..ed10a56685 100644
--- a/addressbook/backend/ebook/e-card-simple.c
+++ b/addressbook/backend/ebook/e-card-simple.c
@@ -727,15 +727,21 @@ char *e_card_simple_get (ECardSimple *simple,
ECardName *name;
switch(type) {
case E_CARD_SIMPLE_INTERNAL_TYPE_STRING:
- gtk_object_get(GTK_OBJECT(simple->card),
- field_data[field].ecard_field, &string,
- NULL);
- return g_strdup(string);
+ if (simple->card) {
+ gtk_object_get(GTK_OBJECT(simple->card),
+ field_data[field].ecard_field, &string,
+ NULL);
+ return g_strdup(string);
+ } else
+ return NULL;
case E_CARD_SIMPLE_INTERNAL_TYPE_DATE:
- gtk_object_get(GTK_OBJECT(simple->card),
- field_data[field].ecard_field, &date,
- NULL);
- return NULL; /* FIXME!!!! */
+ if (simple->card) {
+ gtk_object_get(GTK_OBJECT(simple->card),
+ field_data[field].ecard_field, &date,
+ NULL);
+ return NULL; /* FIXME!!!! */
+ } else
+ return NULL;
case E_CARD_SIMPLE_INTERNAL_TYPE_ADDRESS:
addr = e_card_simple_get_address(simple,
field_data[field].list_type_index);
@@ -757,24 +763,30 @@ char *e_card_simple_get (ECardSimple *simple,
case E_CARD_SIMPLE_INTERNAL_TYPE_SPECIAL:
switch (field) {
case E_CARD_SIMPLE_FIELD_NAME_OR_ORG:
- gtk_object_get(GTK_OBJECT(simple->card),
- "full_name", &string,
- NULL);
- if (string && *string)
+ if (simple->card) {
+ gtk_object_get(GTK_OBJECT(simple->card),
+ "full_name", &string,
+ NULL);
+ if (string && *string)
+ return g_strdup(string);
+ gtk_object_get(GTK_OBJECT(simple->card),
+ "org", &string,
+ NULL);
+ if (string && *string)
+ return g_strdup(string);
+ string = e_card_simple_get_email(simple,
+ E_CARD_SIMPLE_EMAIL_ID_EMAIL);
return g_strdup(string);
- gtk_object_get(GTK_OBJECT(simple->card),
- "org", &string,
- NULL);
- if (string && *string)
- return g_strdup(string);
- string = e_card_simple_get_email(simple,
- E_CARD_SIMPLE_EMAIL_ID_EMAIL);
- return g_strdup(string);
+ } else
+ return NULL;
case E_CARD_SIMPLE_FIELD_FAMILY_NAME:
- gtk_object_get (GTK_OBJECT(simple->card),
- "name", &name,
- NULL);
- return g_strdup (name->family);
+ if (simple->card) {
+ gtk_object_get (GTK_OBJECT(simple->card),
+ "name", &name,
+ NULL);
+ return g_strdup (name->family);
+ } else
+ return NULL;
default:
return NULL;
}