diff options
author | Sivaiah Nallagatla <snallagatla@novell.com> | 2004-07-19 05:33:07 +0000 |
---|---|---|
committer | Sivaiah Nallagatla <siva@src.gnome.org> | 2004-07-19 05:33:07 +0000 |
commit | 976302404a135aa709f1bc60bad8161c55ada5bc (patch) | |
tree | a5437c8767b97a9b4900c2b40dcee83026b09d45 | |
parent | 491e8c914a307a317cfe6e96dbb86d96ff18164a (diff) | |
download | evolution-data-server-976302404a135aa709f1bc60bad8161c55ada5bc.tar.gz |
provided implementation, search in all fileds of all types of addresses
2004-07-19 Sivaiah Nallagatla <snallagatla@novell.com>
* libedata-book/e-book-backend-sexp.c (compare_address) : provided
implementation, search in all fileds of all types of addresses
till a match occurs
Fixes #58701
-rw-r--r-- | addressbook/ChangeLog | 7 | ||||
-rw-r--r-- | addressbook/libedata-book/e-book-backend-sexp.c | 26 |
2 files changed, 31 insertions, 2 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index a3139c288..77b885b0e 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,10 @@ +2004-07-19 Sivaiah Nallagatla <snallagatla@novell.com> + + * libedata-book/e-book-backend-sexp.c (compare_address) : provided + implementation, search in all fileds of all types of addresses + till a match occurs + Fixes #58701 + 2004-07-16 Chris Toshok <toshok@ximian.com> [ fixes #61052 ] diff --git a/addressbook/libedata-book/e-book-backend-sexp.c b/addressbook/libedata-book/e-book-backend-sexp.c index d6304ce2a..12b3315b1 100644 --- a/addressbook/libedata-book/e-book-backend-sexp.c +++ b/addressbook/libedata-book/e-book-backend-sexp.c @@ -152,8 +152,30 @@ static gboolean compare_address (EContact *contact, const char *str, char *(*compare)(const char*, const char*)) { - g_warning("address searching not implemented\n"); - return FALSE; + + int i; + gboolean rv = FALSE; + + for (i = E_CONTACT_FIRST_ADDRESS_ID; i <= E_CONTACT_LAST_ADDRESS_ID; i ++) { + EContactAddress *address = e_contact_get (contact, i); + if (address) { + rv = (address->po && compare(address->po, str)) || + (address->street && compare(address->street, str)) || + (address->ext && compare(address->ext, str)) || + (address->locality && compare(address->locality, str)) || + (address->region && compare(address->region, str)) || + (address->code && compare(address->code, str)) || + (address->country && compare(address->country, str)); + + e_contact_address_free (address); + + if (rv) + break; + } + } + + return rv; + } static gboolean |