[Mew-dist 427] [Summary] Re: switch From: from To:

Y.Yoshinaga yoshi at example.com
1997年 1月 16日 (木) 15:43:27 JST


吉永@日立ソフトです。
Mew 1.06 でTo:によるFrom:の選択ができるようになりました。(^^)

》From: "樋口 雅文[Masafumi Higuchi]" <higuchi at example.com>
》Subject: Re: [Mew-dist 426] Re: switch From: from To:
 > 今調べてみると、mew-header-get-value (in 1.54) でも同じことができそう
 > です。1.06だとmew-field-get-valueという名前になるのかな?

わざわざありがとうございます。_o_
おかげで Mew 1.06 でも使えるようになりました。

メールのやりとりで情報が散らばってしまったので
mew-select-from を使うための情報を簡単にまとめておきます。
(mew-select-fromを作ってくださった樋口さんに改めて感謝します)

● ~/.emacs に以下の記述を加える。
;; C-cC-m時にヘッダの値によって選択したFrom:を挿入する。
;; 既にFrom:がある場合は挿入されない。
;; by M. Higuchi
(defun mew-select-from ()
  (catch 'tag
    (let ((r mew-from-variation-alist) cell b f)
      (while r
	(setq cell (car r))
	(setq b (car cell))
	(if (setq f (mew-header-get-value (car b)))
;Mew 1.06では mew-header-get-value を mew-field-get-value に書き換える
;	(if (setq f (mew-field-get-value (car b)))
	    (cond ((listp (cdr b))
		   (let ((r (cdr b)))
		     (while r
		       (if (string-match (car r) f)
			   (throw 'tag (cdr cell))
			 )
		       (setq r (cdr r))
		       ))
		   )
		  ((stringp (cdr b))
		   (if (string-match (cdr b) f)
		       (throw 'tag (cdr cell))
		     ))
		  ))
	(setq r (cdr r))
	))
    mew-from))

;; From:を決定するルールを書く。
;; specificなものを先に書くこと。
(setq mew-from-variation-alist
      '(
	(("To" . ("\\.com" "\\.net")) . "Masafumi Higuchi <higuchi>")
	(("To" . ("\\.jp")) . "樋口 雅文[Masafumi Higuchi] <higuchi at example.com>")
	(("To" . (".")) . "Masafumi Higuchi <higuchi at example.com>")
	))

● mew-draft-make-mime を次のように書き換える。
・Mew 1.5x の場合 (mew-encode.el)
(defun mew-draft-make-mime ()
  (interactive)
  (if (mew-header-get-value mew-ct:)
      (progn
	(ding)
	(message "%s already exists!" mew-ct:)
	)
    (if (mew-attach-p)
	(mew-draft-make-multi)
      (mew-draft-make-single))
    (goto-char (point-min))
    (sit-for 0)
    (re-search-forward "^-*$")
    (beginning-of-line)
    (setq mew-draft-buffer-header (point-marker)) ;; just in case
    ;; by M. Higuchi
    (if (null (mew-header-get-value "From:"))
	(and mew-from-variation-alist (mew-header-insert-here "From:" (mew-select-from)))
      (ding)
      (message "From: already exists!")
      )
    ))

・Mew 1.06 の場合 (mew.el)
(defun mew-draft-make-mime ()
  (interactive)
  (if (mew-field-get-value "Content-Type:")
      (progn
	(ding)
	(message "Content-Type: already exists!")
	)
    (if (mew-multi-p)
	(mew-draft-make-multi)
      (mew-draft-make-single))
    ;; by M. Higuchi
    (if (null (mew-field-get-value "From:"))
	(and mew-from-variation-alist
             (mew-field-insert-here "From:" (mew-select-from)))
      (ding)
      (message "From: already exists!")
      )
    ))

● ~/.emacs などで mew-from を次のように設定すると便利
(setq mew-from nil) ; for mew-select-from
-- 
吉永 孝明 (Y.Yoshinaga) <e-mail: yoshi at example.com>



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