annotate lisp/time.el @ 2499:da67547eda51

* configure.in: When checking for X windows, search for an X11 subdirectory of ${x_includes}. * configure.in: Check for gettimeofday function, for getdate.y. Change `configure' to a mixture of custom code and autoconf stuff. autoconf can't derive all the information we need, but we'd really like to be able to take advantage of some of its tests, and its file-editing facilities. * configure.in: Renamed from configure. Quote the sections of shell script we want copied literally to the configure script. (compile): Initialize this to make the autoconf macros' code happy. Use AC_PROG_CC, AC_CONST, and AC_RETSIGTYPE instead of writing out code to do their jobs. Use autoconf to produce Makefile and src/config.h. Remove the Makefile-style comment that autoconf places at the top of src/config.h. (config_h_opts): Removed - no longer necessary. * Makefile.in (configname): Renamed to configuration. (CONFIG_CFLAGS): Renamed to DEFS. (CC, DEFS, C_SWITCH_SYSTEM, version, configuration): Adjusted to get values via autoload @cookies@. (libsrc_libs): Get this from autoconf. We used to do nothing about this. (${SUBDIR}): Pass DEFS to submakes instead of CONFIG_CFLAGS.
author Jim Blandy <jimb@redhat.com>
date Sat, 10 Apr 1993 06:02:36 +0000
parents d98c49df2acd
children e4bcdaa214b1
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
841
2cdce064065f entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
3 ;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
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
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; along with GNU Emacs; see the file COPYING. If not, write to
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22
2319
d98c49df2acd Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2293
diff changeset
23 ;;; Commentary:
d98c49df2acd Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2293
diff changeset
24
d98c49df2acd Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2293
diff changeset
25 ;;; Facilities to display current time/date and a new-mail indicator
d98c49df2acd Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2293
diff changeset
26 ;;; in the Emacs mode line. The single entry point is `display-time'.
d98c49df2acd Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2293
diff changeset
27
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 657
diff changeset
28 ;;; Code:
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29
132
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
30 (defvar display-time-mail-file nil
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
31 "*File name of mail inbox file, for indicating existence of new mail.
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
32 Default is system-dependent, and is the same as used by Rmail.")
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
33
268
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
34 ;;;###autoload
271
d548f9619751 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 268
diff changeset
35 (defconst display-time-day-and-date nil "\
268
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
36 *Non-nil means \\[display-time] should display day and date as well as time.")
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
37
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 (defvar display-time-process nil)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 (defvar display-time-interval 60
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 "*Seconds between updates of time in the mode line.")
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42
387
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
43 (defvar display-time-24hr-format nil
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
44 "Non-nill indicates time should be displayed as hh:mm, 0 <= hh <= 23.
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
45 Nil means 1 <= hh <= 12, and an AM/PM suffix is used.")
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
46
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 (defvar display-time-string nil)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 (defvar display-time-hook nil
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 "* List of functions to be called when the time is updated on the mode line.")
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
52 ;;;###autoload
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 (defun display-time ()
2293
6c5e38aeb94b * time.el (display-time): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 841
diff changeset
54 "Display current time, load level, and mail flag in mode line of each buffer.
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 Updates automatically every minute.
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 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
57 are displayed as well.
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 After each update, `display-time-hook' is run with `run-hooks'."
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 (interactive)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 (let ((live (and display-time-process
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 (eq (process-status display-time-process) 'run))))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 (if (not live)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (progn
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 (if display-time-process
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 (delete-process display-time-process))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 (or global-mode-string (setq global-mode-string '("")))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 (or (memq 'display-time-string global-mode-string)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (setq global-mode-string
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (append global-mode-string '(display-time-string))))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 (setq display-time-string "")
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 (setq display-time-process
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 (start-process "display-time" nil
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
73 (concat exec-directory "wakeup")
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 (int-to-string display-time-interval)))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 (process-kill-without-query display-time-process)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 (set-process-sentinel display-time-process 'display-time-sentinel)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 (set-process-filter display-time-process 'display-time-filter)))))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 (defun display-time-sentinel (proc reason)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 (or (eq (process-status proc) 'run)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 (setq display-time-string ""))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 ;; Force mode-line updates
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 (save-excursion (set-buffer (other-buffer)))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84 (set-buffer-modified-p (buffer-modified-p))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 (sit-for 0))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 (defun display-time-filter (proc string)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 (let ((time (current-time-string))
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
89 (load (condition-case ()
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
90 (if (zerop (car (load-average))) ""
387
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
91 (let ((str (format " %03d" (car (load-average)))))
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
92 (concat (substring str 0 -2) "." (substring str -2))))
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
93 (error "")))
132
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
94 (mail-spool-file (or display-time-mail-file
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
95 (getenv "MAIL")
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
96 (concat rmail-spool-directory
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
97 (or (getenv "LOGNAME")
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
98 (getenv "USER")
0cbdae7c532f *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 104
diff changeset
99 (user-login-name)))))
387
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
100 hour am-pm-flag)
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 (setq hour (read (substring time 11 13)))
387
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
102 (if (not display-time-24hr-format)
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
103 (progn
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
104 (setq am-pm-flag (if (>= hour 12) "pm" "am"))
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
105 (if (> hour 12)
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
106 (setq hour (- hour 12))
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
107 (if (= hour 0)
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
108 (setq hour 12))))
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
109 (setq am-pm-flag ""))
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 (setq display-time-string
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 (concat (format "%d" hour) (substring time 13 16)
387
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
112 am-pm-flag
8f76cc1e1067 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 271
diff changeset
113 load
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 (if (and (file-exists-p mail-spool-file)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 ;; file not empty?
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
116 (display-time-file-nonempty-p mail-spool-file))
104
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 " Mail"
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 "")))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 ;; Append the date if desired.
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 (if display-time-day-and-date
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 (setq display-time-string
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 (concat (substring time 0 11) display-time-string))))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123 (run-hooks 'display-time-hook)
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 ;; Force redisplay of all buffers' mode lines to be considered.
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 (save-excursion (set-buffer (other-buffer)))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 (set-buffer-modified-p (buffer-modified-p))
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 ;; Do redisplay right now, if no input pending.
b6fb5f9cb739 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128 (sit-for 0))
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
129
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
130 (defun display-time-file-nonempty-p (file)
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
131 (while (file-symlink-p file)
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
132 (setq file (file-symlink-p file)))
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 132
diff changeset
133 (> (nth 7 (file-attributes file)) 0))
657
fec3f9a1e3e5 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 387
diff changeset
134
fec3f9a1e3e5 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 387
diff changeset
135 ;;; time.el ends here