]> code.delx.au - gnu-emacs/blobdiff - lisp/time.el
(menu-bar-tools-menu): Call read-mail-command
[gnu-emacs] / lisp / time.el
index b9d134e0fbcff2dc79893e3eaf8dd6e1a6da9ad8..756aa6ad8b935692adabb5d9128e6f7d007e927b 100644 (file)
@@ -1,4 +1,4 @@
-;;; time.el --- display time, load and mail indicator in mode line of Emacs.
+;;; time.el --- display time, load and mail indicator in mode line of Emacs.\r
 
 ;; Copyright (C) 1985, 86, 87, 93, 94, 96, 2000 Free Software Foundation, Inc.
 
@@ -57,6 +57,13 @@ default, which is system-dependent, and is the same as used by Rmail."
                 (file :format "%v"))
   :group 'display-time)
 
+(defcustom display-time-mail-function nil
+  "*Function to call, for indicating existence of new mail.
+nil means use the default method of checking `display-time-mail-file'."
+  :type '(choice (const :tag "Default" nil)
+                (function))
+  :group 'display-time)
+
 ;;;###autoload
 (defcustom display-time-day-and-date nil "\
 *Non-nil means \\[display-time] should display day and date as well as time."
@@ -143,7 +150,7 @@ display."
   :type 'face)
 
 (defvar display-time-mail-icon
-  (find-image '((:type xbm :file "letter.xbm" :ascent 100)))
+  (find-image '((:type xbm :file "letter.xbm" :ascent center)))
   "Image specification to offer as the mail indicator on a graphic
 display.  See `display-time-use-mail-icon' and
 `display-time-mail-face'.")
@@ -251,24 +258,26 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'."
                               (getenv "MAIL")
                               (concat rmail-spool-directory
                                       (user-login-name))))
-        (mail (and (stringp mail-spool-file)
-                   (or (null display-time-server-down-time)
-                       ;; If have been down for 20 min, try again.
-                       (> (- (nth 1 now) display-time-server-down-time)
-                          1200)
-                       (and (< (nth 1 now) display-time-server-down-time)
-                            (> (- (nth 1 now) display-time-server-down-time)
-                               -64336)))
-                   (let ((start-time (current-time)))
-                     (prog1
-                         (display-time-file-nonempty-p mail-spool-file)
-                       (if (> (- (nth 1 (current-time)) (nth 1 start-time))
-                              20)
-                           ;; Record that mail file is not accessible.
-                           (setq display-time-server-down-time
-                                 (nth 1 (current-time)))
-                         ;; Record that mail file is accessible.
-                         (setq display-time-server-down-time nil))))))
+        (mail (or (and display-time-mail-function
+                       (funcall display-time-mail-function))
+                  (and (stringp mail-spool-file)
+                       (or (null display-time-server-down-time)
+                           ;; If have been down for 20 min, try again.
+                           (> (- (nth 1 now) display-time-server-down-time)
+                              1200)
+                           (and (< (nth 1 now) display-time-server-down-time)
+                                (> (- (nth 1 now) display-time-server-down-time)
+                                   -64336)))
+                       (let ((start-time (current-time)))
+                         (prog1
+                             (display-time-file-nonempty-p mail-spool-file)
+                           (if (> (- (nth 1 (current-time)) (nth 1 start-time))
+                                  20)
+                               ;; Record that mail file is not accessible.
+                               (setq display-time-server-down-time
+                                     (nth 1 (current-time)))
+                             ;; Record that mail file is accessible.
+                             (setq display-time-server-down-time nil)))))))
          (24-hours (substring time 11 13))
          (hour (string-to-int 24-hours))
          (12-hours (int-to-string (1+ (% (+ hour 11) 12))))