1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-01 09:51:22 -08:00

(display-time-mode): Set display-time-load-average here.

(display-time-load-average): Initialize to nil.
(display-time-default-load-average): Add "None" alternative.
(display-time-update): Handle "None" alternative for load-average.
This commit is contained in:
Richard M. Stallman 2002-09-15 01:51:49 +00:00
parent 63e489f595
commit fe6456af41

View file

@ -39,7 +39,7 @@
"*File name of mail inbox file, for indicating existence of new mail. "*File name of mail inbox file, for indicating existence of new mail.
Non-nil and not a string means don't check for mail. nil means use Non-nil and not a string means don't check for mail. nil means use
default, which is system-dependent, and is the same as used by Rmail." default, which is system-dependent, and is the same as used by Rmail."
:type '(choice (const :tag "(None)" none) :type '(choice (const :tag "None" none)
(const :tag "Default" nil) (const :tag "Default" nil)
(file :format "%v")) (file :format "%v"))
:group 'display-time) :group 'display-time)
@ -67,10 +67,12 @@ Almost every system can provide values of load for past 1 minute, past 5 or
past 15 minutes. The default is to display 1 minute load average." past 15 minutes. The default is to display 1 minute load average."
:type '(choice (const :tag "1 minute load" 0) :type '(choice (const :tag "1 minute load" 0)
(const :tag "5 minutes load" 1) (const :tag "5 minutes load" 1)
(const :tag "15 minutes load" 2)) (const :tag "15 minutes load" 2)
(const :tag "None" nil))
:group 'display-time) :group 'display-time)
(defvar display-time-load-average display-time-default-load-average) (defvar display-time-load-average nil
"Load average currently being shown in mode line")
(defcustom display-time-load-average-threshold 0.1 (defcustom display-time-load-average-threshold 0.1
"*Load-average values below this value won't be shown in the mode line." "*Load-average values below this value won't be shown in the mode line."
@ -245,26 +247,28 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'."
(defun display-time-update () (defun display-time-update ()
(let* ((now (current-time)) (let* ((now (current-time))
(time (current-time-string now)) (time (current-time-string now))
(load (condition-case () (load (if (null display-time-load-average)
;; Do not show values less than ""
;; `display-time-load-average-threshold'. (condition-case ()
(if (> (* display-time-load-average-threshold 100) ;; Do not show values less than
(nth display-time-load-average (load-average))) ;; `display-time-load-average-threshold'.
"" (if (> (* display-time-load-average-threshold 100)
;; The load average number is mysterious, so (nth display-time-load-average (load-average)))
;; provide some help. ""
(let ((str (format " %03d" (nth display-time-load-average (load-average))))) ;; The load average number is mysterious, so
(propertize ;; provide some help.
(concat (substring str 0 -2) "." (substring str -2)) (let ((str (format " %03d" (nth display-time-load-average (load-average)))))
'local-map (make-mode-line-mouse-map 'mouse-2 (propertize
'display-time-next-load-average) (concat (substring str 0 -2) "." (substring str -2))
'help-echo (concat "System load average for past " 'local-map (make-mode-line-mouse-map 'mouse-2
(if (= 0 display-time-load-average) 'display-time-next-load-average)
"1 minute" 'help-echo (concat "System load average for past "
(if (= 1 display-time-load-average) (if (= 0 display-time-load-average)
"5 minutes" "1 minute"
"15 minutes")) "; mouse-2: next" )))) (if (= 1 display-time-load-average)
(error ""))) "5 minutes"
"15 minutes")) "; mouse-2: next" ))))
(error ""))))
(mail-spool-file (or display-time-mail-file (mail-spool-file (or display-time-mail-file
(getenv "MAIL") (getenv "MAIL")
(concat rmail-spool-directory (concat rmail-spool-directory
@ -330,26 +334,27 @@ If `display-time-day-and-date' is non-nil, the current day and date
are displayed as well. are displayed as well.
This runs the normal hook `display-time-hook' after each update." This runs the normal hook `display-time-hook' after each update."
:global t :group 'display-time :global t :group 'display-time
(and display-time-timer (cancel-timer display-time-timer)) (and display-time-timer (cancel-timer display-time-timer))
(setq display-time-timer nil) (setq display-time-timer nil)
(setq display-time-string "") (setq display-time-string "")
(or global-mode-string (setq global-mode-string '(""))) (or global-mode-string (setq global-mode-string '("")))
(if display-time-mode (setq display-time-load-average display-time-default-load-average)
(progn (if display-time-mode
(or (memq 'display-time-string global-mode-string) (progn
(setq global-mode-string (or (memq 'display-time-string global-mode-string)
(append global-mode-string '(display-time-string)))) (setq global-mode-string
;; Set up the time timer. (append global-mode-string '(display-time-string))))
(setq display-time-timer ;; Set up the time timer.
(run-at-time t display-time-interval (setq display-time-timer
'display-time-event-handler)) (run-at-time t display-time-interval
;; Make the time appear right away. 'display-time-event-handler))
(display-time-update) ;; Make the time appear right away.
;; When you get new mail, clear "Mail" from the mode line. (display-time-update)
(add-hook 'rmail-after-get-new-mail-hook ;; When you get new mail, clear "Mail" from the mode line.
'display-time-event-handler)) (add-hook 'rmail-after-get-new-mail-hook
(remove-hook 'rmail-after-get-new-mail-hook 'display-time-event-handler))
'display-time-event-handler))) (remove-hook 'rmail-after-get-new-mail-hook
'display-time-event-handler)))
(provide 'time) (provide 'time)