annotate lisp/time.el @ 98007:883843ca3292

* verilog-mode.el (verilog-library-extensions): Enable .sv filename extensions to call verilog-mode. (verilog-auto, verilog-auto-inst, verilog-faq) (verilog-submit-bug-report): Update author support URLs. (verilog-delete-auto, verilog-auto-inout-module) (verilog-auto-inout-comp, verilog-auto): Add AUTOINOUTCOMP for creating complemented testbench modules. Suggested by Yishay Belkind. (verilog-auto-inst-port, verilog-simplify-range-expression): When verilog-auto-inst-param-value is set, don't require a AUTO_TEMPLATE to expand parameter substitutions. Suggested by Yishay Belkind. (verilog-auto-inst-param-value): Add safe variable. (verilog-re-search-forward, verilog-re-search-backward): Fix returning wrong search results on Emacs 22.1. (verilog-modi-cache-results, verilog-auto): Fix warning message about "toggling font-lock-mode." (verilog-auto): Fix loosing font-lock on errors. (verilog-auto-inst-param-value, verilog-mode-version) (verilog-mode-version-date, verilog-read-inst-param-value) (verilog-auto-inst, verilog-auto-inst-param) (verilog-auto-inst-port, verilog-simplify-range-expression): Allow parameters to be replaced with their values, on the expansion of an AUTOINST with Verilog 2001 style parameter settings. Suggested by David Rogoff. * verilog-mode.el (verilog-beg-block-re-ordered, verilog-calc-1): Better support for the property statement. Sometimes this keyword introduces a statement which requires an endproperty keyword, and sometimes it doesn't, dependening on the work before the property word. If property is prefixed with assert, assume or cover keyword, then the statement is ended with a ';' Otherwise, property is like task or specify, and is followed by some number of statements, which are ended with an endproperty keyword. (electric-verilog-tab): Support Emacs 22.2 style handling of tab in a highlighted region: indent each line in region according to mode. Supply this so it works in XEmacs and older Emacs.
author Dan Nicolaescu <dann@ics.uci.edu>
date Fri, 05 Sep 2008 22:13:55 +0000
parents ee5932bf781d
children d42aff5ca541
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,
79721
73661ddc7ac7 Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78236
diff changeset
4 ;; 2003, 2004, 2005, 2006, 2007, 2008 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
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
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
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
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
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
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
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
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
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
68 past 15 minutes. The default is to display 1 minute load average."
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
69 :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
70 (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
71 (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
72 (const :tag "None" nil))
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
73 :group 'display-time)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
74
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
75 (defvar display-time-load-average nil
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
76 "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
77
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
78 (defcustom display-time-load-average-threshold 0.1
42494
35eeafd85667 (display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents: 42261
diff changeset
79 "*Load-average values below this value won't be shown in the mode line."
35eeafd85667 (display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents: 42261
diff changeset
80 :type 'number
35eeafd85667 (display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents: 42261
diff changeset
81 :group 'display-time)
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
82
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
83 ;;;###autoload
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
84 (defcustom display-time-day-and-date nil "\
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
85 *Non-nil means \\[display-time] should display day and date as well as time."
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
86 :type 'boolean
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
87 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
88
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
89 (defvar display-time-timer nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
90
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
91 (defcustom display-time-interval 60
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
92 "*Seconds between updates of time in the mode line."
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
93 :type 'integer
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
94 :group 'display-time)
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-24hr-format nil
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
97 "*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
98 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
99 :type 'boolean
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
100 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
101
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
102 (defvar display-time-string nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
103
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
104 (defcustom display-time-hook nil
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
105 "*List of functions to be called when the time is updated on the mode line."
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
106 :type 'hook
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
107 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
108
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
109 (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
110 "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
111 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
112
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
113 (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
114 '(("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
115 ("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
116 ("Europe/London" "London")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
117 ("Europe/Paris" "Paris")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
118 ("Asia/Calcutta" "Bangalore")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
119 ("Asia/Tokyo" "Tokyo"))
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
120 "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
121 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
122 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
123 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
124 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
125 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
126 :group 'display-time
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
127 :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
128 :version "23.1")
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
129
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
130 (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
131 '(("PST8PDT" "Seattle")
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
132 ("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
133 ("GMT0BST" "London")
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
134 ("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
135 ("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
136 ("JST-9" "Tokyo"))
85689
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
137 "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
138 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
139 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
140
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
141 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
142
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
143 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
144 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
145 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
146 :group 'display-time
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
147 :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
148 :version "23.1")
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
149
f72f7930bbb5 (zoneinfo-style-world-list, legacy-style-world-list): New defcustoms.
Eli Zaretskii <eliz@gnu.org>
parents: 85425
diff changeset
150 (defcustom display-time-world-list
85803
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
151 ;; 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
152 ;; 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
153 (let (gmt nyt)
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
154 (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
155 (setq nyt (format-time-string "%z"))
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
156 (set-time-zone-rule "Europe/London")
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
157 (setq gmt (format-time-string "%z"))
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
158 (set-time-zone-rule nil)
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
159 (if (string-equal nyt gmt)
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
160 legacy-style-world-list
05d1905f2a7a (display-time-world-list): Test for zoneinfo support.
Jason Rumney <jasonr@gnu.org>
parents: 85696
diff changeset
161 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
162 "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
163 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
164 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
165 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
166 \`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
167 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
168 :group 'display-time
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
169 :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
170 :version "23.1")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
171
85425
e7618e76351a (display-time-world-time-format): Display day # not month #.
Richard M. Stallman <rms@gnu.org>
parents: 82939
diff changeset
172 (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
173 "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
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 '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
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
178 (defcustom display-time-world-buffer-name "*wclock*"
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
179 "Name of the wclock buffer."
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-timer-enable t
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
185 "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
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 'boolean
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-second 60
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
191 "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
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 'integer
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 (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
197 (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
198 (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
199 map)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
200 "Keymap of 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
201
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
202 ;;;###autoload
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
203 (defun display-time ()
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
204 "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
205 This display updates automatically every minute.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
206 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
207 are displayed as well.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
208 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
209 (interactive)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
210 (display-time-mode 1))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
211
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
212 ;; 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
213 ;; 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
214 ;; image with a transparent background. Otherwise, set the background
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
215 ;; for pbm.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
216
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
217 (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
218 "Face to use for `display-time-mail-string'.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
219 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
220 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
221 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
222 :group 'mode-line-faces
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
223 :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
224 :version "22.1"
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
225 :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
226
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
227 (defvar display-time-mail-icon
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
228 (find-image '((:type xpm :file "letter.xpm" :ascent center)
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
229 (:type pbm :file "letter.pbm" :ascent center)))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
230 "Image specification to offer as the mail indicator on a graphic display.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
231 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
232
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
233 ;; 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
234 (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
235 "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
236 Otherwise use `display-time-mail-string'. The icon may consume less
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
237 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
238 :group 'display-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
239 :type 'boolean)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
240
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
241 ;; Fixme: maybe default to the character if we can display Unicode.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
242 (defcustom display-time-mail-string "Mail"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
243 "String to use as the mail indicator in `display-time-string-forms'.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
244 This can use the Unicode letter character if you can display it."
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
245 :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
246 :version "22.1"
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
247 :type '(choice (const "Mail")
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
248 ;; Use :tag here because the Lucid menu won't display
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
249 ;; multibyte text.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
250 (const :tag "Unicode letter character" "✉")
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
251 string))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
252
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
253 (defcustom display-time-format nil
64903
7d23835637c8 (display-time-use-mail-icon, display-time-format)
Luc Teirlinck <teirllm@auburn.edu>
parents: 64762
diff changeset
254 "*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
255 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
256 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
257 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
258 :type '(choice (const :tag "Default" nil)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
259 string)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
260 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
261
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
262 (defcustom display-time-string-forms
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
263 '((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
264 (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
265 "")
54434
de3c77f25914 (display-time-string-forms): Add help-echo with date on time.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
266 (propertize
de3c77f25914 (display-time-string-forms): Add help-echo with date on time.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 52401
diff changeset
267 (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
268 (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
269 now)
54525
b928269daf24 (display-time-string-forms): Fix help-echo date format.
Juri Linkov <juri@jurta.org>
parents: 54434
diff changeset
270 '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
271 load
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
272 (if mail
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
273 ;; Build the string every time to act on customization.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
274 ;; :set-after doesn't help for `customize-option'. I think it
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
275 ;; should.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
276 (concat
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
277 " "
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
278 (propertize
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
279 display-time-mail-string
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
280 'display `(when (and display-time-use-mail-icon
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
281 (display-graphic-p))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
282 ,@display-time-mail-icon
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
283 ,@(if (and display-time-mail-face
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
284 (memq (plist-get (cdr display-time-mail-icon)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
285 :type)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
286 '(pbm xbm)))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
287 (let ((bg (face-attribute display-time-mail-face
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
288 :background)))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
289 (if (stringp bg)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
290 (list :background bg)))))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
291 'face display-time-mail-face
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
292 '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
293 'mouse-face 'mode-line-highlight
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
294 'local-map (make-mode-line-mouse-map 'mouse-2
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
295 read-mail-command)))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
296 ""))
64903
7d23835637c8 (display-time-use-mail-icon, display-time-format)
Luc Teirlinck <teirllm@auburn.edu>
parents: 64762
diff changeset
297 "*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
298 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
299 which is a more standard interface.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
300
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
301 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
302 `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
303 `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
304 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
305
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
306 For example, the form
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
307
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
308 '((substring year -2) \"/\" month \"/\" day
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
309 \" \" 24-hours \":\" minutes \":\" seconds
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
310 (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
311 (if mail \" Mail\" \"\"))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
312
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
313 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
314 :type 'sexp
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
315 :group 'display-time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
316
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
317 (defun display-time-event-handler ()
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
318 (display-time-update)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
319 ;; 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
320 (sit-for 0)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
321 (let* ((current (current-time))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
322 (timer display-time-timer)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
323 ;; 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
324 (next-time (timer-relative-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
325 (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
326 (* 5 (aref timer 4)) 0)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
327 ;; 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
328 ;; 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
329 ;; 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
330 (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
331 (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
332 (> (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
333 (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
334 (= (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
335 (> (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
336 (progn
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
337 (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
338 current display-time-interval)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
339 display-time-interval)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
340 (timer-activate timer)))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
341
42261
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
342 (defun display-time-next-load-average ()
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
343 (interactive)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
344 (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
345 (setq display-time-load-average 0))
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
346 (display-time-update)
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
347 (sit-for 0))
4f42109edd02 (display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents: 38759
diff changeset
348
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
349 (defun display-time-mail-check-directory ()
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
350 (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
351 (size 0))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
352 (while (and mail-files (= size 0))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
353 ;; Count size of regular files only.
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
354 (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
355 (nth 7 (file-attributes (car mail-files))))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
356 0)))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
357 (setq mail-files (cdr mail-files)))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
358 (if (> size 0)
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
359 size
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
360 nil)))
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
361
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
362 (defun display-time-update ()
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
363 "Update the display-time info for the mode line.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
364 However, don't redisplay right now.
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
365
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
366 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
367 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
368 (let* ((now (current-time))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
369 (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
370 (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
371 ""
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
372 (condition-case ()
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
373 ;; 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
374 ;; `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
375 (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
376 (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
377 ""
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
378 ;; 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
379 ;; provide some help.
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
380 (let ((str (format " %03d"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
381 (nth display-time-load-average
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
382 (load-average)))))
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
383 (propertize
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
384 (concat (substring str 0 -2) "." (substring str -2))
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
385 'local-map (make-mode-line-mouse-map
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
386 '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
387 'mouse-face 'mode-line-highlight
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
388 'help-echo (concat
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
389 "System load average for past "
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
390 (if (= 0 display-time-load-average)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
391 "1 minute"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
392 (if (= 1 display-time-load-average)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
393 "5 minutes"
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
394 "15 minutes"))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
395 "; mouse-2: next"))))
47486
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
396 (error ""))))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
397 (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
398 (getenv "MAIL")
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
399 (concat rmail-spool-directory
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
400 (user-login-name))))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
401 (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
402 (funcall display-time-mail-function))
42998
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
403 (and display-time-mail-directory
144c91651228 (display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents: 42838
diff changeset
404 (display-time-mail-check-directory))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
405 (and (stringp mail-spool-file)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
406 (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
407 ;; 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
408 (> (- (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
409 1200)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
410 (and (< (nth 1 now) display-time-server-down-time)
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
411 (> (- (nth 1 now)
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
412 display-time-server-down-time)
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
413 -64336)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
414 (let ((start-time (current-time)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
415 (prog1
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
416 (display-time-file-nonempty-p mail-spool-file)
50395
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
417 (if (> (- (nth 1 (current-time))
5dd79184bc3a Doc fixes.
Dave Love <fx@gnu.org>
parents: 49781
diff changeset
418 (nth 1 start-time))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
419 20)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
420 ;; 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
421 (setq display-time-server-down-time
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
422 (nth 1 (current-time)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
423 ;; Record that mail file is accessible.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
424 (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
425 (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
426 (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
427 (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
428 (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
429 (minutes (substring time 14 16))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
430 (seconds (substring time 17 19))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
431 (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
432 (day (substring time 8 10))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
433 (year (substring time 20 24))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
434 (monthname (substring time 4 7))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
435 (month
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
436 (cdr
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
437 (assoc
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
438 monthname
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
439 '(("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
440 ("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
441 ("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
442 (dayname (substring time 0 3)))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
443 (setq display-time-string
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
444 (mapconcat 'eval display-time-string-forms ""))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
445 ;; 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
446 ;; what variables are available.
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
447 (run-hooks 'display-time-hook))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
448 (force-mode-line-update))
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
449
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
450 (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
451 (and (file-exists-p file)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
452 (< 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
453
31980
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
454 ;;;###autoload
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
455 (define-minor-mode display-time-mode
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
456 "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
457 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
458
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
459 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
460 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
461 are displayed as well.
ceb42baae241 (display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29706
diff changeset
462 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
463 :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
464 (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
465 (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
466 (setq display-time-string "")
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
467 (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
468 (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
469 (if display-time-mode
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
470 (progn
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
471 (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
472 (setq global-mode-string
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
473 (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
474 ;; 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
475 (setq display-time-timer
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
476 (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
477 'display-time-event-handler))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
478 ;; 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
479 (display-time-update)
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
480 ;; 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
481 (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
482 'display-time-event-handler))
19084a962da7 (display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents: 45041
diff changeset
483 (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
484 'display-time-event-handler)))
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
485
82939
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
486
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
487 (defun 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
488 "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
489 See `display-time-world'."
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
490 (interactive)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
491 (kill-all-local-variables)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
492 (setq
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
493 major-mode '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
494 mode-name "World clock")
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
495 (use-local-map 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
496
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
497 (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
498 "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
499 (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
500 (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
501 (erase-buffer)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
502 (let ((max-width 0)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
503 (result ()))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
504 (unwind-protect
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
505 (dolist (zone alist)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
506 (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
507 (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
508 (set-time-zone-rule (car zone))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
509 (setq result
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
510 (append result
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
511 (list
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
512 label width
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
513 (format-time-string display-time-world-time-format))))
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))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
517 (while result
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
518 (insert (pop result)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
519 (make-string (1+ (- max-width (pop result))) ?\s)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
520 (pop result) "\n")))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
521 (delete-backward-char 1)))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
522
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
523 ;;;###autoload
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
524 (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
525 "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
526 `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
527 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
528 (interactive)
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
529 (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
530 (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
531 (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
532 (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
533 (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
534 (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
535 (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
536 (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
537
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
538 (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
539 (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
540 (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
541 (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
542 ;; cancel timer
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
543 (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
544 (while list
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
545 (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
546 (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
547 (cancel-timer elt)))))))
f1ad11ae7c01 New feature to display several time zones in a buffer.
Richard M. Stallman <rms@gnu.org>
parents: 78236
diff changeset
548
91862
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
549 ;;;###autoload
91864
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
550 (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
551 "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
552 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
553 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
554 (interactive)
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
555 (let ((str
91864
c4522ed32e3a (emacs-uptime): Add optional `format' argument. Doc fix. Use `%z'
Glenn Morris <rgm@gnu.org>
parents: 91862
diff changeset
556 (format-seconds (or format "%Y, %D, %H, %M, %z%S")
91862
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
557 (time-to-seconds
91884
927a69bb381a (emacs-uptime): Use before-init-time rather than emacs-startup-time.
Glenn Morris <rgm@gnu.org>
parents: 91864
diff changeset
558 (time-subtract (current-time) before-init-time)))))
91862
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
559 (if (interactive-p)
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
560 (message "%s" str)
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
561 str)))
af26df6df4a9 (emacs-uptime): Move here from time-date.el.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
562
91894
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
563 ;;;###autoload
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
564 (defun emacs-init-time ()
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
565 "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
566 (interactive)
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
567 (let ((str
91916
37418cd19627 (emacs-init-time): Use format instead of format-seconds.
Juri Linkov <juri@jurta.org>
parents: 91894
diff changeset
568 (format "%.1f seconds"
37418cd19627 (emacs-init-time): Use format instead of format-seconds.
Juri Linkov <juri@jurta.org>
parents: 91894
diff changeset
569 (time-to-seconds
37418cd19627 (emacs-init-time): Use format instead of format-seconds.
Juri Linkov <juri@jurta.org>
parents: 91894
diff changeset
570 (time-subtract after-init-time before-init-time)))))
91894
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
571 (if (interactive-p)
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
572 (message "%s" str)
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
573 str)))
8172ec5d2dd0 (emacs-init-time): New function.
Juri Linkov <juri@jurta.org>
parents: 91884
diff changeset
574
29706
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
575 (provide 'time)
1030e638c8dd Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 29693
diff changeset
576
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 92088
diff changeset
577 ;; 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
578 ;;; time.el ends here