Mercurial > emacs
annotate lisp/time.el @ 18092:8428d56cd207
(smtpmail-via-smtp): Recognize XVRB as a synonym for
VERB and XONE as a synonym for ONEX.
(smtpmail-read-response): Add "%s" to `message' calls to avoid
problems with percent signs in strings.
(smtpmail-read-response): Return all lines of the
response text as a list of strings. Formerly only the first line
was returned. This is insufficient when one wants to parse
e.g. an EHLO response.
Ignore responses starting with "0". This is necessary to support
the VERB SMTP extension.
(smtpmail-via-smtp): Try EHLO and find out which SMTP service
extensions the receiving mailer supports.
Issue the ONEX and XUSR commands if the corresponding extensions
are supported.
Issue VERB if supported and `smtpmail-debug-info' is non-nil.
Add SIZE attribute to MAIL FROM: command if SIZE extension is
supported.
Add code that could set the BODY= attribute to MAIL FROM: if the
receiving mailer supports 8BITMIME. This is currently disabled,
since doing it right might involve adding MIME headers to, and in
some cases reencoding, the message.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 01 Jun 1997 22:24:22 +0000 |
parents | 8ef3e5ff7ee2 |
children | 11218164bc54 |
rev | line source |
---|---|
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
387
diff
changeset
|
1 ;;; time.el --- display time and load in mode line of Emacs. |
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
387
diff
changeset
|
2 |
14734 | 3 ;; Copyright (C) 1985, 86, 87, 93, 94, 1996 Free Software Foundation, Inc. |
841 | 4 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
5 ;; Maintainer: FSF |
104 | 6 |
7 ;; This file is part of GNU Emacs. | |
8 | |
9 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
10 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
11 ;; the Free Software Foundation; either version 2, or (at your option) |
104 | 12 ;; any later version. |
13 | |
14 ;; GNU Emacs is distributed in the hope that it will be useful, | |
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 ;; GNU General Public License for more details. | |
18 | |
19 ;; You should have received a copy of the GNU General Public License | |
14169 | 20 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
22 ;; Boston, MA 02111-1307, USA. | |
104 | 23 |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2293
diff
changeset
|
24 ;;; Commentary: |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2293
diff
changeset
|
25 |
14169 | 26 ;; Facilities to display current time/date and a new-mail indicator |
27 ;; in the Emacs mode line. The single entry point is `display-time'. | |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2293
diff
changeset
|
28 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
29 ;;; Code: |
104 | 30 |
17697 | 31 (defgroup display-time nil |
32 "Display time and load in mode line of Emacs." | |
33 :group 'modeline | |
34 :group 'mail) | |
35 | |
36 | |
37 (defcustom display-time-mail-file nil | |
132
0cbdae7c532f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
104
diff
changeset
|
38 "*File name of mail inbox file, for indicating existence of new mail. |
9581
a035cc3716a1
(display-time-filter): Ignore mail-spool-file if not string.
Richard M. Stallman <rms@gnu.org>
parents:
8804
diff
changeset
|
39 Non-nil and not a string means don't check for mail. nil means use |
17697 | 40 default, which is system-dependent, and is the same as used by Rmail." |
41 :type '(choice (const :tag "Default" nil) | |
42 (file :format "%v")) | |
43 :group 'display-time) | |
132
0cbdae7c532f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
104
diff
changeset
|
44 |
268 | 45 ;;;###autoload |
17697 | 46 (defcustom display-time-day-and-date nil "\ |
47 *Non-nil means \\[display-time] should display day and date as well as time." | |
48 :type 'boolean | |
49 :group 'display-time) | |
256 | 50 |
14471
c1154020b9c3
(display-time): Rewrite to use built-in timers.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
51 (defvar display-time-timer nil) |
104 | 52 |
17697 | 53 (defcustom display-time-interval 60 |
54 "*Seconds between updates of time in the mode line." | |
55 :type 'integer | |
56 :group 'display-time) | |
104 | 57 |
17697 | 58 (defcustom display-time-24hr-format nil |
8804
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
59 "*Non-nil indicates time should be displayed as hh:mm, 0 <= hh <= 23. |
17697 | 60 Nil means 1 <= hh <= 12, and an AM/PM suffix is used." |
61 :type 'boolean | |
62 :group 'display-time) | |
387 | 63 |
104 | 64 (defvar display-time-string nil) |
65 | |
17697 | 66 (defcustom display-time-hook nil |
67 "* List of functions to be called when the time is updated on the mode line." | |
68 :type 'hook | |
69 :group 'display-time) | |
104 | 70 |
5463
e277328474cc
(display-time-file-nonempty-p): Check existence here.
Richard M. Stallman <rms@gnu.org>
parents:
4014
diff
changeset
|
71 (defvar display-time-server-down-time nil |
e277328474cc
(display-time-file-nonempty-p): Check existence here.
Richard M. Stallman <rms@gnu.org>
parents:
4014
diff
changeset
|
72 "Time when mail file's file system was recorded to be down. |
e277328474cc
(display-time-file-nonempty-p): Check existence here.
Richard M. Stallman <rms@gnu.org>
parents:
4014
diff
changeset
|
73 If that file system seems to be up, the value is nil.") |
e277328474cc
(display-time-file-nonempty-p): Check existence here.
Richard M. Stallman <rms@gnu.org>
parents:
4014
diff
changeset
|
74 |
256 | 75 ;;;###autoload |
104 | 76 (defun display-time () |
15964
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
77 "Enable display of time, load level, and mail flag in mode lines. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
78 This display updates automatically every minute. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
79 If `display-time-day-and-date' is non-nil, the current day and date |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
80 are displayed as well. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
81 This runs the normal hook `display-time-hook' after each update." |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
82 (interactive) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
83 (display-time-mode 1)) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
84 |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
85 ;;;###autoload |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
86 (defun display-time-mode (arg) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
87 "Toggle display of time, load level, and mail flag in mode lines. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
88 With a numeric arg, enable this display if arg is positive. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
89 |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
90 When this display is enabled, it updates automatically every minute. |
104 | 91 If `display-time-day-and-date' is non-nil, the current day and date |
92 are displayed as well. | |
15964
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
93 This runs the normal hook `display-time-hook' after each update." |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
94 (interactive "P") |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
95 (let ((on (if (null arg) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
96 (not display-time-timer) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
97 (> (prefix-numeric-value arg) 0)))) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
98 (and display-time-timer (cancel-timer display-time-timer)) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
99 (setq display-time-timer nil) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
100 (setq display-time-string "") |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
101 (or global-mode-string (setq global-mode-string '(""))) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
102 (if on |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
103 (progn |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
104 (or (memq 'display-time-string global-mode-string) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
105 (setq global-mode-string |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
106 (append global-mode-string '(display-time-string)))) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
107 ;; Set up the time timer. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
108 (setq display-time-timer |
16084
c477472563dd
(display-time): Use new run-at-time functionality to
Paul Eggert <eggert@twinsun.com>
parents:
15964
diff
changeset
|
109 (run-at-time t display-time-interval |
c477472563dd
(display-time): Use new run-at-time functionality to
Paul Eggert <eggert@twinsun.com>
parents:
15964
diff
changeset
|
110 'display-time-event-handler)) |
15964
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
111 ;; Make the time appear right away. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
112 (display-time-update) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
113 ;; When you get new mail, clear "Mail" from the mode line. |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
114 (add-hook 'rmail-after-get-new-mail-hook |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
115 'display-time-event-handler)) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
116 (remove-hook 'rmail-after-get-new-mail-hook |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
117 'display-time-event-handler)))) |
0e6def53a74f
(display-time): Call display-time-mode.
Richard M. Stallman <rms@gnu.org>
parents:
15749
diff
changeset
|
118 |
104 | 119 |
17697 | 120 (defcustom display-time-format nil |
16530
08d4cb2b9754
(display-time-format): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
16084
diff
changeset
|
121 "*A string specifying the format for displaying the time in the mode line. |
08d4cb2b9754
(display-time-format): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
16084
diff
changeset
|
122 See the function `format-time-string' for an explanation of |
17644
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
123 how to write this string. If this is nil, the defaults |
17697 | 124 depend on `display-time-day-and-date' and `display-time-24hr-format'." |
125 :type '(choice (const :tag "Default" nil) | |
126 string) | |
127 :group 'display-time) | |
16530
08d4cb2b9754
(display-time-format): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
16084
diff
changeset
|
128 |
17697 | 129 (defcustom display-time-string-forms |
17644
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
130 '((if (and (not display-time-format) display-time-day-and-date) |
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
131 (format-time-string "%a %b %e " now) |
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
132 "") |
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
133 (format-time-string (or display-time-format |
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
134 (if display-time-24hr-format "%H:%m" "%-I:%M%p")) |
d73425ee186b
(display-time-string-forms): Test display-time-day-and-date
Richard M. Stallman <rms@gnu.org>
parents:
16715
diff
changeset
|
135 now) |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
136 load |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
137 (if mail " Mail" "")) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
138 "*A list of expressions governing display of the time in the mode line. |
16530
08d4cb2b9754
(display-time-format): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
16084
diff
changeset
|
139 For most purposes, you can control the time format using `display-time-format' |
08d4cb2b9754
(display-time-format): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
16084
diff
changeset
|
140 which is a more standard interface. |
08d4cb2b9754
(display-time-format): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
16084
diff
changeset
|
141 |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
142 This expression is a list of expressions that can involve the keywords |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
143 `load', `day', `month', and `year', `12-hours', `24-hours', `minutes', |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
144 `seconds', all numbers in string form, and `monthname', `dayname', `am-pm', |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
145 and `time-zone' all alphabetic strings, and `mail' a true/nil value. |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
146 |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
147 For example, the form |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
148 |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
149 '((substring year -2) \"/\" month \"/\" day |
10317
dad32dba58bf
(display-time-string-forms): Fix doc string syntax error.
Richard M. Stallman <rms@gnu.org>
parents:
9581
diff
changeset
|
150 \" \" 24-hours \":\" minutes \":\" seconds |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
151 (if time-zone \" (\") time-zone (if time-zone \")\") |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
152 (if mail \" Mail\" \"\")) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
153 |
17697 | 154 would give mode line times like `94/12/30 21:07:48 (UTC)'." |
155 :type 'sexp | |
156 :group 'display-time) | |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
157 |
14471
c1154020b9c3
(display-time): Rewrite to use built-in timers.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
158 (defun display-time-event-handler () |
14638
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
159 (display-time-update) |
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
160 ;; Do redisplay right now, if no input pending. |
16673
932451713b13
(display-time-event-handler): If Don't run the timer
Richard M. Stallman <rms@gnu.org>
parents:
16530
diff
changeset
|
161 (sit-for 0) |
16715
401e38b9650c
(display-time-event-handler): Use let*.
Richard M. Stallman <rms@gnu.org>
parents:
16704
diff
changeset
|
162 (let* ((current (current-time)) |
401e38b9650c
(display-time-event-handler): Use let*.
Richard M. Stallman <rms@gnu.org>
parents:
16704
diff
changeset
|
163 (timer display-time-timer) |
401e38b9650c
(display-time-event-handler): Use let*.
Richard M. Stallman <rms@gnu.org>
parents:
16704
diff
changeset
|
164 ;; Compute the time when this timer will run again, next. |
401e38b9650c
(display-time-event-handler): Use let*.
Richard M. Stallman <rms@gnu.org>
parents:
16704
diff
changeset
|
165 (next-time (timer-relative-time |
401e38b9650c
(display-time-event-handler): Use let*.
Richard M. Stallman <rms@gnu.org>
parents:
16704
diff
changeset
|
166 (list (aref timer 1) (aref timer 2) (aref timer 3)) |
401e38b9650c
(display-time-event-handler): Use let*.
Richard M. Stallman <rms@gnu.org>
parents:
16704
diff
changeset
|
167 (* 5 (aref timer 4)) 0))) |
16704
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
168 ;; If the activation time is far in the past, |
16673
932451713b13
(display-time-event-handler): If Don't run the timer
Richard M. Stallman <rms@gnu.org>
parents:
16530
diff
changeset
|
169 ;; skip executions until we reach a time in the future. |
932451713b13
(display-time-event-handler): If Don't run the timer
Richard M. Stallman <rms@gnu.org>
parents:
16530
diff
changeset
|
170 ;; This avoids a long pause if Emacs has been suspended for hours. |
16704
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
171 (or (> (nth 0 next-time) (nth 0 current)) |
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
172 (and (= (nth 0 next-time) (nth 0 current)) |
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
173 (> (nth 1 next-time) (nth 1 current))) |
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
174 (and (= (nth 0 next-time) (nth 0 current)) |
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
175 (= (nth 1 next-time) (nth 1 current)) |
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
176 (> (nth 2 next-time) (nth 2 current))) |
16673
932451713b13
(display-time-event-handler): If Don't run the timer
Richard M. Stallman <rms@gnu.org>
parents:
16530
diff
changeset
|
177 (progn |
932451713b13
(display-time-event-handler): If Don't run the timer
Richard M. Stallman <rms@gnu.org>
parents:
16530
diff
changeset
|
178 (timer-set-time timer (timer-next-integral-multiple-of-time |
16704
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
179 current display-time-interval) |
ab9da89a8283
(display-time-event-handler): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
16673
diff
changeset
|
180 display-time-interval) |
16673
932451713b13
(display-time-event-handler): If Don't run the timer
Richard M. Stallman <rms@gnu.org>
parents:
16530
diff
changeset
|
181 (timer-activate timer))))) |
14638
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
182 |
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
183 ;; Update the display-time info for the mode line |
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
184 ;; but don't redisplay right now. This is used for |
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
185 ;; things like Rmail `g' that want to force an update |
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
186 ;; which can wait for the next redisplay. |
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
187 (defun display-time-update () |
12100 | 188 (let* ((now (current-time)) |
189 (time (current-time-string now)) | |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
190 (load (condition-case () |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
191 (if (zerop (car (load-average))) "" |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
192 (let ((str (format " %03d" (car (load-average))))) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
193 (concat (substring str 0 -2) "." (substring str -2)))) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
194 (error ""))) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
195 (mail-spool-file (or display-time-mail-file |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
196 (getenv "MAIL") |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
197 (concat rmail-spool-directory |
8804
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
198 (user-login-name)))) |
9581
a035cc3716a1
(display-time-filter): Ignore mail-spool-file if not string.
Richard M. Stallman <rms@gnu.org>
parents:
8804
diff
changeset
|
199 (mail (and (stringp mail-spool-file) |
a035cc3716a1
(display-time-filter): Ignore mail-spool-file if not string.
Richard M. Stallman <rms@gnu.org>
parents:
8804
diff
changeset
|
200 (or (null display-time-server-down-time) |
8804
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
201 ;; If have been down for 20 min, try again. |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
202 (> (- (nth 1 (current-time)) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
203 display-time-server-down-time) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
204 1200)) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
205 (let ((start-time (current-time))) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
206 (prog1 |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
207 (display-time-file-nonempty-p mail-spool-file) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
208 (if (> (- (nth 1 (current-time)) (nth 1 start-time)) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
209 20) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
210 ;; Record that mail file is not accessible. |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
211 (setq display-time-server-down-time |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
212 (nth 1 (current-time))) |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
213 ;; Record that mail file is accessible. |
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
214 (setq display-time-server-down-time nil)))))) |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
215 (24-hours (substring time 11 13)) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
216 (hour (string-to-int 24-hours)) |
8804
0e668dd3f120
(display-time-24hr-format): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
8459
diff
changeset
|
217 (12-hours (int-to-string (1+ (% (+ hour 11) 12)))) |
8459
e1a2458245cb
(display-time-filter): pm starts at 12, not 13.
Richard M. Stallman <rms@gnu.org>
parents:
8404
diff
changeset
|
218 (am-pm (if (>= hour 12) "pm" "am")) |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
219 (minutes (substring time 14 16)) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
220 (seconds (substring time 17 19)) |
12100 | 221 (time-zone (car (cdr (current-time-zone now)))) |
8404
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
222 (day (substring time 8 10)) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
223 (year (substring time 20 24)) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
224 (monthname (substring time 4 7)) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
225 (month |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
226 (cdr |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
227 (assoc |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
228 monthname |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
229 '(("Jan" . "1") ("Feb" . "2") ("Mar" . "3") ("Apr" . "4") |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
230 ("May" . "5") ("Jun" . "6") ("Jul" . "7") ("Aug" . "8") |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
231 ("Sep" . "9") ("Oct" . "10") ("Nov" . "11") ("Dec" . "12"))))) |
49ffb0b7fd22
(display-time-string-forms): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
232 (dayname (substring time 0 3))) |
104 | 233 (setq display-time-string |
12440
5f4248eb4bdd
(display-time-filter): Move run-hooks inside let.
Richard M. Stallman <rms@gnu.org>
parents:
12100
diff
changeset
|
234 (mapconcat 'eval display-time-string-forms "")) |
5f4248eb4bdd
(display-time-filter): Move run-hooks inside let.
Richard M. Stallman <rms@gnu.org>
parents:
12100
diff
changeset
|
235 ;; This is inside the let binding, but we are not going to document |
5f4248eb4bdd
(display-time-filter): Move run-hooks inside let.
Richard M. Stallman <rms@gnu.org>
parents:
12100
diff
changeset
|
236 ;; what variables are available. |
5f4248eb4bdd
(display-time-filter): Move run-hooks inside let.
Richard M. Stallman <rms@gnu.org>
parents:
12100
diff
changeset
|
237 (run-hooks 'display-time-hook)) |
14638
46556543f4e6
(display-time-update): New subroutine broken out from
Karl Heuer <kwzh@gnu.org>
parents:
14471
diff
changeset
|
238 (force-mode-line-update)) |
256 | 239 |
240 (defun display-time-file-nonempty-p (file) | |
5463
e277328474cc
(display-time-file-nonempty-p): Check existence here.
Richard M. Stallman <rms@gnu.org>
parents:
4014
diff
changeset
|
241 (and (file-exists-p file) |
e277328474cc
(display-time-file-nonempty-p): Check existence here.
Richard M. Stallman <rms@gnu.org>
parents:
4014
diff
changeset
|
242 (< 0 (nth 7 (file-attributes (file-chase-links file)))))) |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
387
diff
changeset
|
243 |
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
387
diff
changeset
|
244 ;;; time.el ends here |