[Mew-dist 16543] Re: i in summary buffer

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2001年 2月 20日 (火) 16:05:19 JST


From: Tak Ota <Takaaki.Ota at example.com> さん曰く
Subject: [Mew-dist 16542] Re: i in summary buffer
Message-ID: <20010219.225355.107709086.Takaaki.Ota at example.com>
Date: Tue, 20 Feb 2001 15:54:17 +0900

ota> > i した後に C-c C-b で戻るのはどうでしょうか?
ota> 
ota> うっ、大変失礼しました。存在を知りませんでした。doc string を見ると

ota> # でもそれでも i で新着メッセージがなかったら自動的に C-c C-b して欲
ota> # しい。

mew-pop-sentinel-hook が run-hook したときに、cnt という変数に受
け取ったメールの個数が入っているので、そいつを使えばいろいろ出来
ます。例えば、sentinel でガバっと動いてしまうので、おしゃれでは
ないのですが、

(add-hook 'mew-pop-sentinel-hook 'mew-after-inc-cook)
(defvar mew-mark-new-message-function 'mew-summary-review-one)

(defun mew-after-inc-cook ()
  "Inc の後処理などしてみる。"
  (let ((obuf (marker-buffer mew-summary-inbox-position))
	(opos (marker-position mew-summary-inbox-position))
	(inbox (mew-inbox-folder mew-config-input))
	threadp ithreadp inboxp onum)
    (when (and obuf (get-buffer obuf))
      (save-excursion
	(set-buffer obuf)
	(if (and (mew-thread-p) (setq threadp t)
		 (string= (concat "+" inbox) (buffer-name obuf)))
	    (setq ithreadp t onum (mew-summary-message-number))
	  (if (string= inbox (buffer-name obuf))
	      (setq inboxp))))
      (cond
       (ithreadp
        ;; ++inbox にいたら、受信したメールに mark を付ける。
	(when (> cnt 0)
	  (save-excursion
	    (goto-char (point-max))
	    (forward-line -1)
	    (mew-mark-put-mark-loop mew-mark-new-message-function (- cnt) nil)))
	(mew-summary-make-thread)
	(mew-summary-jump-message onum))
       ((and (= cnt 0) inboxp)
        ;; inc の前の場所に戻る。どれが良いかな。
	;; ((and (= cnt 0) (null threadp))
	;; ((= cnt 0)
	(mew-summary-exchange-point))))))

な感じ。ちょっと、うるさいから普段は使っていません。

P.S.
## あそこまで、いろいろ書き換えちゃうとは。絶句。

-- 
白井秀行 (mailto:shirai at example.com)



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