# HG changeset patch # User ulidtko@gmail.com # Date 1277170818 0 # Node ID 91869ed3ba592df823c75a08547657fb22a893c6 # Parent c2c61981f98d6b5405e2f6d70aa63000d5348b27 Fixes non-ASCII arguments to /mode, /umode, etc. Thanks to Max Ulidtko for this patch. Fixes #12207 committer: Ethan Blanton diff -r c2c61981f98d -r 91869ed3ba59 COPYRIGHT --- a/COPYRIGHT Sun Jun 20 17:51:31 2010 +0000 +++ b/COPYRIGHT Tue Jun 22 01:40:18 2010 +0000 @@ -512,6 +512,7 @@ Kyle Turman Jon Turney Junichi Uekawa +Max Ulidtko Igor Vlasenko István Váradi Martijn van Beers diff -r c2c61981f98d -r 91869ed3ba59 ChangeLog --- a/ChangeLog Sun Jun 20 17:51:31 2010 +0000 +++ b/ChangeLog Tue Jun 22 01:40:18 2010 +0000 @@ -13,6 +13,9 @@ * Rebindable 'dropdown' action for comboboxes (GntComboBox) to show the dropdown list of options. + IRC: + * Fix non-ASCII arguments to /mode et al. (thanks to Max Ulidtko) + XMPP: * Allow connecting to servers that only advertise GSSAPI and expect a fallback to legacy IQ authentication (broken in 2.7.0). diff -r c2c61981f98d -r 91869ed3ba59 libpurple/protocols/irc/cmds.c --- a/libpurple/protocols/irc/cmds.c Sun Jun 20 17:51:31 2010 +0000 +++ b/libpurple/protocols/irc/cmds.c Tue Jun 22 01:40:18 2010 +0000 @@ -238,16 +238,16 @@ if (!args[0] && irc_ischannel(target)) buf = irc_format(irc, "vc", "MODE", target); else if (args[0] && (*args[0] == '+' || *args[0] == '-')) - buf = irc_format(irc, "vcv", "MODE", target, args[0]); + buf = irc_format(irc, "vcn", "MODE", target, args[0]); else if (args[0]) - buf = irc_format(irc, "vv", "MODE", args[0]); + buf = irc_format(irc, "vn", "MODE", args[0]); else return 0; } else if (!strcmp(cmd, "umode")) { if (!args[0]) return 0; gc = purple_account_get_connection(irc->account); - buf = irc_format(irc, "vnv", "MODE", purple_connection_get_display_name(gc), args[0]); + buf = irc_format(irc, "vnc", "MODE", purple_connection_get_display_name(gc), args[0]); } else { return 0; } @@ -437,7 +437,7 @@ if (!args || !args[0]) return 0; - buf = irc_format(irc, "v", args[0]); + buf = irc_format(irc, "n", args[0]); irc_send(irc, buf); g_free(buf);