[Mew-dist 16897] Image/*とMessage/*のContent-Dispositionはinlineにしたい

Ryutaroh Matsumoto ryutaroh at example.com
2001年 3月 20日 (火) 21:34:09 JST


Content-Dispositionヘッダーの値の意味は

inline     自動的に表示
attachment ユーザーが要求するまで表示しない
無し       メールリーダーのデフォルトの取り扱い

であるとRFC 2183に書いてありました。そこでContent-TypeがImage/*と
Message/*の場合はContent-Dispositionをinlineにしたいと思いました。

Content-Dispositionがinlineかattachmentかは変数
mew-content-disposition-inline-listで制御されますが、この変数の中身は
正規表現でなく文字列として扱われるので、正規表現として扱われるようにす
るパッチを作ってみました。

またこの変更だけだと
(setq mew-content-disposition-inline-list '("Text/.*" "Image/.*"
					    "Message/.*"))
と書いてもmew-summary-forwardでメールを転送するときに転送されるメールに
Content-Dispositionヘッダーが付かないのでそれを付けるような変更も以下
のパッチに含めています。

上に述べた変更だけだとMessage/Rfc822のパートにContent-Dispositionを付
けるとContent-Disposition: inline; filename=1823 のようにあまり意味の
無いファイル名が付きます。このようなファイル名は付けないほうがよさそう
なのでmew-content-disposition-no-filename-list という変数を新設し、そ
こに含まれるContent-Typeにはfilenameパラメータを含めないようにしていま
す。

無修正のMew 1.95b115へのパッチです。

松本 隆太郎
-------------- next part --------------
diff -ru mew-1.95b115/mew-syntax.el mew-1.95b115-cdp/mew-syntax.el
--- mew-1.95b115/mew-syntax.el	Sun Mar  4 13:30:37 2001
+++ mew-1.95b115-cdp/mew-syntax.el	Tue Mar 20 21:22:04 2001
@@ -150,9 +150,12 @@
 (defun mew-syntax-cdp-format (file ct)
   (when file
     (setq file (mew-header-sanity-check-string file))
-    (if (mew-member-case-equal ct mew-content-disposition-inline-list)
-	(list "inline" (list "filename" file))
-      (list "attachment" (list "filename" file)))))
+    (cons
+     (if (mew-member-match ct mew-content-disposition-inline-list t)
+	 "inline"
+       "attachment")
+     (if (not (mew-member-match ct mew-content-disposition-no-filename-list t))
+	 (list (list "filename" file))))))
 
 ;; Encryption
 
@@ -379,7 +382,7 @@
   (let ((i 1) (ret))
     (while (<= i n)
       (setq ret (vconcat ret (list (mew-encode-syntax-single
-				    (int-to-string i)))))
+				    (int-to-string i) nil nil nil nil t))))
       (setq i (1+ i)))
     (vconcat (mew-encode-syntax-multi dir mew-type-mlm)
 	     (list (mew-encode-syntax-single mew-draft-coverpage 
diff -ru mew-1.95b115/mew-vars.el mew-1.95b115-cdp/mew-vars.el
--- mew-1.95b115/mew-vars.el	Tue Mar 20 05:55:38 2001
+++ mew-1.95b115-cdp/mew-vars.el	Tue Mar 20 21:17:54 2001
@@ -1326,10 +1326,21 @@
   :group 'mew-draft
   :type 'boolean)
 
-(defvar mew-content-disposition-inline-list '("Text/Plain")
-  "*A list of Content-Type:. If Content-Type: of an attachment matches
-this, \"inline\" is selected for the value of Content-Disposition:.
-Otherwise \"attachment\" is chosen.")
+(defcustom mew-content-disposition-inline-list '("Text/Plain")
+  "*A list of regular expressions for Content-Type:. If Content-Type:
+of an attachment matches this, \"inline\" is selected for the value of
+Content-Disposition:.  Otherwise \"attachment\" is chosen."
+  :group 'mew-draft
+  :type '(repeat regexp))
+
+(defcustom mew-content-disposition-no-filename-list
+  '("Message/.*" "Multipart/.*")
+  "*A list of regular expressions for Content-Type:. If Content-Type:
+of an attachment matches this, the \"filename\" parameter is not
+included in Content-Disposition:."
+  :group 'mew-draft
+  :type '(repeat regexp))
+
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;


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