[Mutt-j-users 13] Re: mutt-1.5.9

Back to archive index

TAKAHASHI Tamotsu ttaka****@lapis*****
2005年 3月 19日 (土) 12:05:01 JST


高橋全です。

On Fri, 18 Mar 2005, TAKAHASHI Tamotsu wrote:
> > assumed_charset なんですが、Alain や Vincent が言うには
> > 「変換に失敗しても変換前のを strncpy() するだけじゃあヤダ」
> > 「失敗してもとにかく '?' とかにして変換してくれ」
> > ということです。
> > 
> > それで mutt-dev には
> > http://marc.theaimsgroup.com/?l=mutt-dev&m=110873485407136&w=2
> > のようなパッチを送ってあるのですが、どうでしょうか。
> > convert_nonmime_string() の中で、最後まで行っちゃったら
> > AssumedCharset の最初の値で mutt_convert_string() を呼ぶように
> > してあります。そして convert_nonmime_string() の返り値が何で
> > あろうと、その変換された文字列を使うようにしてあるんです。
> > 
> > こうするとボディと似てて一貫性がありますよね。
> > 実際、よくわからないデータが来たときにそのまま画面に出ちゃうと
> > 化け化けで気持ち悪いので、こういう動作は好きです。

すみません。
この部分のキモを忘れていました。
修正版を添付します。

-- 
tamo
-------------- next part --------------
diff -u mutt-1.5.9/rfc2047.c mutt-1.5.9/rfc2047.c
--- mutt-1.5.9/rfc2047.c	2005-03-14 23:22:11.421597240 +0900
+++ mutt-1.5.9/rfc2047.c	2005-03-14 23:22:11.421597240 +0900
@@ -109,7 +109,7 @@
     c1 = strchr (c, ':');
     n = c1 ? c1 - c : mutt_strlen (c);
     if (!n)
-      continue;
+      return 0;
     fromcode = safe_malloc (n + 1);
     strfcpy (fromcode, c, n + 1);
     m = convert_string (u, ulen, fromcode, Charset, &s, &slen);
@@ -121,6 +121,9 @@
       return 0;
     }
   }
+  mutt_convert_string (ps,
+    (const char *)mutt_get_default_charset (AssumedCharset),
+    Charset, M_ICONV_HOOK_FROM);
   return -1;
 }
 
@@ -829,17 +832,10 @@
 	n = mutt_strlen (s);
 	t = safe_malloc (n + 1);
 	strfcpy (t, s, n + 1);
-	if (convert_nonmime_string (&t) == 0)
-	{
-	  tlen = mutt_strlen (t);
-	  strncpy (d, t, tlen);
-	  d += tlen;
-	}
-	else
-	{
-	  strncpy (d, s, n);
-	  d += n;
-	}
+	convert_nonmime_string (&t);
+	tlen = mutt_strlen (t);
+	strncpy (d, t, tlen);
+	d += tlen;
 	FREE (&t);
 	break;
       }


Mutt-j-users メーリングリストの案内
Back to archive index