[Mew-dist 04167] Filename from CT:
Shun-ichi GOTO
gotoh at example.com
1998年 3月 11日 (水) 18:58:44 JST
後藤@太陽計測です
Mewはいつの頃からか
>* Ad-hoc Content-Disposition: support.
ということで、Content-Disposition:の filename=xxx より、
ファイル名の取得が行えるようになりましたが、残念ながら
CT:のname=は見てくれません。
うちの会社のメイン環境はNotesなので、CT:のname=のみの添付ファイル
が横行している為、このままではとても不便なため、ちょっと修正して
みました。
ついでですが、漢字のファイル名も横行しているため、
filename="=?iso-2022-jp?B?GyRCNEE7ehsoQg==?=.txt"といった
(正式でないエンコードでの)漢字ファイル名もデコードする
ようにしてみました。
# mew-header-decode-addressを使っています
あと、添付ファイルの名前が*Mew Message*に出るように、微々たる修正もね。
というわけで、添付ファイルをセーブするとき、自分としてはちょっと
シアワセになれたのでご報告。
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
-------------- next part --------------
--- mew-1.93b24.orig/mew-decode.el Tue Feb 24 15:04:56 1998
+++ mew-1.93b24/mew-decode.el Wed Mar 11 06:40:36 1998
@@ -152,6 +152,11 @@
(setq value (mew-buffer-substring val (point)))
(cond
((equal attr 'analyze)
+ (save-restriction
+ (narrow-to-region val (point))
+ (mew-header-decode-address)
+ (goto-char (point-max)))
+ (setq value (mew-buffer-substring val (point)))
(setq value (mew-header-syntax-list value))) ;; list
((equal attr 'extract)
(setq value (mew-header-syntax value)))
--- mew-1.93b24.orig/mew-summary.el Mon Mar 10 21:38:58 1997
+++ mew-1.93b24/mew-summary.el Wed Mar 11 09:01:35 1998
@@ -846,7 +846,9 @@
"# # # ####### ##### # # # # # #\n"
"\n\n")
(insert (format "Content-Type:\t%s\n" ct))
- (insert (format "Size:\t\t%dbytes\n" (- end begin)))
+ (insert (format "Size:\t\t%d bytes\n" (- end begin)))
+ (if (setq file (mew-syntax-get-filename syntax))
+ (insert (format "Filename:\t%s\n" file)))
(insert (format "Program:\t%s\n" program))
(if (not execute)
(progn
@@ -1682,8 +1684,9 @@
file)
(if (not (or msg part))
(message "No message or part here")
- (if (and (car cdpl) (equal (downcase (car cdpl)) "attachment"))
- (setq file (mew-syntax-get-member cdpl "filename")))
+;;; (if (and (car cdpl) (equal (downcase (car cdpl)) "attachment"))
+;;; (setq file (mew-syntax-get-member cdpl "filename")))
+ (setq file (mew-syntax-get-filename syntax))
(setq file (mew-input-file-name nil file))
(if (not (file-exists-p file))
(setq doit t)
--- mew-1.93b24.orig/mew-syntax.el Mon Mar 10 20:42:48 1997
+++ mew-1.93b24/mew-syntax.el Wed Mar 11 09:04:03 1998
@@ -577,7 +577,7 @@
(cte (mew-syntax-get-cte syntax)) ;; cte may be nil
(cd (mew-syntax-get-cd syntax))
(cdpl (mew-syntax-get-cdp syntax))
- (filename (mew-syntax-get-member cdpl "filename"))
+ (filename (mew-syntax-get-filename syntax))
(decrypters (mew-syntax-get-decrypters syntax))
(cd-or-dec cd)
(privacy (mew-syntax-get-privacy syntax))
@@ -705,6 +705,23 @@
(defun mew-syntax-get-icon-spec ()
(nreverse mew-syntax-icon-spec))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Get filename
+;;
+(defun mew-syntax-get-filename (syntax)
+ "Get filename of attachment from CDP: or CT:"
+ (let ((cdpl (if syntax (mew-syntax-get-cdp syntax)))
+ (ctl (if syntax (mew-syntax-get-ct syntax)))
+ file)
+ (or (and (car cdpl)
+ (equal (downcase (car cdpl)) "attachment")
+ (mew-syntax-get-member cdpl "filename"))
+ (and (car ctl)
+ (mew-syntax-get-member ctl "name"))
+ )))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; decode privacy
Mew-dist メーリングリストの案内