# HG changeset patch # User Mark Doliner # Date 1047061247 0 # Node ID 818ee615b02589642da9c89c487947597120a446 # Parent eab1309693b88beb23bc0da304f2b2e880b6bb5a [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 diff -r eab1309693b8 -r 818ee615b025 src/protocols/oscar/oscar.c --- 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);