Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mew-summary-* 対応



From: Rei FURUKAWA <furukawa@xxxxxxxxxxxx> さん曰く
Subject: [namazu-devel-ja] Re: mew-summary-* 	対応
Message-ID: <20001218125132O.furukawa@xxxxxxxxxxxx>
Date: Mon, 18 Dec 2000 12:51:32 +0900

shirai> # sort/pack をするとしても +inbox だから、最大 200〜400通。
shirai> # そのときは、即座に Index を作り直してしまいます。

古川> わたしも、基本的にはそうなのですが、大きなインデックスを作ったあとで、
古川> 順番の間違いを見つけたときに、少し居心地の悪いような気持ちになります。

とっても居心地が悪いです。(^^)

shirai> # nmz-mew-summary-fixer.pl を動かすと、NMZ.r.nnnn.tmp,
shirai> # NMZ.t.nnnn.tmp, NMZ.field.hoge.nnnn(.i).tmp ができて終了、
shirai> # nnnn.tmp は手動で mv してね、というのでいいのですか?

古川> # win では以前にも同じようなことがあったような…
古川> …そうか、close していないからですね。次で直します。

Solaris 7 上では確かに問題なく動きました。感謝です。

shirai> の形式になっています。Win32 で uri に使う絶対パスは
shirai> /c|/home/shirai/Mail/inbox/12
shirai> と書くようになっていたりします。
shirai> (mew-nmz 的には、前者の方が処理が速かったりする (^^))

古川> では、オプションでできるようにします。

よろしくお願いします。

shirai> 古川>     同じ Message-Id を持つメールが複数あったらどうするか
shirai> これも、
shirai> 古川> ヘッダの Message-Id と Date それにファイルのサイズが一致するもの
shirai> で良いのでは無いでしょうか。

古川> 逆に、Message-Id が一致するのに、他の要素が一致しないがために、対応づけ
古川> されない可能性 (具体的には私には思いつかないんですけれども) があるのかど
古川> うか、いまひとつ自信がなくて。

う〜〜ん、私がやっちゃうとすると、そのメールを手動で開いて、ちょっ
と edit してしまう。というのがあります。そうすると、サイズが変わっ
ちゃいます。

だけど、次に mknmz が動いたときにファイルが新しくなったよ、とい
うことで index が更新されるので気にしないでいいと思います。

または、ちょっと大変かもしれませんが、その Message-Id を含むファ
イルが一つしかないときは、Date やサイズは見ない、とか。

shirai>  pack/sort/exec した後に command 一発動かせば、その folder の
shirai>  Index が最新に保たれる、というのはとても魅力です。

古川> そこまで思い切れなかった、というだけでして、そういう処理を入れることは
古川> 可能です。

こちらは是非是非。(_ _)

shirai> 2. mew-nmz で『1 folder = 1 index』という形式だけでなく
shirai> 『~/Mail 以下 1 index』形式に対応してほしい、という要望を以前か
shirai> らたまに受けることがあります。これについてなにかご意見というあり
shirai> ますでしょうか?

古川> これに似たことはできて欲しい、という気持ちはあります。

古川> # 誰から来たメールだか思いだせないと、+from 以下全部試さなければいけな
古川> # くなるので。

たしかにそうですね。

もし、現在の index 形式を変えるとしても、変数で
『こいつは、1folder=1index』『ここは、+from 以下で 1index』
とか指定できるようにしてみます。

# いつのことになるかはわかりません ^^;;;

古川> 例えば、+from に移動して。'z N' とすると、+from 以下のインデックスをま
古川> とめて検索対象とする、とか。

これって、mew-nmz-virtual() と mew-nmz-namazu() 内の

(mew-input-folders (buffer-name))
を
(mew-input-folders (concat (buffer-name) "*"))
に置き換えれば良いですか? 私もこっちのほうが気に入ってしまいま
した。

# もしかして、"zn" 子供検索のことですか?


おまけ。

○ Pack/Sort の後、勝手に fixer を起動します。
○ "zf" で fixer を起動します。

Mew 1.95b90 でしか動作確認をしていませんが、古川さんのお使いの
Mew 1.94.2 でも(おそらく ^^;)動くと思います。

  (defvar mew-nmz-prog-fixer "nmz-mew-summary-fixer.pl")
  (defvar mew-nmz-prog-fixer-args '())

  (add-hook 'mew-summary-mode-hook
	    (lambda ()
	      (define-key mew-summary-mode-map "zf" 'mew-nmz-exec-fixer)))

  (defun mew-nmz-exec-fixer ()
    (interactive)
    (let* ((interactive-p (interactive-p))
	   (fld (if interactive-p
		    (mew-input-folder (mew-summary-folder-name))
		  (mew-summary-folder-name)))
	   (fixer
	    (if (fboundp 'mew-which-exec)
		(mew-which-exec mew-nmz-prog-fixer)
	      (mew-which mew-nmz-prog-fixer exec-path)))
	   (args mew-nmz-prog-fixer-args)
	   nmzdir)
      (if (not (and fld fixer))
	  (and interactive-p
	       (message "Can not exec %s." mew-nmz-prog-fixer))
	(setq nmzdir (mew-nmz-expand-folder fld))
	(setq fld (mew-expand-folder fld))
	(if (and
	     (file-exists-p nmzdir)
	     (file-directory-p nmzdir)
	     (file-exists-p (expand-file-name "NMZ.field.message-id" nmzdir))
	     (file-exists-p (expand-file-name "NMZ.field.size" nmzdir))
	     (file-exists-p (expand-file-name "NMZ.field.date" nmzdir))
	     (not (file-name-all-completions "NMZ.lock" nmzdir)))
	    (progn
	      (message "Exec %s (%s) ..." mew-nmz-prog-fixer nmzdir)
	      (apply (function call-process)
		     fixer nil nil nil
		     (append (list fld nmzdir) args))
	      (message "Exec %s (%s) ... done." mew-nmz-prog-fixer nmzdir))
	  (and interactive-p
	       (message "Can not exec %s at %s." mew-nmz-prog-fixer nmzdir))))))

  (defadvice mew-summary-sort (after exec-fixer activate)
    (mew-nmz-exec-fixer))

  (defadvice mew-summary-pack (after exec-fixer activate)
    (mew-nmz-exec-fixer))

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)