aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog10
-rw-r--r--addressbook/backend/ebook/e-book-util.c36
-rw-r--r--addressbook/gui/component/e-address-popup.c5
3 files changed, 33 insertions, 18 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 7244a91562..2015c0af47 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,13 @@
+2002-06-10 Christopher James Lahey <clahey@ximian.com>
+
+ * backend/ebook/e-book-util.c (e_book_expand_uri): Made expand_uri
+ a bit more robust and readable.
+ (e_book_get_default_book_uri): Made e_book_get_default_book_uri
+ use e_book_expand_uri if using the bonobo_config value.
+
+ * gui/component/e-address-popup.c (start_query): Handle the
+ failure state here by acting as if there are no matches.
+
2002-06-05 Christopher James Lahey <clahey@ximian.com>
* gui/widgets/e-minicard.c (e_minicard_event): Call
diff --git a/addressbook/backend/ebook/e-book-util.c b/addressbook/backend/ebook/e-book-util.c
index 62694a8563..ff388105f0 100644
--- a/addressbook/backend/ebook/e-book-util.c
+++ b/addressbook/backend/ebook/e-book-util.c
@@ -42,27 +42,27 @@ struct _CommonBookInfo {
char *
e_book_expand_uri (const char *uri)
{
- char *new_uri;
-
if (!strncmp (uri, "file:", 5)) {
- if (strlen (uri + 7) > 3
- && !strcmp (uri + strlen(uri) - 3, ".db")) {
- /* it's a .db file */
- new_uri = g_strdup (uri);
- }
- else {
- char *file_name;
+ int length = strlen (uri);
+ int offset = 5;
+
+ if (!strncmp (uri, "file://", 7))
+ offset = 7;
+
+ if (length < 3 || strcmp (uri + length - 3, ".db")) {
/* we assume it's a dir and glom addressbook.db onto the end. */
- file_name = g_concat_dir_and_file(uri + 7, "addressbook.db");
- new_uri = g_strdup_printf("file://%s", file_name);
+
+ char *ret_val;
+ char *file_name;
+
+ file_name = g_concat_dir_and_file(uri + offset, "addressbook.db");
+ ret_val = g_strdup_printf("file://%s", file_name);
g_free(file_name);
+ return ret_val;
}
}
- else {
- new_uri = g_strdup (uri);
- }
- return new_uri;
+ return g_strdup (uri);
}
static void
@@ -281,9 +281,9 @@ e_book_get_default_book_uri ()
CORBA_exception_free (&ev);
if (val) {
- uri = val;
- }
- else {
+ uri = e_book_expand_uri (val);
+ g_free (val);
+ } else {
char *filename;
filename = gnome_util_prepend_user_home ("evolution/local/Contacts/addressbook.db");
uri = g_strdup_printf ("file://%s", filename);
diff --git a/addressbook/gui/component/e-address-popup.c b/addressbook/gui/component/e-address-popup.c
index 7c04cc0130..553ba642c8 100644
--- a/addressbook/gui/component/e-address-popup.c
+++ b/addressbook/gui/component/e-address-popup.c
@@ -1131,6 +1131,11 @@ static void
start_query (EBook *book, EBookStatus status, gpointer closure)
{
EAddressPopup *pop = E_ADDRESS_POPUP (closure);
+
+ if (status != E_BOOK_STATUS_SUCCESS) {
+ e_address_popup_no_matches (pop);
+ return;
+ }
if (pop->query_tag)
e_book_simple_query_cancel (book, pop->query_tag);