Mercurial > pidgin
changeset 26269:d58ea4aa159d
merge of 'a609160715ae18beed98b084aac19bc0f6551362'
and 'bf71505ba5c16f1c3091dac6ba4950894f6d6960'
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Wed, 01 Apr 2009 05:28:20 +0000 |
parents | dbaf5dd52d67 (diff) f2f4fbbb9006 (current diff) |
children | 63a5274d03cc 14e1f9af369f 0b616d9aa6bb 00870e5f2e90 fc8c1933bc22 |
files | |
diffstat | 4 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Apr 01 05:25:36 2009 +0000 +++ b/ChangeLog Wed Apr 01 05:28:20 2009 +0000 @@ -14,6 +14,10 @@ * Add support for sending attentions (equivalent to "buzz" and "nudge") using the command /buzz (XEP-0224). + IRC: + * Correctly handle WHOIS for users who are joined to a large number of + channels. + Pidgin: * Added -f command line option to tell Pidgin to ignore NetworkManager and assume it has a valid network connection.
--- a/libpurple/protocols/irc/irc.h Wed Apr 01 05:25:36 2009 +0000 +++ b/libpurple/protocols/irc/irc.h Wed Apr 01 05:28:20 2009 +0000 @@ -72,7 +72,7 @@ char *name; char *server; char *serverinfo; - char *channels; + GString *channels; int ircop; int identified; int idle;
--- a/libpurple/protocols/irc/msgs.c Wed Apr 01 05:25:36 2009 +0000 +++ b/libpurple/protocols/irc/msgs.c Wed Apr 01 05:28:20 2009 +0000 @@ -336,7 +336,11 @@ if (args[3]) irc->whois.signon = (time_t)atoi(args[3]); } else if (!strcmp(name, "319")) { - irc->whois.channels = g_strdup(args[2]); + if (irc->whois.channels == NULL) { + irc->whois.channels = g_string_new(args[2]); + } else { + irc->whois.channels = g_string_append(irc->whois.channels, args[2]); + } } else if (!strcmp(name, "320")) { irc->whois.identified = 1; } @@ -391,8 +395,8 @@ g_free(irc->whois.serverinfo); } if (irc->whois.channels) { - purple_notify_user_info_add_pair(user_info, _("Currently on"), irc->whois.channels); - g_free(irc->whois.channels); + purple_notify_user_info_add_pair(user_info, _("Currently on"), irc->whois.channels->str); + g_string_free(irc->whois.channels, TRUE); } if (irc->whois.idle) { gchar *timex = purple_str_seconds_to_string(irc->whois.idle);
--- a/libpurple/protocols/msn/soap.c Wed Apr 01 05:25:36 2009 +0000 +++ b/libpurple/protocols/msn/soap.c Wed Apr 01 05:28:20 2009 +0000 @@ -667,6 +667,7 @@ conn->handled_len = 0; conn->current_request = req; + purple_input_remove(conn->event_handle); conn->event_handle = purple_input_add(conn->ssl->fd, PURPLE_INPUT_WRITE, msn_soap_write_cb, conn); if (!msn_soap_write_cb_internal(conn, conn->ssl->fd, PURPLE_INPUT_WRITE, TRUE)) {