Gaim v2.0.0bate3.1 で Yahoo! chat が使えない
[vine-users:078143] を先頭するスレッドの内容は,「Gaim v2.0.0bate3.1 で Yahoo! chat が使えない.」というものですが,2008/02/26 に Yahoo! がシステムメンテナンスをしたために,既存の Pidgin(旧 Gaim)で Yahoo! Messenger などに接続できないそうなんです.
Pidgin ではすでに対応パッチ*1が出ています.
--- libpurple/protocols/yahoo/util.c 6a72fcc2054413ee7791e5c5cc62b6b18f4bcce0 +++ libpurple/protocols/yahoo/util.c 2a3725bcc455684e1c1bb42bd4982cc322732f38 @@ -114,18 +114,15 @@ char *yahoo_string_encode(PurpleConnecti char *ret; const char *to_codeset; - if (yd->jp && utf8 && *utf8) - *utf8 = FALSE; + if (yd->jp) + return g_strdup(str); if (utf8 && *utf8) /* FIXME: maybe don't use utf8 if it'll fit in latin1 */ return g_strdup(str); - if (yd->jp) - to_codeset = "SHIFT_JIS"; - else - to_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset", "ISO-8859-1"); + to_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset", "ISO-8859-1"); + ret = g_convert_with_fallback(str, -1, to_codeset, "UTF-8", "?", NULL, NULL, NULL); - ret = g_convert_with_fallback(str, -1, to_codeset, "UTF-8", "?", NULL, NULL, NULL); if (ret) return ret; else
Gaim ではどうするかということなんですが,スレッドの M.H さんが上記パッチに相応する Gaim 向けにパッチを添付して下さいました.
--- gaim-2.0.0beta3.1/src/protocols/yahoo/util.c.yahoojp_msgr 2008-03-02 10:23:25.000000000 +0900 +++ gaim-2.0.0beta3.1/src/protocols/yahoo/util.c 2008-03-02 10:28:14.000000000 +0900 @@ -52,16 +52,13 @@ int newlen; const char *to_codeset; - if (yd->jp && utf8 && *utf8) - *utf8 = FALSE; + if (yd->jp) + return g_strdup(str); if (utf8 && *utf8) /* FIXME: maybe don't use utf8 if it'll fit in latin1 */ return g_strdup(str); - if (yd->jp) - to_codeset = "SHIFT_JIS"; - else - to_codeset = "ISO-8859-1"; + to_codeset = "ISO-8859-1"; strtmp = sanitize_utf((char *)str, strlen((char *)str), &newlen);
確かに yahoojp_msgr.patch と同様な修正を施したパッチです.UTF8 を使うようになったということなんでしょうか?そこらへんは分かりません.