annotate lisp/time.el @ 24419:30e478cd167e

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