--- a/src/protocols/silc/buddy.c Fri Jan 20 17:24:54 2006 +0000 +++ b/src/protocols/silc/buddy.c Fri Jan 20 20:35:18 2006 +0000 @@ -1509,7 +1509,7 @@ return NULL; } -char *silcgaim_tooltip_text(GaimBuddy *b, gboolean full) +void silcgaim_tooltip_text(GaimBuddy *b, GString *str, gboolean full) { SilcGaim sg = b->account->gc->proto_data; SilcClient client = sg->client; @@ -1517,72 +1517,65 @@ SilcClientID *client_id = b->proto_data; SilcClientEntry client_entry; char *moodstr, *statusstr, *contactstr, *langstr, *devicestr, *tzstr, *geostr; - GString *s; - char *buf; char tmp[256]; - s = g_string_new(""); - /* Get the client entry. */ client_entry = silc_client_get_client_by_id(client, conn, client_id); if (!client_entry) - return NULL; + return; if (client_entry->nickname) - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Nickname"), + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Nickname"), client_entry->nickname); if (client_entry->username && client_entry->hostname) - g_string_append_printf(s, "\n<b>%s:</b> %s@%s", _("Username"), + g_string_append_printf(str, "\n<b>%s:</b> %s@%s", _("Username"), client_entry->username, client_entry->hostname); if (client_entry->mode) { - g_string_append_printf(s, "\n<b>%s:</b> ", _("User Modes")); + g_string_append_printf(str, "\n<b>%s:</b> ", _("User Modes")); memset(tmp, 0, sizeof(tmp)); silcgaim_get_umode_string(client_entry->mode, tmp, sizeof(tmp) - strlen(tmp)); - g_string_append_printf(s, "%s", tmp); + g_string_append_printf(str, "%s", tmp); } silcgaim_parse_attrs(client_entry->attrs, &moodstr, &statusstr, &contactstr, &langstr, &devicestr, &tzstr, &geostr); if (statusstr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Message"), statusstr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Message"), statusstr); g_free(statusstr); } if (full) { if (moodstr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Mood"), moodstr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Mood"), moodstr); g_free(moodstr); } if (contactstr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Preferred Contact"), contactstr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Preferred Contact"), contactstr); g_free(contactstr); } if (langstr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Preferred Language"), langstr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Preferred Language"), langstr); g_free(langstr); } if (devicestr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Device"), devicestr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Device"), devicestr); g_free(devicestr); } if (tzstr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Timezone"), tzstr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Timezone"), tzstr); g_free(tzstr); } if (geostr) { - g_string_append_printf(s, "\n<b>%s:</b> %s", _("Geolocation"), geostr); + g_string_append_printf(str, "\n<b>%s:</b> %s", _("Geolocation"), geostr); g_free(geostr); } } - - buf = g_string_free(s, FALSE); - return buf; } static void