[Mew-dist 10345] Re: IMAP環境で添付ファイルの保存ができない
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
1999年 8月 23日 (月) 15:00:48 JST
白井です(わかった)。
From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [Mew-dist 10341] Re: IMAP環境で添付ファイルの保存ができない
Message-ID: <19990823143627W.kazu at example.com>
Date: Mon, 23 Aug 1999 14:37:20 +0900
kazu> > 具体的には、imap環境で','を実行すると、ヘッダの Content-* と、
kazu> > 各パートのヘッダ Content-* がなくなり、最後の境界文字の後にこ
kazu> > れらなくなったヘッダ情報が出ているという形になっています。
kazu>
kazu> このメールは SPC などで読むとちゃんとマルチパートと認識されるのでしょ
kazu> うか?
kazu>
kazu> つまり、SPC では読めるけど、"y" ではエラーになるのかという質問です。
mew-insert-message で 終ったときの (point) が
insert-file-contents => (point-min)
imcat => (point-max)
なのが原因で、例えば、
mew-summary-display-asis() -> mew-insert-message()
-> mew-decode-rfc822-header() -> mew-decode-narrow-to-header()
と来たときに、mew-decode-narrow-to-header() で (point-max) から
(re-search-forward mew-eoh nil t) するので、おかしくなるようです。
というわけで、お手軽になおすには、パッチの様にすればいいと思いま
す。
# 朝方の coding-system の修正も含みます。これをやらないと、-asis
# したときに message を日本語として表示してくれないようです。
-------------- next part --------------
*** mew-func.el.orig Fri Aug 20 14:15:44 1999
--- mew-func.el Mon Aug 23 14:42:38 1999
***************
*** 249,255 ****
(defmacro mew-insert-message (fld msg rcs size)
(` (if (or (mew-folder-newsp (, fld)) (mew-folder-imapp (, fld)))
(mew-piolet (, rcs) mew-cs-dummy
! (mew-summary-im-start mew-prog-imcat (, fld) nil (, msg) nil))
(mew-frwlet (, rcs) mew-cs-dummy
(insert-file-contents (mew-expand-folder (, fld) (, msg))
nil 0 (, size))))))
--- 249,255 ----
(defmacro mew-insert-message (fld msg rcs size)
(` (if (or (mew-folder-newsp (, fld)) (mew-folder-imapp (, fld)))
(mew-piolet (, rcs) mew-cs-dummy
! (mew-summary-im-start mew-prog-imcat (, fld) nil (, msg) nil nil (, rcs)))
(mew-frwlet (, rcs) mew-cs-dummy
(insert-file-contents (mew-expand-folder (, fld) (, msg))
nil 0 (, size))))))
***************
*** 674,680 ****
(defconst mew-im-boundary-begin "^---BEGIN-IMGET-MESSAGE---\n")
! (defun mew-summary-im-start (imprg src dsts msgs discard &optional arg)
(let ((process-connection-type mew-connection-type2)
(imarg (if arg (cons arg mew-prog-im-arg) mew-prog-im-arg)))
;; dsts can be nil. disappears thanks to append
--- 674,680 ----
(defconst mew-im-boundary-begin "^---BEGIN-IMGET-MESSAGE---\n")
! (defun mew-summary-im-start (imprg src dsts msgs discard &optional arg rcs)
(let ((process-connection-type mew-connection-type2)
(imarg (if arg (cons arg mew-prog-im-arg) mew-prog-im-arg)))
;; dsts can be nil. disappears thanks to append
***************
*** 688,695 ****
imprg (current-buffer) imprg
(format "--src=%s" src)
(append imarg dsts msgs)))
! (mew-set-process-cs mew-summary-buffer-process
! mew-cs-text-for-read mew-cs-dummy)
(if discard
(set-process-filter mew-summary-buffer-process 'mew-summary-im-filter1)
(set-process-filter mew-summary-buffer-process 'mew-summary-im-filter2))
--- 688,698 ----
imprg (current-buffer) imprg
(format "--src=%s" src)
(append imarg dsts msgs)))
! (if rcs
! (mew-set-process-cs mew-summary-buffer-process
! rcs mew-cs-dummy)
! (mew-set-process-cs mew-summary-buffer-process
! mew-cs-text-for-read mew-cs-dummy))
(if discard
(set-process-filter mew-summary-buffer-process 'mew-summary-im-filter1)
(set-process-filter mew-summary-buffer-process 'mew-summary-im-filter2))
***************
*** 701,707 ****
(sit-for 1)
;; accept-process-output or sleep-for is not enough
(discard-input)))
! (if (not discard) (message "Caching a message ... done"))))
;; discard
(defun mew-summary-im-filter1 (process string)
--- 704,711 ----
(sit-for 1)
;; accept-process-output or sleep-for is not enough
(discard-input)))
! (if (not discard) (message "Caching a message ... done"))
! (goto-char (point-min))))
;; discard
(defun mew-summary-im-filter1 (process string)
Mew-dist メーリングリストの案内