[Mew-dist 05950] Re: about Aliases file

Murata Takashi Takashi.Murata at example.com
1998年 8月 18日 (火) 12:23:40 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Subject: [Mew-dist 05945] Re: about Aliases file
Date: Tue, 18 Aug 1998 04:53:26 +0900

> \t も入れて、
> 
>  	(re-search-forward "^[ \t]*\\([^ \t\n:]+\\): ?\\(.*\\)$" nil t)
> 
> でしょうね。

  直前に "[ \t]+" を " " に正規化しているので、 " ?" でいいようです。
さらに、正規化によって "\t" は無くなっていること、 ":" の前にも " " が
入る可能性があることを反映すると、

	(re-search-forward "^ ?\\([^ \n:]+\\) ?: ?\\(.*\\)$" nil t)

とするのがいいと思います。


> >   あと、 SiteConfig と ~/.im/Config の両方が見れるようになれば、
> > さらに嬉しいですが、実現して戴けないでしょうか?
> 
> impath が AliasFile を返す際に SiteConfig は参照しています。imali と同
> じ機能を実現するなら、SiteConfig に関しては今のコードで十分なはずです。

  現状では impath の AliasFile は SiteConfig か ~/.im/Config の二者択一
のようです。 ~/.im/Config に設定されていれば SiteConfig は無視し、設定
されていなければ SiteConfig の設定が有効になります。
  しかし、管理者として考えると、まずユーザ個人の設定が優先で、その中に
無いものについてはサイト全体の設定が有効になる、というのが嬉しいのです。

  どちらにせよ、 impath が対応さえすれば、 mew も(おそらく imali も)
そのまま対応出来ると思われますので、とりあえず mew 側のパッチを添付
しておきます。

# cd しなくても expand-file-name で default directory が指定出来ることを
# 理解しました(^_^;。
┌───────────── 村田 隆 / Takashi.Murata at example.com ┐
└ 日本システム技術(株) 技術部  Tel:03-3503-8736  Fax:03-3580-7806 ┘

*** mew.el.old	Tue Aug 18 10:38:05 1998
--- mew.el	Tue Aug 18 11:33:52 1998
***************
*** 241,259 ****
  (defun mew-alias-make-alist ()
    "Make alias alist with association of (alias . expantion).
  Currently, only \"user: user at example.com\" syntax is supported."
!   (if (and mew-alias-file (file-readable-p mew-alias-file))
        (save-excursion
  	(let ((case-fold-search t)
  	      (alias nil)
  	      (expn nil)
  	      (alist nil)
! 	      (files (list mew-alias-file)))
  	  (mew-set-buffer-tmp)
! 	  (insert-file-contents mew-alias-file)
  	  ;; include alias files
  	  (goto-char (point-min))
  	  (while (re-search-forward "^\<[ \t]*\\([^ \t\n]+\\).*$" nil t)
! 	    (let ((file (expand-file-name (mew-match 1))))
  	      (delete-region (match-beginning 0) (match-end 0))
  	      (if (and (file-readable-p file)
  		       (not (mew-member file files)))
--- 241,262 ----
  (defun mew-alias-make-alist ()
    "Make alias alist with association of (alias . expantion).
  Currently, only \"user: user at example.com\" syntax is supported."
! ;;  (if t (and mew-alias-file (file-readable-p mew-alias-file))
        (save-excursion
  	(let ((case-fold-search t)
  	      (alias nil)
  	      (expn nil)
  	      (alist nil)
! 	      (files (mapcar (lambda (x) (expand-file-name x "~/.im/"))
! 			     (mew-split mew-alias-file ?,))))
  	  (mew-set-buffer-tmp)
! 	  (mapcar (lambda (x) (if (file-readable-p x)
! 				  (insert-file-contents x)))
! 		  files)
  	  ;; include alias files
  	  (goto-char (point-min))
  	  (while (re-search-forward "^\<[ \t]*\\([^ \t\n]+\\).*$" nil t)
! 	    (let ((file (expand-file-name (mew-match 1) "~/.im/")))
  	      (delete-region (match-beginning 0) (match-end 0))
  	      (if (and (file-readable-p file)
  		       (not (mew-member file files)))
***************
*** 280,286 ****
  	    (replace-match " "))
  	  ;;
  	  (goto-char (point-min))
! 	  (while (re-search-forward "^\\([^ \t\n:]+\\): ?\\(.*\\)$" nil t)
  	    (setq alias (mew-match 1)
  		  expn (mew-match 2))
  	    ;; append for first assoc comes first
--- 283,289 ----
  	    (replace-match " "))
  	  ;;
  	  (goto-char (point-min))
! 	  (while (re-search-forward "^ ?\\([^ \n:]+\\) ?: ?\\(.*\\)$" nil t)
  	    (setq alias (mew-match 1)
  		  expn (mew-match 2))
  	    ;; append for first assoc comes first
***************
*** 287,293 ****
  	    (setq alist (cons (cons alias expn) alist)))
  	  ;; load from mew-refile-from-alist
  	  (setq alist (mew-refile-alist-append-alias alist))
! 	  (nreverse alist))))) ;; return value
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
--- 290,296 ----
  	    (setq alist (cons (cons alias expn) alist)))
  	  ;; load from mew-refile-from-alist
  	  (setq alist (mew-refile-alist-append-alias alist))
! 	  (nreverse alist)))) ;; return value
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;



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