|
sylpheed-jp:1727
From: とみたまさひろ <tommy@xxxxxxxxxx> とみたです。 かなり前のメールですが、 On Tue, 5 Feb 2002 16:46:44 +0900 とみたまさひろ <tommy@xxxxxxxxxx> wrote: > Sylpheed 0.7.0 で、添付ファイル名が日本語+英語でちょっと長い場合、空白 > が入ることがあるみたいです。 > > たとえば、「だるまさんがころんだよん.txt」というファイル名を添付すると、 > 次のようにエンコードされてしまい、 > > Content-Type: text/plain; > name="=?ISO-2022-JP?B?GyRCJEAkayReJDUkcyQsJDMkbSRzJEAkaCRzGyhCLnR4?= t" > Content-Disposition: attachment; > filename="=?ISO-2022-JP?B?GyRCJEAkayReJDUkcyQsJDMkbSRzJEAkaCRzGyhCLnR4?= t" > > デコードすると、「だるまさんがころんだよん.tx t」となってしまいます。 > > なお、libjconv は使ってません。 > > # codeconv.c をちょっと眺めてみたのですが、挫折しました (^^; 0.7.6 でも直ってなくて、ちょっと会社の業務に支障をきたすようになってき たので、もう一度挑戦して適当にパッチを作ってみました。 良く理解せずにいじってるので、かなり怪しいのですが、いちおうそれなりに 動いているみたいです。 --- sylpheed-0.7.6/src/codeconv.c.orig Thu Feb 28 22:06:07 2002 +++ sylpheed-0.7.6/src/codeconv.c Thu May 16 17:02:21 2002 @@ -1017,6 +1017,7 @@ gchar *mimehdr_end = "?="; gchar *mimehdr_enctype = "?B?"; const gchar *mimehdr_charset; + gint prev_line_end_with_encoding = 0; /* g_print("src = %s\n", src); */ mimehdr_charset = conv_get_outgoing_charset_str(); @@ -1048,7 +1049,7 @@ /* encode string including space if non-ASCII string follows */ - if (is_next_nonascii(wsrcp)) { + if (!prev_line_end_with_encoding && is_next_nonascii(wsrcp)) { wp = wsrcp; while ((wp = find_wspace(wp)) != NULL) if (!is_next_nonascii(wp)) break; @@ -1085,7 +1086,8 @@ } /* length of KI + KO */ - if (prev_mbl == 1 && mbl == 2) + if (prev_line_end_with_encoding || + prev_mbl == 1 && mbl == 2) mb_seqlen += JIS_SEQLEN * 2; if (mb_seqlen) { @@ -1166,10 +1168,12 @@ line_len += strlen(mimehdr_end); g_free(tmp_jis); + prev_line_end_with_encoding = 1; } else { strcpy(destp, tmp); line_len += strlen(destp); destp += strlen(destp); + prev_line_end_with_encoding = 0; } g_free(tmp); -- とみたまさひろ <tommy@xxxxxxxxxx>, <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp 1461 2002-02-05 16:46 [tommy@xxxxxxxxxx ] 添付ファイル名に空白が入る -> 1727 2002-05-17 01:31 ┗[tommy@xxxxxxxxxx ] 1728 2002-05-17 14:53 ┗[tommy@xxxxxxxxxx ] 1732 2002-05-20 20:02 ┗[hiro-y@xxxxxxxxxx ] |