[Mew-dist 09582] address learning

SAKAI Kiyotaka ksakai at example.com
1999年 7月 9日 (金) 17:31:33 JST


最近の Mew にはアドレスを自動学習する機能が付いていますが、すでに自動
学習した同名のエントリーが存在する場合は古いエントリーはそのまま残って
しまいます。

これは不便なので、このような場合には古いエントリーを消して、新しいエン
トリーで上書きする仕様にしてもらえないでしょうか?

何故、このような仕様の方が嬉しいかと言うと、例えば

  Majordomo at example.com

という宛先に help を送って、その後、help を読みながら過去のメールを何
通か受信しようとした場合、最初のメールの宛先は cut & paste で入れると
しても、その後は Majo[TAB][TAB] ぐらいで宛先の展開が完了するはずが、古
いエントリーがあると別のアドレスに展開されてしまって悲しい思いをするか
らです。

ただし、AddrBook, Aliases に書かれているアドレスならば、今まで通り学習
よりもそちらを優先して欲しいので、以下のパッチのような感じでしょうか。
-- 
酒井 清隆 (E-mail: ksakai at example.com)

-------------- next part --------------
Index: mew-addrbook.el
===================================================================
RCS file: /home/ksakai/cvsroot/mew-1.94b37/mew-addrbook.el,v
retrieving revision 1.1.1.1
diff -u -c -r1.1.1.1 mew-addrbook.el
*** mew-addrbook.el	1999/07/09 07:14:49	1.1.1.1
--- mew-addrbook.el	1999/07/09 08:19:06
***************
*** 107,121 ****
  (defun mew-addrbook-alias-add (addr)
    (if (and (stringp addr) (string-match "@" addr))
        (let* ((user (mew-addrstr-extract-user addr))
! 	     (match (assoc user mew-addrbook-alist)))
! 	(if match
! 	    (if (equal addr (nth 1 match))
! 		;; move the entry to the top
! 		(setq mew-alias-auto-alist
! 		      (cons match (delete match mew-alias-auto-alist))))
! 	  (setq mew-addrbook-alist (cons (list user addr) mew-addrbook-alist))
! 	  (setq mew-alias-auto-alist
! 		(cons (list user addr) mew-alias-auto-alist))))))
  
  (defun mew-addrbook-alias-delete (addr)
    (if (and (stringp addr) (string-match "@" addr))
--- 107,132 ----
  (defun mew-addrbook-alias-add (addr)
    (if (and (stringp addr) (string-match "@" addr))
        (let* ((user (mew-addrstr-extract-user addr))
! 	     (match1 (assoc user mew-alias-auto-alist))
! 	     (match2 (assoc user mew-addrbook-alist)))
! 	(cond (match1
! 	       ;; replace by new alist
! 	       (setq mew-addrbook-alist
! 		     (cons (list user addr)
! 			   (delete match1 mew-addrbook-alist)))
! 	       (setq mew-alias-auto-alist
! 		     (cons (list user addr)
! 			   (delete match1 mew-alias-auto-alist))))
! 	      (match2
! 	       (if (equal addr (nth 1 match2))
! 		   ;; move the entry to the top
! 		   (setq mew-alias-auto-alist
! 			 (cons match (delete match2 mew-alias-auto-alist)))))
! 	      (t
! 	       (setq mew-addrbook-alist
! 		     (cons (list user addr) mew-addrbook-alist))
! 	       (setq mew-alias-auto-alist
! 		     (cons (list user addr) mew-alias-auto-alist)))))))
  
  (defun mew-addrbook-alias-delete (addr)
    (if (and (stringp addr) (string-match "@" addr))


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