# HG changeset patch # User Evan Schoenberg # Date 1211924489 0 # Node ID b1e219ed4e1cfe90f29c0e132461bb11d7c8292a # Parent 1bdf8223ba45048cd423ed1a9cfae1d42f369c47 Moved the remainder of ICQ's user info processing to use the notify_user_info API properly rather than appending a series of strings. diff -r 1bdf8223ba45 -r b1e219ed4e1c libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Tue May 27 17:31:39 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Tue May 27 21:41:29 2008 +0000 @@ -761,18 +761,6 @@ } static void -oscar_string_convert_and_append(PurpleAccount *account, GString *str, const char *newline, - const char *name, const char *value) -{ - gchar *utf8; - - if (value && value[0] && (utf8 = oscar_utf8_try_convert(account, value))) { - g_string_append_printf(str, "%s%s: %s", newline, name, utf8); - g_free(utf8); - } -} - -static void oscar_user_info_convert_and_add(PurpleAccount *account, PurpleNotifyUserInfo *user_info, const char *name, const char *value) { @@ -3818,42 +3806,33 @@ purple_notify_user_info_add_section_break(user_info); if ((info->homeaddr && (info->homeaddr[0])) || (info->homecity && info->homecity[0]) || (info->homestate && info->homestate[0]) || (info->homezip && info->homezip[0])) { - tmp = g_string_sized_new(100); - oscar_string_convert_and_append(account, tmp, "\n
", _("Address"), info->homeaddr); - oscar_string_convert_and_append(account, tmp, "\n
", _("City"), info->homecity); - oscar_string_convert_and_append(account, tmp, "\n
", _("State"), info->homestate); - oscar_string_convert_and_append(account, tmp, "\n
", _("Zip Code"), info->homezip); - - purple_notify_user_info_add_pair(user_info, _("Home Address"), tmp->str); - purple_notify_user_info_add_section_break(user_info); - - g_string_free(tmp, TRUE); + purple_notify_user_info_add_section_header(user_info, _("Home Address")); + + oscar_user_info_convert_and_add(account, user_info, _("Address"), info->homeaddr); + oscar_user_info_convert_and_add(account, user_info, _("City"), info->homecity); + oscar_user_info_convert_and_add(account, user_info, _("State"), info->homestate); + oscar_user_info_convert_and_add(account, user_info, _("Zip Code"), info->homezip); } if ((info->workaddr && info->workaddr[0]) || (info->workcity && info->workcity[0]) || (info->workstate && info->workstate[0]) || (info->workzip && info->workzip[0])) { - tmp = g_string_sized_new(100); - - oscar_string_convert_and_append(account, tmp, "\n
", _("Address"), info->workaddr); - oscar_string_convert_and_append(account, tmp, "\n
", _("City"), info->workcity); - oscar_string_convert_and_append(account, tmp, "\n
", _("State"), info->workstate); - oscar_string_convert_and_append(account, tmp, "\n
", _("Zip Code"), info->workzip); - - purple_notify_user_info_add_pair(user_info, _("Work Address"), tmp->str); - purple_notify_user_info_add_section_break(user_info); - - g_string_free(tmp, TRUE); + purple_notify_user_info_add_section_header(user_info, _("Work Address")); + + oscar_user_info_convert_and_add(account, user_info, _("Address"), info->workaddr); + oscar_user_info_convert_and_add(account, user_info, _("City"), info->workcity); + oscar_user_info_convert_and_add(account, user_info, _("State"), info->workstate); + oscar_user_info_convert_and_add(account, user_info, _("Zip Code"), info->workzip); } if ((info->workcompany && info->workcompany[0]) || (info->workdivision && info->workdivision[0]) || (info->workposition && info->workposition[0]) || (info->workwebpage && info->workwebpage[0])) { - tmp = g_string_sized_new(100); + purple_notify_user_info_add_section_header(user_info, _("Work Information")); - oscar_string_convert_and_append(account, tmp, "\n
", _("Company"), info->workcompany); - oscar_string_convert_and_append(account, tmp, "\n
", _("Division"), info->workdivision); - oscar_string_convert_and_append(account, tmp, "\n
", _("Position"), info->workposition); + oscar_user_info_convert_and_add(account, user_info, _("Company"), info->workcompany); + oscar_user_info_convert_and_add(account, user_info, _("Division"), info->workdivision); + oscar_user_info_convert_and_add(account, user_info, _("Position"), info->workposition); + if (info->workwebpage && info->workwebpage[0] && (utf8 = oscar_utf8_try_convert(gc->account, info->workwebpage))) { - g_string_append_printf(tmp, "\n
%s: %s", _("Web Page"), utf8, utf8); - g_free(utf8); + char *webpage = g_strdup_printf("%s", utf8, utf8); + oscar_user_info_convert_and_add(account, user_info, _("Web Page"), webpage); + g_free(webpage); } - purple_notify_user_info_add_pair(user_info, _("Work Information"), tmp->str); - g_string_free(tmp, TRUE); } if (buddy != NULL)