aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1996-08-29 01:37:38 +0000
committerRichard M. Stallman <[email protected]>1996-08-29 01:37:38 +0000
commit7fd5b62d23d331307a167c8b75b3a2b7ffa82fe0 (patch)
tree580e58139d679f34d595d467d66f1fa88e254e8a /lisp
parent73ba610ac45d310291da6d96894d565a24196322 (diff)
(display-time): Call display-time-mode.
(display-time-mode): Take arg or toggle, as a minor mode.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/time.el58
1 files changed, 40 insertions, 18 deletions
diff --git a/lisp/time.el b/lisp/time.el
index 59dc075cfd..df819d2567 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -57,27 +57,49 @@ If that file system seems to be up, the value is nil.")
;;;###autoload
(defun display-time ()
- "Display current time, load level, and mail flag in mode line of each buffer.
-Updates automatically every minute.
+ "Enable display of time, load level, and mail flag in mode lines.
+This display updates automatically every minute.
If `display-time-day-and-date' is non-nil, the current day and date
are displayed as well.
-After each update, `display-time-hook' is run with `run-hooks'."
+This runs the normal hook `display-time-hook' after each update."
(interactive)
- (setq display-time-string "")
- (or global-mode-string (setq global-mode-string '("")))
- (or (memq 'display-time-string global-mode-string)
- (setq global-mode-string
- (append global-mode-string '(display-time-string))))
- ;; Setup the time timer.
- (and display-time-timer (cancel-timer display-time-timer))
- (setq display-time-timer
- ;; Start timer at the beginning of the next minute.
- (run-at-time (apply 'encode-time 60 (cdr (decode-time)))
- display-time-interval 'display-time-event-handler))
- ;; Make the time appear right away.
- (display-time-update)
- ;; When you get new mail, clear "Mail" from the mode line.
- (add-hook 'rmail-after-get-new-mail-hook 'display-time-event-handler))
+ (display-time-mode 1))
+
+;;;###autoload
+(defun display-time-mode (arg)
+ "Toggle display of time, load level, and mail flag in mode lines.
+With a numeric arg, enable this display if arg is positive.
+
+When this display is enabled, it updates automatically every minute.
+If `display-time-day-and-date' is non-nil, the current day and date
+are displayed as well.
+This runs the normal hook `display-time-hook' after each update."
+ (interactive "P")
+ (let ((on (if (null arg)
+ (not display-time-timer)
+ (> (prefix-numeric-value arg) 0))))
+ (and display-time-timer (cancel-timer display-time-timer))
+ (setq display-time-timer nil)
+ (setq display-time-string "")
+ (or global-mode-string (setq global-mode-string '("")))
+ (if on
+ (progn
+ (or (memq 'display-time-string global-mode-string)
+ (setq global-mode-string
+ (append global-mode-string '(display-time-string))))
+ ;; Set up the time timer.
+ (setq display-time-timer
+ ;; Start timer at the beginning of the next minute.
+ (run-at-time (apply 'encode-time 60 (cdr (decode-time)))
+ display-time-interval 'display-time-event-handler))
+ ;; Make the time appear right away.
+ (display-time-update)
+ ;; When you get new mail, clear "Mail" from the mode line.
+ (add-hook 'rmail-after-get-new-mail-hook
+ 'display-time-event-handler))
+ (remove-hook 'rmail-after-get-new-mail-hook
+ 'display-time-event-handler))))
+
(defvar display-time-string-forms
'((if display-time-day-and-date