changeset 28859:50256289be74

*** Plucked rev 1cd91846f484f7d7090d25b0e65d851a0dadcb90 (e894e488d2219b69664de488ee1af7f275f8817d): Improved handling of the 0x00d charset in AIM, which is sent by mobile devices speaking ISO-8859-1. Try UTF-8 first (the encoding sent by iChat in a Direct IM with non-ASCII characters), then fall back to ISO-8859-1. Fixes #a13544, a bug created with the fix for iChat DIM encoding new in libpurple 2.6.4 applied changes from 6f3a1b3c52803e11d4cda1e0537c1270599e8d8e through ed0a2a35c7e22519df27c50069c22b03e01c027a *** Plucked rev e8ba4281669ae86859fd4e29f5d8ea0286af3903 (f05c54b03e6bbfdbff38c01697fbd353a969e05e): Changelog the AIM/ICQ issue. Refs #10900.
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 07 Jan 2010 23:43:26 +0000
parents 4287ad77f137
children 49f881831eb9
files ChangeLog libpurple/protocols/oscar/oscar.c
diffstat 2 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jan 07 23:42:35 2010 +0000
+++ b/ChangeLog	Thu Jan 07 23:43:26 2010 +0000
@@ -5,6 +5,10 @@
 	General:
 	* Build-time fixes for Solaris.  (Paul Townsend)
 
+	AIM and ICQ:
+	* Messages from some mobile clients are no longer displayed as
+	  Chinese characters (broken in 2.6.4)
+
 	XMPP:
 	* Do not crash when attempting to register for a new account on Windows.
 
--- a/libpurple/protocols/oscar/oscar.c	Thu Jan 07 23:42:35 2010 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Thu Jan 07 23:43:26 2010 +0000
@@ -457,10 +457,10 @@
 		charsetstr1 = "ASCII";
 		charsetstr2 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
 	} else if (charset == 0x000d) {
-		/* iChat sending unicode over a Direct IM connection = Unicode */
-		/* Mobile AIM client on a Nokia 3100 and an LG VX6000 = ISO-8859-1 */
-		charsetstr1 = "UTF-16BE";
-		charsetstr2 = "UTF-8";
+		/* iChat sending unicode over a Direct IM connection = UTF-8 */
+		/* Mobile AIM client on multiple devices (including Blackberry Tour, Nokia 3100, and LG VX6000) = ISO-8859-1 */
+		charsetstr1 = "UTF-8";
+		charsetstr2 = "ISO-8859-1";
 		charsetstr3 = purple_account_get_string(account, "encoding", OSCAR_DEFAULT_CUSTOM_ENCODING);
 	} else {
 		/* Unknown, hope for valid UTF-8... */