annotate lisp/time.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents a4b9fa0b861b
children 4e901a2d3669
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
1 ;;; time.el --- display time, load and mail indicator in mode line of Emacs -*-coding: utf-8 -*-
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
2
64762
41bb365f41c4 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64091
diff changeset
3 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1996, 2000, 2001, 2002,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105372
diff changeset
4 ;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
5
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
6 ;; Maintainer: FSF
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
7
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
8 ;; This file is part of GNU Emacs.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
9
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
10 ;; GNU Emacs is free software: you can redistribute it and/or modify
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
12 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; (at your option) any later version.
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
14
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
18 ;; GNU General Public License for more details.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
19
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
20 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
22
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
23 ;;; Commentary:
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
24
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
25 ;; Facilities to display current time/date and a new-mail indicator
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
26 ;; in the Emacs mode line. The entry point is `display-time'.
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
27
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
28 ;; Display time world in a buffer, the entry point is
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
29 ;; `display-time-world'.
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
30
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
31 ;;; Code:
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
32
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
33 (defgroup display-time nil
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
34 "Display time and load in mode line of Emacs."
72878
9aa76be5e74c (display-time): Group mode-line instead of modeline.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
35 :group 'mode-line
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
36 :group 'mail)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
37
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
38
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
39 (defcustom display-time-mail-file nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
40 "File name of mail inbox file, for indicating existence of new mail.
77721
28206c0a5ce2 (display-time-mail-file): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents: 77715
diff changeset
41 Non-nil and not a string means don't check for mail; nil means use
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
42 default, which is system-dependent, and is the same as used by Rmail."
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
43 :type '(choice (const :tag "None" none)
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
44 (const :tag "Default" nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
45 (file :format "%v"))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
46 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
47
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
48 (defcustom display-time-mail-directory nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
49 "Name of mail inbox directory, for indicating existence of new mail.
45041
cbfb6a5db0be (display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 42998
diff changeset
50 Any nonempty regular file in the directory is regarded as newly arrived mail.
cbfb6a5db0be (display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 42998
diff changeset
51 If nil, do not check a directory for arriving mail."
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
52 :type '(choice (const :tag "None" nil)
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
53 (directory :format "%v"))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
54 :group 'display-time)
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
55
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
56 (defcustom display-time-mail-function nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
57 "Function to call, for indicating existence of new mail.
45041
cbfb6a5db0be (display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 42998
diff changeset
58 If nil, that means use the default method: check that the file
cbfb6a5db0be (display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 42998
diff changeset
59 specified by `display-time-mail-file' is nonempty or that the
cbfb6a5db0be (display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 42998
diff changeset
60 directory `display-time-mail-directory' contains nonempty files."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
61 :type '(choice (const :tag "Default" nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
62 (function))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
63 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
64
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
65 (defcustom display-time-default-load-average 0
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
66 "Which load average value will be shown in the mode line.
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
67 Almost every system can provide values of load for past 1 minute, past 5 or
102687
060d60d54822 Fix sentence-end whitespace in previous.
Glenn Morris <rgm@gnu.org>
parents: 102686
diff changeset
68 past 15 minutes. The default is to display 1 minute load average.
102686
6ff0334666aa Jari Aalto <jari.aalto at cante.net>
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
69 The value can be one of:
6ff0334666aa Jari Aalto <jari.aalto at cante.net>
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
70
6ff0334666aa Jari Aalto <jari.aalto at cante.net>
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
71 0 => 1 minute load
6ff0334666aa Jari Aalto <jari.aalto at cante.net>
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
72 1 => 5 minutes load
6ff0334666aa Jari Aalto <jari.aalto at cante.net>
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
73 2 => 15 minutes load"
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
74 :type '(choice (const :tag "1 minute load" 0)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
75 (const :tag "5 minutes load" 1)
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
76 (const :tag "15 minutes load" 2)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
77 (const :tag "None" nil))
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
78 :group 'display-time)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
79
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
80 (defvar display-time-load-average nil
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
81 "Load average currently being shown in mode line.")
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
82
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
83 (defcustom display-time-load-average-threshold 0.1
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
84 "Load-average values below this value won't be shown in the mode line."
42494
35eeafd85667 (display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents: 42261
diff changeset
85 :type 'number
35eeafd85667 (display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents: 42261
diff changeset
86 :group 'display-time)
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
87
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
88 ;;;###autoload
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
89 (defcustom display-time-day-and-date nil "\
109336
e510f7e2723a * time.el (display-time-day-and-date): Remove spurious * in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 106815
diff changeset
90 Non-nil means \\[display-time] should display day and date as well as time."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
91 :type 'boolean
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
92 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
93
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
94 (defvar display-time-timer nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
95
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
96 (defcustom display-time-interval 60
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
97 "Seconds between updates of time in the mode line."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
98 :type 'integer
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
99 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
100
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
101 (defcustom display-time-24hr-format nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
102 "Non-nil indicates time should be displayed as hh:mm, 0 <= hh <= 23.
77715
5ccb0e885118 (display-time-24hr-format): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents: 75347
diff changeset
103 A value of nil means 1 <= hh <= 12, and an AM/PM suffix is used."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
104 :type 'boolean
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
105 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
106
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
107 (defvar display-time-string nil)
104612
c220a29e75fd Define risky-local-variable property here rather than in files.el.
Glenn Morris <rgm@gnu.org>
parents: 102687
diff changeset
108 ;;;###autoload(put 'display-time-string 'risky-local-variable t)
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
109
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
110 (defcustom display-time-hook nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
111 "List of functions to be called when the time is updated on the mode line."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
112 :type 'hook
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
113 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
114
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
115 (defvar display-time-server-down-time nil
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
116 "Time when mail file's file system was recorded to be down.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
117 If that file system seems to be up, the value is nil.")
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
118
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
119 (defcustom zoneinfo-style-world-list
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
120 '(("America/Los_Angeles" "Seattle")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
121 ("America/New_York" "New York")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
122 ("Europe/London" "London")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
123 ("Europe/Paris" "Paris")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
124 ("Asia/Calcutta" "Bangalore")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
125 ("Asia/Tokyo" "Tokyo"))
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
126 "Alist of zoneinfo-style time zones and places for `display-time-world'.
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
127 Each element has the form (TIMEZONE LABEL).
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
128 TIMEZONE should be a string of the form AREA/LOCATION, where AREA is
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
129 the name of a region -- a continent or ocean, and LOCATION is the name
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
130 of a specific location, e.g., a city, within that region.
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
131 LABEL is a string to display as the label of that TIMEZONE's time."
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
132 :group 'display-time
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
133 :type '(repeat (list string string))
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
134 :version "23.1")
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
135
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
136 (defcustom legacy-style-world-list
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
137 '(("PST8PDT" "Seattle")
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
138 ("EST5EDT" "New York")
85696
93072a4b7046 (legacy-style-world-list): Fix TZ values for London, Bangalore, and Tokyo.
Eli Zaretskii <eliz@gnu.org>
parents: 85689
diff changeset
139 ("GMT0BST" "London")
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
140 ("CET-1CDT" "Paris")
85696
93072a4b7046 (legacy-style-world-list): Fix TZ values for London, Bangalore, and Tokyo.
Eli Zaretskii <eliz@gnu.org>
parents: 85689
diff changeset
141 ("IST-5:30" "Bangalore")
93072a4b7046 (legacy-style-world-list): Fix TZ values for London, Bangalore, and Tokyo.
Eli Zaretskii <eliz@gnu.org>
parents: 85689
diff changeset
142 ("JST-9" "Tokyo"))
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
143 "Alist of traditional-style time zones and places for `display-time-world'.
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
144 Each element has the form (TIMEZONE LABEL).
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
145 TIMEZONE should be a string of the form:
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
146
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
147 std[+|-]offset[dst[offset][,date[/time],date[/time]]]
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
148
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
149 See the documentation of the TZ environment variable on your system,
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
150 for more details about the format of TIMEZONE.
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
151 LABEL is a string to display as the label of that TIMEZONE's time."
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
152 :group 'display-time
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
153 :type '(repeat (list string string))
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
154 :version "23.1")
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
155
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
156 (defcustom display-time-world-list
85803
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
157 ;; Determine if zoneinfo style timezones are supported by testing that
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
158 ;; America/New York and Europe/London return different timezones.
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
159 (let (gmt nyt)
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
160 (set-time-zone-rule "America/New York")
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
161 (setq nyt (format-time-string "%z"))
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
162 (set-time-zone-rule "Europe/London")
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
163 (setq gmt (format-time-string "%z"))
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
164 (set-time-zone-rule nil)
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
165 (if (string-equal nyt gmt)
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
166 legacy-style-world-list
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
167 zoneinfo-style-world-list))
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
168 "Alist of time zones and places for `display-time-world' to display.
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
169 Each element has the form (TIMEZONE LABEL).
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
170 TIMEZONE should be in the format supported by `set-time-zone-rule' on
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
171 your system. See the documentation of `zoneinfo-style-world-list' and
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
172 \`legacy-style-world-list' for two widely used formats.
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
173 LABEL is a string to display as the label of that TIMEZONE's time."
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
174 :group 'display-time
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
175 :type '(repeat (list string string))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
176 :version "23.1")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
177
85425
e7618e76351a (display-time-world-time-format): Display day # not month #.
Richard M. Stallman <rms@gnu.org>
parents: 82939
diff changeset
178 (defcustom display-time-world-time-format "%A %d %B %R %Z"
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
179 "Format of the time displayed, see `format-time-string'."
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
180 :group 'display-time
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
181 :type 'string
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
182 :version "23.1")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
183
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
184 (defcustom display-time-world-buffer-name "*wclock*"
109336
e510f7e2723a * time.el (display-time-day-and-date): Remove spurious * in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 106815
diff changeset
185 "Name of the world clock buffer."
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
186 :group 'display-time
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
187 :type 'string
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
188 :version "23.1")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
189
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
190 (defcustom display-time-world-timer-enable t
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
191 "If non-nil, a timer will update the world clock."
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
192 :group 'display-time
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
193 :type 'boolean
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
194 :version "23.1")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
195
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
196 (defcustom display-time-world-timer-second 60
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
197 "Interval in seconds for updating the world clock."
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
198 :group 'display-time
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
199 :type 'integer
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
200 :version "23.1")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
201
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
202 (defvar display-time-world-mode-map
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
203 (let ((map (make-sparse-keymap)))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
204 (define-key map "q" 'kill-this-buffer)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
205 map)
109336
e510f7e2723a * time.el (display-time-day-and-date): Remove spurious * in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 106815
diff changeset
206 "Keymap of Display Time World mode.")
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
207
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
208 ;;;###autoload
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
209 (defun display-time ()
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
210 "Enable display of time, load level, and mail flag in mode lines.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
211 This display updates automatically every minute.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
212 If `display-time-day-and-date' is non-nil, the current day and date
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
213 are displayed as well.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
214 This runs the normal hook `display-time-hook' after each update."
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
215 (interactive)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
216 (display-time-mode 1))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
217
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
218 ;; This business used to be simpler when all mode lines had the same
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
219 ;; face and the image could just be pbm. Now we try to rely on an xpm
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
220 ;; image with a transparent background. Otherwise, set the background
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
221 ;; for pbm.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
222
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
223 (defcustom display-time-mail-face nil
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
224 "Face to use for `display-time-mail-string'.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
225 If `display-time-use-mail-icon' is non-nil, the image's
63261
fbdbc34f3665 (display-time-mail-face): Fix spellings in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 62778
diff changeset
226 background color is the background of this face. Set this to
fbdbc34f3665 (display-time-mail-face): Fix spellings in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 62778
diff changeset
227 make the mail indicator stand out on a color display."
68217
7fad4c175274 (display-time-mail-face): Replace :group `faces' with `mode-line-faces'.
Juri Linkov <juri@jurta.org>
parents: 64903
diff changeset
228 :group 'mode-line-faces
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
229 :group 'display-time
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 54525
diff changeset
230 :version "22.1"
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
231 :type '(choice (const :tag "None" nil) face))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
232
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
233 (defvar display-time-mail-icon
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
234 (find-image '((:type xpm :file "letter.xpm" :ascent center)
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
235 (:type pbm :file "letter.pbm" :ascent center)))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
236 "Image specification to offer as the mail indicator on a graphic display.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
237 See `display-time-use-mail-icon' and `display-time-mail-face'.")
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
238
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
239 ;; Fixme: Default to icon on graphical display?
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
240 (defcustom display-time-use-mail-icon nil
64903
7d23835637c8 (display-time-use-mail-icon, display-time-format)
Luc Teirlinck <teirllm@auburn.edu>
parents: 64762
diff changeset
241 "Non-nil means use an icon as mail indicator on a graphic display.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
242 Otherwise use `display-time-mail-string'. The icon may consume less
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
243 of the mode line. It is specified by `display-time-mail-icon'."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
244 :group 'display-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
245 :type 'boolean)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
246
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
247 ;; Fixme: maybe default to the character if we can display Unicode.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
248 (defcustom display-time-mail-string "Mail"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
249 "String to use as the mail indicator in `display-time-string-forms'.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
250 This can use the Unicode letter character if you can display it."
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
251 :group 'display-time
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 54525
diff changeset
252 :version "22.1"
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
253 :type '(choice (const "Mail")
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
254 ;; Use :tag here because the Lucid menu won't display
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
255 ;; multibyte text.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
256 (const :tag "Unicode letter character" "✉")
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
257 string))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
258
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
259 (defcustom display-time-format nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
260 "String specifying format for displaying the time in the mode line.
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
261 See the function `format-time-string' for an explanation of
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
262 how to write this string. If this is nil, the defaults
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
263 depend on `display-time-day-and-date' and `display-time-24hr-format'."
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
264 :type '(choice (const :tag "Default" nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
265 string)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
266 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
267
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
268 (defcustom display-time-string-forms
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
269 '((if (and (not display-time-format) display-time-day-and-date)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
270 (format-time-string "%a %b %e " now)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
271 "")
54434
de3c77f25914 (display-time-string-forms): Add help-echo with date on time.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
272 (propertize
de3c77f25914 (display-time-string-forms): Add help-echo with date on time.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
273 (format-time-string (or display-time-format
de3c77f25914 (display-time-string-forms): Add help-echo with date on time.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
274 (if display-time-24hr-format "%H:%M" "%-I:%M%p"))
de3c77f25914 (display-time-string-forms): Add help-echo with date on time.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
275 now)
54525
b928269daf24 (display-time-string-forms): Fix help-echo date format.
Juri Linkov <juri@jurta.org>
parents: 54434
diff changeset
276 'help-echo (format-time-string "%a %b %e, %Y" now))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
277 load
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
278 (if mail
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
279 ;; Build the string every time to act on customization.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
280 ;; :set-after doesn't help for `customize-option'. I think it
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
281 ;; should.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
282 (concat
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
283 " "
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
284 (propertize
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
285 display-time-mail-string
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
286 'display `(when (and display-time-use-mail-icon
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
287 (display-graphic-p))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
288 ,@display-time-mail-icon
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
289 ,@(if (and display-time-mail-face
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
290 (memq (plist-get (cdr display-time-mail-icon)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
291 :type)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
292 '(pbm xbm)))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
293 (let ((bg (face-attribute display-time-mail-face
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
294 :background)))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
295 (if (stringp bg)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
296 (list :background bg)))))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
297 'face display-time-mail-face
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
298 'help-echo "You have new mail; mouse-2: Read mail"
62778
75fa29e46766 (display-time-string-forms, display-time-update):
Luc Teirlinck <teirllm@auburn.edu>
parents: 62402
diff changeset
299 'mouse-face 'mode-line-highlight
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
300 'local-map (make-mode-line-mouse-map 'mouse-2
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
301 read-mail-command)))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
302 ""))
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
303 "List of expressions governing display of the time in the mode line.
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
304 For most purposes, you can control the time format using `display-time-format'
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
305 which is a more standard interface.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
306
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
307 This expression is a list of expressions that can involve the keywords
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
308 `load', `day', `month', and `year', `12-hours', `24-hours', `minutes',
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
309 `seconds', all numbers in string form, and `monthname', `dayname', `am-pm',
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
310 and `time-zone' all alphabetic strings, and `mail' a true/nil value.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
311
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
312 For example, the form
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
313
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
314 '((substring year -2) \"/\" month \"/\" day
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
315 \" \" 24-hours \":\" minutes \":\" seconds
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
316 (if time-zone \" (\") time-zone (if time-zone \")\")
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
317 (if mail \" Mail\" \"\"))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
318
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
319 would give mode line times like `94/12/30 21:07:48 (UTC)'."
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
320 :type 'sexp
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
321 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
322
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
323 (defun display-time-event-handler ()
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
324 (display-time-update)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
325 ;; Do redisplay right now, if no input pending.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
326 (sit-for 0)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
327 (let* ((current (current-time))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
328 (timer display-time-timer)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
329 ;; Compute the time when this timer will run again, next.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
330 (next-time (timer-relative-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
331 (list (aref timer 1) (aref timer 2) (aref timer 3))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
332 (* 5 (aref timer 4)) 0)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
333 ;; If the activation time is far in the past,
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
334 ;; skip executions until we reach a time in the future.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
335 ;; This avoids a long pause if Emacs has been suspended for hours.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
336 (or (> (nth 0 next-time) (nth 0 current))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
337 (and (= (nth 0 next-time) (nth 0 current))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
338 (> (nth 1 next-time) (nth 1 current)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
339 (and (= (nth 0 next-time) (nth 0 current))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
340 (= (nth 1 next-time) (nth 1 current))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
341 (> (nth 2 next-time) (nth 2 current)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
342 (progn
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
343 (timer-set-time timer (timer-next-integral-multiple-of-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
344 current display-time-interval)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
345 display-time-interval)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
346 (timer-activate timer)))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
347
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
348 (defun display-time-next-load-average ()
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
349 (interactive)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
350 (if (= 3 (setq display-time-load-average (1+ display-time-load-average)))
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
351 (setq display-time-load-average 0))
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
352 (display-time-update)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
353 (sit-for 0))
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
354
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
355 (defun display-time-mail-check-directory ()
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
356 (let ((mail-files (directory-files display-time-mail-directory t))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
357 (size 0))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
358 (while (and mail-files (= size 0))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
359 ;; Count size of regular files only.
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
360 (setq size (+ size (or (and (file-regular-p (car mail-files))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
361 (nth 7 (file-attributes (car mail-files))))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
362 0)))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
363 (setq mail-files (cdr mail-files)))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
364 (if (> size 0)
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
365 size
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
366 nil)))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
367
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
368 (defun display-time-update ()
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
369 "Update the display-time info for the mode line.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
370 However, don't redisplay right now.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
371
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
372 This is used for things like Rmail `g' that want to force an
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
373 update which can wait for the next redisplay."
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
374 (let* ((now (current-time))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
375 (time (current-time-string now))
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
376 (load (if (null display-time-load-average)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
377 ""
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
378 (condition-case ()
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
379 ;; Do not show values less than
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
380 ;; `display-time-load-average-threshold'.
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
381 (if (> (* display-time-load-average-threshold 100)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
382 (nth display-time-load-average (load-average)))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
383 ""
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
384 ;; The load average number is mysterious, so
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
385 ;; provide some help.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
386 (let ((str (format " %03d"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
387 (nth display-time-load-average
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
388 (load-average)))))
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
389 (propertize
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
390 (concat (substring str 0 -2) "." (substring str -2))
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
391 'local-map (make-mode-line-mouse-map
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
392 'mouse-2 'display-time-next-load-average)
62778
75fa29e46766 (display-time-string-forms, display-time-update):
Luc Teirlinck <teirllm@auburn.edu>
parents: 62402
diff changeset
393 'mouse-face 'mode-line-highlight
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
394 'help-echo (concat
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
395 "System load average for past "
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
396 (if (= 0 display-time-load-average)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
397 "1 minute"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
398 (if (= 1 display-time-load-average)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
399 "5 minutes"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
400 "15 minutes"))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
401 "; mouse-2: next"))))
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
402 (error ""))))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
403 (mail-spool-file (or display-time-mail-file
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
404 (getenv "MAIL")
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
405 (concat rmail-spool-directory
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
406 (user-login-name))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
407 (mail (or (and display-time-mail-function
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
408 (funcall display-time-mail-function))
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
409 (and display-time-mail-directory
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
410 (display-time-mail-check-directory))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
411 (and (stringp mail-spool-file)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
412 (or (null display-time-server-down-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
413 ;; If have been down for 20 min, try again.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
414 (> (- (nth 1 now) display-time-server-down-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
415 1200)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
416 (and (< (nth 1 now) display-time-server-down-time)
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
417 (> (- (nth 1 now)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
418 display-time-server-down-time)
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
419 -64336)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
420 (let ((start-time (current-time)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
421 (prog1
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
422 (display-time-file-nonempty-p mail-spool-file)
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
423 (if (> (- (nth 1 (current-time))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
424 (nth 1 start-time))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
425 20)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
426 ;; Record that mail file is not accessible.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
427 (setq display-time-server-down-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
428 (nth 1 (current-time)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
429 ;; Record that mail file is accessible.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
430 (setq display-time-server-down-time nil)))))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
431 (24-hours (substring time 11 13))
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 59996
diff changeset
432 (hour (string-to-number 24-hours))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
433 (12-hours (int-to-string (1+ (% (+ hour 11) 12))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
434 (am-pm (if (>= hour 12) "pm" "am"))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
435 (minutes (substring time 14 16))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
436 (seconds (substring time 17 19))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
437 (time-zone (car (cdr (current-time-zone now))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
438 (day (substring time 8 10))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
439 (year (substring time 20 24))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
440 (monthname (substring time 4 7))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
441 (month
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
442 (cdr
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
443 (assoc
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
444 monthname
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
445 '(("Jan" . "1") ("Feb" . "2") ("Mar" . "3") ("Apr" . "4")
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
446 ("May" . "5") ("Jun" . "6") ("Jul" . "7") ("Aug" . "8")
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
447 ("Sep" . "9") ("Oct" . "10") ("Nov" . "11") ("Dec" . "12")))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
448 (dayname (substring time 0 3)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
449 (setq display-time-string
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
450 (mapconcat 'eval display-time-string-forms ""))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
451 ;; This is inside the let binding, but we are not going to document
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
452 ;; what variables are available.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
453 (run-hooks 'display-time-hook))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
454 (force-mode-line-update))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
455
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
456 (defun display-time-file-nonempty-p (file)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
457 (and (file-exists-p file)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
458 (< 0 (nth 7 (file-attributes (file-chase-links file))))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
459
31980
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
460 ;;;###autoload
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
461 (define-minor-mode display-time-mode
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
462 "Toggle display of time, load level, and mail flag in mode lines.
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
463 With a numeric arg, enable this display if arg is positive.
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
464
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
465 When this display is enabled, it updates automatically every minute.
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
466 If `display-time-day-and-date' is non-nil, the current day and date
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
467 are displayed as well.
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
468 This runs the normal hook `display-time-hook' after each update."
33197
5ddf69eeb2bb (display-time-mode): Drop unneeded positional args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 31980
diff changeset
469 :global t :group 'display-time
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
470 (and display-time-timer (cancel-timer display-time-timer))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
471 (setq display-time-timer nil)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
472 (setq display-time-string "")
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
473 (or global-mode-string (setq global-mode-string '("")))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
474 (setq display-time-load-average display-time-default-load-average)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
475 (if display-time-mode
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
476 (progn
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
477 (or (memq 'display-time-string global-mode-string)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
478 (setq global-mode-string
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
479 (append global-mode-string '(display-time-string))))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
480 ;; Set up the time timer.
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
481 (setq display-time-timer
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
482 (run-at-time t display-time-interval
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
483 'display-time-event-handler))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
484 ;; Make the time appear right away.
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
485 (display-time-update)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
486 ;; When you get new mail, clear "Mail" from the mode line.
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
487 (add-hook 'rmail-after-get-new-mail-hook
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
488 'display-time-event-handler))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
489 (remove-hook 'rmail-after-get-new-mail-hook
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
490 'display-time-event-handler)))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
491
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
492
109465
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
493 (define-derived-mode display-time-world-mode nil "World clock"
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
494 "Major mode for buffer that displays times in various time zones.
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
495 See `display-time-world'."
109465
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
496 (setq show-trailing-whitespace nil))
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
497
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
498 (defun display-time-world-display (alist)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
499 "Replace current buffer text with times in various zones, based on ALIST."
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
500 (let ((inhibit-read-only t)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
501 (buffer-undo-list t))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
502 (erase-buffer)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
503 (let ((max-width 0)
109465
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
504 (result ())
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
505 fmt)
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
506 (unwind-protect
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
507 (dolist (zone alist)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
508 (let* ((label (cadr zone))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
509 (width (string-width label)))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
510 (set-time-zone-rule (car zone))
109465
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
511 (push (cons label
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
512 (format-time-string display-time-world-time-format))
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
513 result)
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
514 (when (> width max-width)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
515 (setq max-width width))))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
516 (set-time-zone-rule nil))
109465
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
517 (setq fmt (concat "%-" (int-to-string max-width) "s %s\n"))
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
518 (dolist (timedata (nreverse result))
1d31012de150 time.el: Use `define-derived-mode'. Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents: 108765
diff changeset
519 (insert (format fmt (car timedata) (cdr timedata)))))
108765
d835100c3e8b Replace Lisp calls to delete-backward-char by delete-char.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
520 (delete-char -1)))
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
521
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
522 ;;;###autoload
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
523 (defun display-time-world ()
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
524 "Enable updating display of times in various time zones.
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
525 `display-time-world-list' specifies the zones.
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
526 To turn off the world time display, go to that window and type `q'."
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
527 (interactive)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
528 (when (and display-time-world-timer-enable
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
529 (not (get-buffer display-time-world-buffer-name)))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
530 (run-at-time t display-time-world-timer-second 'display-time-world-timer))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
531 (with-current-buffer (get-buffer-create display-time-world-buffer-name)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
532 (display-time-world-display display-time-world-list))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
533 (pop-to-buffer display-time-world-buffer-name)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
534 (fit-window-to-buffer)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
535 (display-time-world-mode))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
536
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
537 (defun display-time-world-timer ()
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
538 (if (get-buffer display-time-world-buffer-name)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
539 (with-current-buffer (get-buffer display-time-world-buffer-name)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
540 (display-time-world-display display-time-world-list))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
541 ;; cancel timer
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
542 (let ((list timer-list))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
543 (while list
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
544 (let ((elt (pop list)))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
545 (when (equal (symbol-name (aref elt 5)) "display-time-world-timer")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
546 (cancel-timer elt)))))))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
547
91862
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
548 ;;;###autoload
91864
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
549 (defun emacs-uptime (&optional format)
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
550 "Return a string giving the uptime of this instance of Emacs.
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
551 FORMAT is a string to format the result, using `format-seconds'.
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
552 For example, the Unix uptime command format is \"%D, %z%2h:%.2m\"."
91862
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
553 (interactive)
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
554 (let ((str
91864
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
555 (format-seconds (or format "%Y, %D, %H, %M, %z%S")
104796
e9f8f2b78f10 (emacs-uptime, emacs-init-time): Use float-time rather than time-to-seconds.
Glenn Morris <rgm@gnu.org>
parents: 104612
diff changeset
556 (float-time
91884
927a69bb381a (emacs-uptime): Use before-init-time rather than emacs-startup-time.
Glenn Morris <rgm@gnu.org>
parents: 91864
diff changeset
557 (time-subtract (current-time) before-init-time)))))
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 104796
diff changeset
558 (if (called-interactively-p 'interactive)
91862
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
559 (message "%s" str)
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
560 str)))
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
561
91894
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
562 ;;;###autoload
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
563 (defun emacs-init-time ()
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
564 "Return a string giving the duration of the Emacs initialization."
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
565 (interactive)
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
566 (let ((str
91916
37418cd19627 (emacs-init-time): Use format instead of format-seconds.
Juri Linkov <juri@jurta.org>
parents: 91894
diff changeset
567 (format "%.1f seconds"
104796
e9f8f2b78f10 (emacs-uptime, emacs-init-time): Use float-time rather than time-to-seconds.
Glenn Morris <rgm@gnu.org>
parents: 104612
diff changeset
568 (float-time
91916
37418cd19627 (emacs-init-time): Use format instead of format-seconds.
Juri Linkov <juri@jurta.org>
parents: 91894
diff changeset
569 (time-subtract after-init-time before-init-time)))))
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 104796
diff changeset
570 (if (called-interactively-p 'interactive)
91894
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
571 (message "%s" str)
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
572 str)))
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
573
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
574 (provide 'time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
575
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 92088
diff changeset
576 ;; arch-tag: b9c1623f-b5cb-48e4-b650-482a4d23c5a6
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
577 ;;; time.el ends here