# HG changeset patch # User Ethan Blanton # Date 1336237944 0 # Node ID bcea57ced98c26a35f49202bf47ace3085bddc11 # Parent 31e66fce43d1e8f19d563c9b8f1f6a093b57ac16# Parent 8331b45b620067bf3f63f8032c2f26169ba374fb merge of '8221dbe34324b88bd2852356a0028f0a81cda2bd' and 'c7169cd66afdf09bee74aea8c512261c73a195fe' diff -r 8331b45b6200 -r bcea57ced98c ChangeLog --- a/ChangeLog Sat May 05 17:11:58 2012 +0000 +++ b/ChangeLog Sat May 05 17:12:24 2012 +0000 @@ -1,10 +1,7 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul version 2.10.4: - IRC: - * Disable periodic WHO timer. IRC channel user lists will no - longer automatically display away status, but libpurple will be - much kinder to the network. + TODO version 2.10.3 (03/26/2012): MSN: diff -r 8331b45b6200 -r bcea57ced98c libpurple/protocols/irc/msgs.c --- a/libpurple/protocols/irc/msgs.c Sat May 05 17:11:58 2012 +0000 +++ b/libpurple/protocols/irc/msgs.c Sat May 05 17:12:24 2012 +0000 @@ -112,64 +112,13 @@ irc->timer = purple_timeout_add_seconds(45, (GSourceFunc)irc_blist_timeout, (gpointer)irc); } -/* This function is ugly, but it's really an error handler. */ void irc_msg_default(struct irc_conn *irc, const char *name, const char *from, char **args) { - int i, directed_magic = TRUE; - char *convname, *end, *tmp, *cur; - PurpleConversation *convo; - - for (cur = args[0], i = 0; i < 4; i++) { - end = strchr(cur, ' '); - if (cur == NULL) { - goto undirected; - } - /* Check for 3-digit numeric in second position */ - if (i == 1 && (end - cur != 3 - || !isdigit(cur[0]) || !isdigit(cur[1]) - || !isdigit(cur[2]))) { - goto undirected; - } - /* Hack! */ - if (i != 3) { - cur = end + 1; - } - } - - /* At this point, cur is the beginning of the fourth position, - * end is the following space, and there are remaining - * arguments. We'll check to see if this argument is a - * currently active conversation (private message or channel, - * either one), and print the numeric to that conversation if it - * is. */ - - tmp = g_strndup(cur, end - cur); - convname = purple_utf8_salvage(tmp); - g_free(tmp); - - /* Check for an existing conversation */ - convo = purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY, - convname, - irc->account); - g_free(convname); - - if (convo == NULL) { - goto undirected; - } - - tmp = purple_utf8_salvage(args[0]); - purple_conversation_write(convo, "", tmp, - PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NO_LOG - |PURPLE_MESSAGE_RAW|PURPLE_MESSAGE_NO_LINKIFY, - time(NULL)); - g_free(tmp); - return; - - undirected: + char *clean; /* This, too, should be escaped somehow (smarter) */ - tmp = purple_utf8_salvage(args[0]); - purple_debug(PURPLE_DEBUG_INFO, "irc", "Unrecognized message: %s\n", tmp); - g_free(tmp); + clean = purple_utf8_salvage(args[0]); + purple_debug(PURPLE_DEBUG_INFO, "irc", "Unrecognized message: %s\n", clean); + g_free(clean); } void irc_msg_features(struct irc_conn *irc, const char *name, const char *from, char **args)