[balsa] address-book-rubrica: Fix the search for a card



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]