# HG changeset patch # User Sadrul Habib Chowdhury # Date 1190195574 0 # Node ID ec75e26e72b36eadcff7dad878339c000a4369ce # Parent 301c89809b9acb51021ebcca6220341c5df475cb Update the alias and emit the signal only when the alias has actually changed. diff -r 301c89809b9a -r ec75e26e72b3 libpurple/blist.c --- a/libpurple/blist.c Wed Sep 19 08:55:52 2007 +0000 +++ b/libpurple/blist.c Wed Sep 19 09:52:54 2007 +0000 @@ -843,6 +843,13 @@ ops->update(purplebuddylist, (PurpleBlistNode *)buddy); } +static gboolean +purple_strings_are_different(const char *one, const char *two) +{ + return !((one && two && g_utf8_collate(one, two) == 0) || + ((one == NULL || *one == '\0') && (two == NULL || *two == '\0'))); +} + void purple_blist_alias_contact(PurpleContact *contact, const char *alias) { PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); @@ -852,6 +859,9 @@ g_return_if_fail(contact != NULL); + if (!purple_strings_are_different(contact->alias, alias)) + return; + old_alias = contact->alias; if ((alias != NULL) && (*alias != '\0')) @@ -886,6 +896,9 @@ g_return_if_fail(chat != NULL); + if (!purple_strings_are_different(chat->alias, alias)) + return; + old_alias = chat->alias; if ((alias != NULL) && (*alias != '\0')) @@ -911,6 +924,9 @@ g_return_if_fail(buddy != NULL); + if (!purple_strings_are_different(buddy->alias, alias)) + return; + old_alias = buddy->alias; if ((alias != NULL) && (*alias != '\0')) @@ -941,6 +957,9 @@ g_return_if_fail(buddy != NULL); + if (!purple_strings_are_different(buddy->server_alias, alias)) + return; + old_alias = buddy->server_alias; if ((alias != NULL) && (*alias != '\0') && g_utf8_validate(alias, -1, NULL)) @@ -1428,6 +1447,9 @@ g_return_if_fail(contact != NULL); + if (!purple_strings_are_different(contact->alias, alias)) + return; + old_alias = contact->alias; if ((alias != NULL) && (*alias != '\0'))