[Mew-Win32 03022] Re: [Mew-dist 16044] Re: How to display "Mail(n)" on title var.

Tak Ota Takaaki.Ota at example.com
2001年 1月 26日 (金) 03:51:17 JST


In the message "[Mew-dist 16044] Re: [Mew-Win32 02995] How to display "Mail(n)" on title var."
on Fri, 26 Jan 2001 00:22:12 +0900
Kazu Yamamoto (山本和彦) <kazu at example.com> wrote:

> From: Tak Ota <Takaaki.Ota at example.com>
> Subject: [Mew-dist 15932] Re: [Mew-Win32 02995] How to display "Mail(n)" on title var.
> 
> > これに限らずユーザー毎に様々な要望が出てくると思います。現在の (beep) 
> > の mew-use-biff-bell の様に特定フラグで既製動作を制御するよりも一発
> > hook (この場合 n すなわち (length msgs) を渡すと便利なので hook より
> > も hooks かも)を用意して呼んではどうでしょうか?そのためには現在の 
> > mew-pop-command-umsg 内での biff 処理の場所は hooks から返るタイミング
> > に依存しないように最後に移動したほうがよいように思われます。
> 
> Biff は sentinel に移しました。どこに hook を入れればよいか、パッチを
> 下さい。
> 
> --かず

了解しました。こんなもんでどうでしょうか。

--- /pub/mew/mew-1.95b100/mew-vars.el	Tue Jan 23 03:01:13 2001
+++ mew-vars.el	Thu Jan 25 09:53:06 2001
@@ -275,6 +275,11 @@
   :group 'mew-addrbook
   :type 'hook)
 
+(defcustom mew-biff-notifier-hook '(mew-biff-default-notifier)
+  "*Hook called when biff information is available."
+  :group 'mew-env
+  :type 'hook)
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
 ;;; Mail Addresses

--- /pub/mew/mew-1.95b100/mew-pop.el	Thu Jan 25 04:44:50 2001
+++ mew-pop.el	Thu Jan 25 10:40:00 2001
@@ -137,6 +137,7 @@
 ;;;
 
 (defvar mew-biff-string nil)
+(defvar mew-biff-number-of-messages 0)
 (defvar mew-pop-biff-timer-id nil)
 
 (defun mew-pop-biff (&optional arg) ;; for XEmacs
@@ -169,6 +170,15 @@
   (if mew-pop-biff-timer-id (mew-timer-reset mew-pop-biff-timer-id))
   (setq mew-pop-biff-timer-id nil))
 
+(defun mew-biff-default-notifier ()
+  "Called via `mew-biff-notifier-hook'"
+  (if (zerop mew-biff-number-of-messages)
+      (setq mew-biff-string nil)
+    (and mew-use-biff-bell
+	 (null mew-biff-string)
+	 (ding))
+    (setq mew-biff-string (format "Mail(%d)" mew-biff-number-of-messages))))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
 ;;; Opening POP
@@ -314,17 +324,16 @@
 	 (cnt (mew-pop-get-cnt pnm))
 	 (inbox (mew-pop-get-inbox pnm))
 	 (directive (mew-pop-get-directive pnm))
-	 (n (length (mew-pop-get-messages pnm)))
 	 savep)
     (mew-pop-debug "<SENTINEL>" event)
     (mew-filter
-     (if (eq directive 'biff)
-	 (if (= n 0)
-	     (setq mew-biff-string nil)
-	   (if (and mew-use-biff-bell (eq mew-biff-string nil))
-	       (beep))
-	   (setq mew-biff-string (format "Mail(%d)" n)))
-       (setq mew-biff-string nil)) ;; received
+     (let ((prev-messages mew-biff-number-of-messages))
+       (setq mew-biff-number-of-messages
+	     (if (eq directive 'biff)
+		 (length (mew-pop-get-messages pnm))
+	       0))
+       (if (or (< 0 prev-messages) (< 0 mew-biff-number-of-messages))
+	   (run-hooks 'mew-biff-notifier-hook)))
      (cond
       ((eq cnt nil)
        )




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