From b2df23571d14a18b21e472468fd4b54417f1c86b Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Mon, 5 Apr 2004 18:31:48 +0000 Subject: Fixed to not ignore signatures without uids (e.g. signatures that were 2004-04-05 Jeffrey Stedfast * e-signature-list.c (gconf_signatures_changed): Fixed to not ignore signatures without uids (e.g. signatures that were from prior versions). svn path=/trunk/; revision=25319 --- e-util/e-signature-list.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'e-util/e-signature-list.c') diff --git a/e-util/e-signature-list.c b/e-util/e-signature-list.c index 315ea8f042..ea3d6e7bb7 100644 --- a/e-util/e-signature-list.c +++ b/e-util/e-signature-list.c @@ -164,32 +164,33 @@ gconf_signatures_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, list = gconf_client_get_list (client, "/apps/evolution/mail/signatures", GCONF_VALUE_STRING, NULL); for (l = list; l; l = l->next) { - uid = e_signature_uid_from_xml (l->data); - if (!uid) - continue; - - /* See if this is an existing signature */ - for (iter = e_list_get_iterator (old_sigs); e_iterator_is_valid (iter); e_iterator_next (iter)) { - signature = (ESignature *) e_iterator_get (iter); - if (!strcmp (signature->uid, uid)) { - /* The signature still exists, so remove - * it from "old_sigs" and update it. - */ - e_iterator_delete (iter); - if (e_signature_set_from_xml (signature, l->data)) - g_signal_emit (signature_list, signals[SIGNATURE_CHANGED], 0, signature); - goto next; + if ((uid = e_signature_uid_from_xml (l->data))) { + /* See if this is an existing signature */ + for (iter = e_list_get_iterator (old_sigs); e_iterator_is_valid (iter); e_iterator_next (iter)) { + signature = (ESignature *) e_iterator_get (iter); + if (!strcmp (signature->uid, uid)) { + /* The signature still exists, so remove + * it from "old_sigs" and update it. + */ + e_iterator_delete (iter); + if (e_signature_set_from_xml (signature, l->data)) + g_signal_emit (signature_list, signals[SIGNATURE_CHANGED], 0, signature); + + g_object_unref (iter); + g_free (uid); + + continue; + } } + + g_object_unref (iter); } /* Must be a new signature */ signature = e_signature_new_from_xml (l->data); e_list_append (E_LIST (signature_list), signature); new_sigs = g_slist_prepend (new_sigs, signature); - - next: g_free (uid); - g_object_unref (iter); } /* Now emit signals for each added signature. */ -- cgit v1.2.3