changeset 4665:818ee615b025

[gaim-migrate @ 4976] This makes Japanese work perfectly for me between Gaim and ICQ 2003a. I tried to figure out why ICQ Lite sucks so much, and from what I can tell, it looks like the Japanese version of ICQ lite doesn't know how to send messages in Japanese. So if you need foreign language support with ICQ, make sure the person you're talking to is using ICQ2003a. It should work. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Fri, 07 Mar 2003 18:20:47 +0000
parents eab1309693b8
children f8895ad921ee
files src/protocols/oscar/oscar.c
diffstat 1 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Fri Mar 07 07:36:11 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Fri Mar 07 18:20:47 2003 +0000
@@ -99,7 +99,8 @@
 /* static int caps_icq = AIM_CAPS_ICQ; */
 /* What does AIM_CAPS_ICQ actually mean? -SE */
 
-static fu8_t gaim_features[] = {0x01, 0x01, 0x01, 0x02};
+static fu8_t features_aim[] = {0x01, 0x01, 0x01, 0x02};
+static fu8_t features_icq[] = {0x01, 0x06};
 
 struct oscar_data {
 	aim_session_t *sess;
@@ -3841,11 +3842,14 @@
 		int len;
 
 		args.flags = AIM_IMFLAGS_ACK | AIM_IMFLAGS_CUSTOMFEATURES;
-		if (od->icq)
+		if (od->icq) {
+			args.features = features_icq;
+			args.featureslen = sizeof(features_icq);
 			args.flags |= AIM_IMFLAGS_OFFLINE;
-
-		args.features = gaim_features;
-		args.featureslen = sizeof(gaim_features);
+		} else {
+			args.features = features_aim;
+			args.featureslen = sizeof(features_aim);
+		}
 
 		while (h) {
 			ir = h->data;
@@ -3884,7 +3888,7 @@
 		if (args.flags & AIM_IMFLAGS_UNICODE) {
 			debug_printf("Sending Unicode IM\n");
 			args.charset = 0x0002;
-			args.charsubset = 0x0002;
+			args.charsubset = 0x0000;
 			args.msg = g_convert(message, len, "UCS-2BE", "UTF-8", NULL, &len, &err);
 			if (err) {
 				debug_printf("Error converting a unicode message: %s\n", err->message);
@@ -3895,7 +3899,7 @@
 		} else if (args.flags & AIM_IMFLAGS_ISO_8859_1) {
 			debug_printf("Sending ISO-8859-1 IM\n");
 			args.charset = 0x0003;
-			args.charsubset = 0x0003;
+			args.charsubset = 0x0000;
 			args.msg = g_convert(message, len, "ISO-8859-1", "UTF-8", NULL, &len, &err);
 			if (err) {
 				debug_printf("conversion error: %s\n", err->message);