[Mew-dist 07882] Change From: according to Config

Shun-ichi TAHARA ( 田原 俊一 ) jado at example.com
1999年 3月 4日 (木) 14:39:37 JST


ども。
ひとつ提案があります。

Mewでは、mew-draft-make-messageか、mew-draft-header(Draft作成時)で、
From:などの値からConfig:を推測する機能がありますよね。

また、最近、inc時にConfigに応じてinbox folderを変更してくれる機能がつい
たようです(自分ではまだ試していませんが)。

同様に、Draftを作成する際に挿入するFrom:の初期値を、Configに応じて変更す
る機能があったら便利だなと思うわけです。

今のところ、mew-summary-config-imgetを次パートに添付したコードで置き換え
ています。

動作内容は、

mew-config-guess-alistからFrom:のルールを取り出して、mew-from-listの各要
素からマッチするものを探し、Configが一致していたらmew-fromに設定する。
適当なfromが見つからなかったら、(mew-from-listがnon-nilの時のみ)
(car mew-from-list)をmew-fromに設定する。

といったものです。

# 1時間で作ったものなので、まだまだ改善の余地はありまくりですが :-)

いかがなものでしょう。

場合によっては、To:によってもFrom:を変えたいという需要もあるかもしれない
ですが、今の方法ではちょっと無理ですね。
なので、mew-config-guess-alistを使う方法は、デザイン上美しくないかもしれ
ないので、Mew本体にマージするにはもうちょっと練り込まないといけないだろ
うとは思いますが、contribに突っ込むくらいでしたらバチは当たらないと思っ
ています。
_____________________________
田原 俊一  jado at example.com, shunichi_tahara at example.com
株式会社ゼンリン マルチメディアシステム部 イントラネット課
                     http://www.csce.kyushu-u.ac.jp/~jado/
  PGP FP: 16 9E 70 3B 05 86 5D 08  B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
-------------- next part --------------
;;; mew-config-from.el	-*-Emacs-Lisp-*-
;;;
;;; Commentary:
;;; Change mew-from by mew-summary-config-imget,
;;; according to mew-config-guess-alist.
;;;
;;; Time-stamp: <99/03/04 09:50:04 jado at example.com>

;;; How to use:
;;; Only require it :-). For example:
;;;   (add-hook 'mew-init-hook '(lambda () (require 'mew-config-from)))

;;; Code:

(provide 'mew-config-from)
(require 'mew)

(defun mew-summary-config-imget ()
  (interactive)
  (setq mew-config-imget (mew-input-config mew-config-imget))
  (let ((from
	 (catch 'from
	   (let ((alist (cdr (assoc mew-from: mew-config-guess-alist))))
	     (mapcar
	      (lambda (from)
		(if (equal
		     mew-config-imget
		     (catch 'config
		       (mapcar
			(lambda (guess)
			  (if (string-match (car guess) from)
			      (throw 'config (cdr guess)))
			  )
			alist)
		       (throw 'config nil)
		       ))
		    (throw 'from from))
		)
	      mew-from-list)
	     (throw 'from nil)
	     )))
	)
    (cond
     (from
      (setq mew-from from))
     (mew-from-list
      (setq mew-from (car mew-from-list)))
     )
    )
  )


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