[Mew-Win32 01014] Re: mew-fake-cdpでfilename="日本語.XLS"が落ちない

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
1998年 11月 10日 (火) 13:27:38 JST


こんにちは、白井です。

From: Takeshi Sawamura <sawamura at example.com> さん曰く
Subject: [Mew-Win32 01013] mew-fake-cdpでfilename="日本語.XLS"が落ちない
Message-ID: <19981110120659X.sawamura at example.com>
Date: Tue, 10 Nov 1998 12:06:59 +0900 (JST)

澤村> 初めまして、

初めまして。

澤村> 仕方がないので、読めないファイル名を文脈から適当にASCII化して、
澤村> 例えば、内容に手を加えて送り返す必要が有るときなどは、
澤村> 「勝手にファイル名を変えないでくれ」...T_T
澤村> という理不尽なお叱りに耐えてきました。

涙なしには読めませんでした。;_;

澤村> Content-Type: application/octet-stream; name="出張B.XLS"
澤村> Content-Transfer-Encoding: base64
澤村> Content-Disposition: attachment; filename="出張B.XLS"

生 JIS で filename が書いてあるのですね。私もいつからか読めないなぁ
と思っていたのですが、気にしていませんでした。^^;
どうやら、mew-syntax-get-member() が ESC を落とした値を返すように
なってしまったのですね。(知らなかった)

おもいっきり ad hoc + 無理やりですが、対応すると以下のパッチのよう
になります。

P.S.
昨日の Image/Tiff の話は、1.94b1 からですね。1.93 の人はほったらか
しにしてください。


--- mew-fake-cdp.el.orig	Tue Nov 10 12:52:04 1998
+++ mew-fake-cdp.el	Tue Nov 10 13:23:23 1998
@@ -69,9 +69,9 @@
     ;; 2. use CT: name=
     ;; 3. use CD: (optional)
     (setq filename (or (and cdpl
-			    (mew-syntax-get-member cdpl "filename"))
+			    (mew-fake-cdp-syntax-get-member cdpl "filename"))
 		       (and mew-fake-cdp-use-ct ctl 
-			    (mew-syntax-get-member ctl "name"))
+			    (mew-fake-cdp-syntax-get-member ctl "name"))
 		       (and mew-fake-cdp-use-cd
 			    cd)))
     (if (null filename)
@@ -117,6 +117,17 @@
       )
     ;; return
     syntax))
+
+(defun mew-fake-cdp-syntax-get-member (ctl member)
+  (let ((case-fold-search t)
+	(regex (concat "^" member "=\"?\\([^\"]*\\)\"?$"))
+	ret)
+    (catch 'loop
+      (while ctl
+	(if (string-match regex (car ctl))
+	    (throw 'loop (setq ret (mew-match 1 (car ctl))))
+	(setq ctl (cdr ctl)))))
+    ret))
 
 (provide 'mew-fake-cdp)
 





Mew-win32 メーリングリストの案内