[Mew-dist 06445] Re: JIS の Subject への返信
SAKAI Kiyotaka
ksakai at example.com
1998年 9月 18日 (金) 10:21:58 JST
>> In article <19980917112946C.sugimori at example.com>, SUGIMORI (杉森 隆行) <sugimori at example.com> writes:
> Subject: Re: $ B # J # I # S ( B
> となってしまい、ESCがなくなってしまうようです。
仕様変更です。ESC は送信するのに不正なコードであるとして、削ってから送
信するようになりました。
ちなみに、僕はこういうプログラムを書いて、message buffer を convert し
てから reply するようにしています。
・header を undecided でコンバート
・body も undecided でコンバート
・"" で囲まれた MIME encode 文字列も強制デコード
を行ないます。Emacs-20.3 用です。
--
酒井 清隆 (E-mail: ksakai at example.com)
(add-hook
'mew-summary-mode-hook
'(lambda ()
(define-key mew-summary-mode-map "\C-cl" 'mew-summary-convert-undecided)))
(defun mew-summary-convert-undecided ()
(interactive)
(save-excursion
(set-buffer (mew-buffer-message))
(let* ((win (get-buffer-window (current-buffer)))
(start (window-start win))
(pos (if (mew-header-p) (mew-header-end) (point-max)))
(coding-category-list
(cons 'coding-category-emacs-mule coding-category-list))
(buffer-read-only nil))
(set-coding-priority-internal)
(widen)
(mew-cs-decode-region (point-min) pos 'undecided)
(mew-cs-decode-region pos (point-max) 'undecided)
(goto-char (point-min))
(while (re-search-forward mew-header-decode-regex pos t)
(let* ((s (match-beginning 0)) (e (match-end 0))
(str (mew-decode-string (buffer-substring s e))))
(delete-region s e)
(insert str)))
(set-window-start win start)
(set-buffer-modified-p nil))
(set-coding-priority-internal)))
(defun mew-decode-string (str)
(let (c1 c2 c3 c4 charset b-or-q cs-str)
(setq c1 (string-match "=\\?" str))
(if c1 (setq c2 (string-match "\\?" str (+ c1 2))))
(if c2 (setq c3 (string-match "\\?" str (+ c2 1))))
(if c3 (setq c4 (string-match "\\?=" str (+ c3 1))))
(if c4
(progn
(setq charset (substring str (+ c1 2) c2))
(setq b-or-q (substring str (1+ c2) c3))
(setq cs-str (substring str (1+ c3) c4))
(concat (substring str 0 c1)
(mew-header-decode charset b-or-q cs-str)
(mew-decode-string (substring str (+ c4 2)))))
str)))
Mew-dist メーリングリストの案内