[balsa] address-book-rubrica: Fix the search for a card
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] address-book-rubrica: Fix the search for a card
- Date: Sat, 22 Jun 2019 17:46:26 +0000 (UTC)
commit 93c089a308e62b97cb75b3cb5a09b754ef56011d
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sat Jun 22 13:44:30 2019 -0400
address-book-rubrica: Fix the search for a card
Fix the search for the card matching a given full-name.
* libbalsa/address-book-rubrica.c
(libbalsa_address_book_rubrica_modify_address): Fix the search
for the card matching a given full-name.
ChangeLog | 6 ++++++
libbalsa/address-book-rubrica.c | 25 ++++++++++++++-----------
2 files changed, 20 insertions(+), 11 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 76f6780fb..c4ccbb4ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-06-22 Peter Bloomfield <pbloomfield bellsouth net>
+
+ * libbalsa/address-book-rubrica.c
+ (libbalsa_address_book_rubrica_modify_address): Fix the search
+ for the card matching a given full-name.
+
2019-06-21 Peter Bloomfield <pbloomfield bellsouth net>
Guard against null string.
diff --git a/libbalsa/address-book-rubrica.c b/libbalsa/address-book-rubrica.c
index e4cba27db..79e0bb121 100644
--- a/libbalsa/address-book-rubrica.c
+++ b/libbalsa/address-book-rubrica.c
@@ -319,8 +319,8 @@ libbalsa_address_book_rubrica_modify_address(LibBalsaAddressBook * ab,
xmlDocPtr doc = NULL;
xmlNodePtr root_element;
xmlNodePtr card;
+ const gchar *full_name = libbalsa_address_get_full_name(address);
LibBalsaABErr result;
- gboolean found;
/* try to load the current file */
if ((result = lbab_rubrica_load_xml(ab_rubrica, &doc)) != LBABERR_OK)
@@ -332,19 +332,22 @@ libbalsa_address_book_rubrica_modify_address(LibBalsaAddressBook * ab,
xmlFreeDoc(doc);
return LBABERR_ADDRESS_NOT_FOUND;
}
- card = root_element->children;
- found = FALSE;
- while (card && !found) {
- if (xmlStrcmp(card->name, CXMLCHARP("Card"))) {
- gchar *full_name = xml_node_get_attr(card, CXMLCHARP("name"));
-
- if (full_name) {
- found = !g_ascii_strcasecmp(libbalsa_address_get_full_name(address), full_name);
- g_free(full_name);
+
+ for (card = root_element->children; card != NULL; card = card->next) {
+ if (xmlStrcmp(card->name, CXMLCHARP("Card")) == 0) {
+ gchar *name = xml_node_get_attr(card, CXMLCHARP("name"));
+
+ if (name != NULL) {
+ gboolean found = g_ascii_strcasecmp(full_name, name) == 0;
+
+ g_free(name);
+ if (found)
+ break;
}
}
}
- if (!found) {
+
+ if (card == NULL) {
xmlFreeDoc(doc);
return LBABERR_ADDRESS_NOT_FOUND;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]