]> code.delx.au - gnu-emacs/blobdiff - lisp/time.el
(menu-bar-tools-menu): Call read-mail-command
[gnu-emacs] / lisp / time.el
index 086ec2219dc4c5e9d6caf0902a2854599fa6f291..756aa6ad8b935692adabb5d9128e6f7d007e927b 100644 (file)
@@ -1,4 +1,4 @@
-;;; time.el --- display time and load 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,13 +150,13 @@ display."
   :type 'face)
 
 (defvar display-time-mail-icon
-  (find-image '((:type xbm :file "letter.xbm" :ascent 100)))
-  "Image specification to offer as the mail indictor on a grephic
+  (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'.")
 
 (defcustom display-time-use-mail-icon nil
-  "Non-nil means use an icon as the mail indictor on a grephic display.
+  "Non-nil means use an icon as the mail indicator on a graphic display.
 Otherwise use the string \"Mail\".  The icon may consume less of the
 mode line.  It is specified by `display-time-mail-icon'."
   :group 'display-time
@@ -240,7 +247,7 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'."
         (time (current-time-string now))
          (load (condition-case ()
                    (if (zerop (car (load-average))) ""
-                    ;; The load average number is myterious, so
+                    ;; The load average number is mysterious, so
                     ;; propvide some help.
                      (let ((str (format " %03d" (car (load-average)))))
                       (propertize
@@ -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))))