[前][次][番号順一覧][スレッド一覧]

sylpheed-jp:1732

From: Hiroyuki Yamamoto <hiro-y@xxxxxxxxxx>
Date: Mon, 20 May 2002 20:02:40 +0900
Subject: [sylpheed-jp:01732] Re: 添付ファイル名に空白が入る

山本です。

On Fri, 17 May 2002 14:53:50 +0900
とみたまさひろ <tommy@xxxxxxxxxx> wrote:

> > 0.7.6 でも直ってなくて、ちょっと会社の業務に支障をきたすようになって
> > きたので、もう一度挑戦して適当にパッチを作ってみました。
> > 
> > 良く理解せずにいじってるので、かなり怪しいのですが、いちおうそれなり
> > に動いているみたいです。
> 
> すいません、ダメダメでした。場合によってはメールヘッダを壊してしまいま
> す。
> 
> ということで、作り直しました。今回はちゃんとソースを理解して作ったつも
> りです。

パッチありがとうございました。が、これでも挙動がちょっと変だったので、
真面目にコードを追ってみました
# 泣きそうになりながら(^^;; 自分で書いたコードなのに……
# 実はこのバグは前から気づいていたんですが、後で完全に書き直すつもりで
# 放ってました(笑)

というわけで、次のようにするとばっちり直っていると思います。
# 今から cvs commit します。


--- src/codeconv.c      2002/02/28 08:18:25     1.48
+++ src/codeconv.c      2002/05/20 10:51:17
@@ -1042,6 +1042,7 @@
        while (*wsrcp) {
                wchar_t *wp, *wtmp, *wtmpp;
                gint nspc = 0;
+               gboolean str_is_non_ascii;
 
                /* irresponsible buffer overrun check */
                if ((len - (destp - dest)) < (MAX_LINELEN + 1) * 2)
break;
@@ -1052,8 +1053,11 @@
                        wp = wsrcp;
                        while ((wp = find_wspace(wp)) != NULL)
                                if (!is_next_nonascii(wp)) break;
-               } else
+                       str_is_non_ascii = TRUE;
+               } else {
                        wp = find_wspace(wsrcp);
+                       str_is_non_ascii = FALSE;
+               }
 
                if (wp != NULL) {
                        wtmp = wcsndup(wsrcp, wp - wsrcp);
@@ -1088,7 +1092,7 @@
                                if (prev_mbl == 1 && mbl == 2)
                                        mb_seqlen += JIS_SEQLEN * 2;
 
-                               if (mb_seqlen) {
+                               if (str_is_non_ascii) {
                                        gint dlen = mimehdr_len +
                                                B64LEN(tlen + mb_seqlen
+ mbl);

@@ -1145,7 +1149,7 @@
                                line_len++;
                        }
 
-                       if (mb_seqlen) {
+                       if (str_is_non_ascii) {
                                gchar *tmp_jis;
 
                                tmp_jis = g_new(gchar, tlen + mb_seqlen
+ 1);

-- 
Hiroyuki Yamamoto <yamamoto@xxxxxxxxxx>
http://www.good-day.co.jp/    (Good-Day)
http://www.good-day.net/      (Good-Day.NET)
http://sylpheed.good-day.net/ (Sylpheed)

[前][次][番号順一覧][スレッド一覧]

      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   ]