-;;; 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.
(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."
: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
(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
(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))))