Mercurial > pidgin.yaz
changeset 27753:0d60830ab85f
apply nosuke-san's yahoo mail patch.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 17 Dec 2007 07:48:27 +0000 |
parents | 2de9ab207c8e |
children | 754a82f1371b |
files | libpurple/protocols/yahoo/yahoo.c |
diffstat | 1 files changed, 14 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c Sat Dec 15 14:46:08 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Mon Dec 17 07:48:27 2007 +0000 @@ -1263,8 +1263,9 @@ #define OUT_CHARSET "utf-8" -static char *yahoo_decode(const char *text) +static char *yahoo_decode(PurpleConnection *gc, const char *text) { + struct yahoo_data *yd = gc->proto_data; char *converted = NULL; char *n, *new; const char *end, *p; @@ -1305,11 +1306,16 @@ *n = '\0'; - if (strstr(text, "\033$B")) - converted = g_convert(new, n - new, OUT_CHARSET, "iso-2022-jp", NULL, NULL, NULL); - if (!converted) - converted = g_convert(new, n - new, OUT_CHARSET, "iso-8859-1", NULL, NULL, NULL); - g_free(new); + if (yd->jp) { + converted = g_convert(new, n - new, OUT_CHARSET, "SJIS", NULL, NULL, NULL); + } + if (!yd->jp || !converted) { + if (strstr(text, "\033$B")) + converted = g_convert(new, n - new, OUT_CHARSET, "iso-2022-jp", NULL, NULL, NULL); + if (!converted) + converted = g_convert(new, n - new, OUT_CHARSET, "iso-8859-1", NULL, NULL, NULL); + g_free(new); + } return converted; } @@ -1342,8 +1348,8 @@ } if (who && subj && email && *email) { - char *dec_who = yahoo_decode(who); - char *dec_subj = yahoo_decode(subj); + char *dec_who = yahoo_decode(gc, who); + char *dec_subj = yahoo_decode(gc, subj); char *from = g_strdup_printf("%s (%s)", dec_who, email); purple_notify_email(gc, dec_subj, from, purple_account_get_username(account),