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: <20001226222004Z.furukawa@xxxxxxxxxxxx>
Date: Tue, 26 Dec 2000 22:20:04 +0900
古川> # 今朝、浜松市北部では雪がちらついていました
## 今日もなかなか寒いですね。ぶるぶる。
shirai> おまけ。
shirai> ○ Pack/Sort の後、勝手に fixer を起動します。
shirai> ○ "zf" で fixer を起動します。
古川> これは本当に便利です。
古川> # というか、これがなければ、fixer は「使えるツール」ではない、と言って
古川> # もいいくらい
おほめ下さってありがとうございます。てれるぜ。
しかし、実は、scan が動いていて pack/sort が出来ないときでも
fixer を動かしてしまっていたので付属のものに変えてくださいませ。
# before と after に advice をかますんだったら、function を別の
# function でくるんじゃった方がいいかもしれないのですが。。。
furukawa> 該当するファイルが見つからなかったときには、NMZ.t に -1 を入れるように
furukawa> しました。これにより、削除されたエントリとして扱われるはずです。
古川> これで、実際に削除が発生した場合に、その後の mknmz のステータスがおか
古川> しくなるケースがあるようです。
確かに、たまになんか変だなというときがありました。
古川> 当面は、refile したら、mknmz してから fixer を起動するようにした方が安
古川> 全ですので、そのようにお使いください。
了解です。
--
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)
(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)))
(defvar mew-nmz-allow-fixer nil)
(make-variable-buffer-local 'mew-nmz-allow-fixer)
(defadvice mew-summary-sort (before allow-fixer activate)
(setq mew-nmz-allow-fixer (not mew-summary-buffer-process)))
(defadvice mew-summary-sort (after exec-fixer activate)
(mew-nmz-exec-fixer))
(defadvice mew-summary-pack (before allow-fixer activate)
(setq mew-nmz-allow-fixer (not mew-summary-buffer-process)))
(defadvice mew-summary-pack (after exec-fixer activate)
(mew-nmz-exec-fixer))
(defun mew-nmz-exec-fixer ()
(interactive)
(mew-summary-only
(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 (or interactive-p mew-nmz-allow-fixer))
()
(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.i" 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 args (list fld nmzdir)))
(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))))))))