Mercurial > emacs
annotate lisp/calendar/appt.el @ 67086:7ae3d744378e
(Custom-reset-standard): Make it handle Custom group
buffers correctly. (It used to throw an error in such buffers.)
Make it ask for confirmation in group buffers and other Custom
buffers containing more than one customization item.
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Tue, 22 Nov 2005 23:28:28 +0000 |
parents | 6240d2f08018 |
children | a55ee709ec8d 5e2d3828e89f |
rev | line source |
---|---|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
30538
diff
changeset
|
1 ;;; appt.el --- appointment notification functions |
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
179
diff
changeset
|
2 |
66007
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
3 ;; Copyright (C) 1989, 1990, 1994, 1998, 2004, 2005 Free Software Foundation, Inc. |
846
20674ae6bf52
*** empty log message ***
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:
777
diff
changeset
|
5 ;; Author: Neil Mager <neilm@juliet.ll.mit.edu> |
65919
5c09efcfc1d9
Update maintainer email address.
Glenn Morris <rgm@gnu.org>
parents:
65840
diff
changeset
|
6 ;; Maintainer: Glenn Morris <rgm@gnu.org> |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
7 ;; Keywords: calendar |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
8 |
179 | 9 ;; This file is part of GNU Emacs. |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; 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:
777
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
179 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64085 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
179 | 25 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
26 ;;; Commentary: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
27 |
179 | 28 ;; |
29 ;; appt.el - visible and/or audible notification of | |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
30 ;; appointments from diary file. |
179 | 31 ;; |
32 ;;; | |
28404 | 33 ;;; Thanks to Edward M. Reingold for much help and many suggestions, |
179 | 34 ;;; And to many others for bug fixes and suggestions. |
35 ;;; | |
36 ;;; | |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
37 ;;; This functions in this file will alert the user of a |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
38 ;;; pending appointment based on his/her diary file. This package |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
39 ;;; is documented in the Emacs manual. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
40 ;;; |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
41 ;;; To activate this package, simply use (appt-activate 1). |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
42 ;;; A `diary-file' with appointments of the format described in the |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
43 ;;; documentation of the function `appt-check' is required. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
44 ;;; Relevant customizable variables are also listed in the |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
45 ;;; documentation of that function. |
54070
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
46 ;;; |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
47 ;;; Today's appointment list is initialized from the diary when this |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
48 ;;; package is activated. Additionally, the appointments list is |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
49 ;;; recreated automatically at 12:01am for those who do not logout |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
50 ;;; every day or are programming late. It is also updated when the |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
51 ;;; `diary-file' is saved. Calling `appt-check' with an argument forces |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
52 ;;; a re-initialization at any time. |
179 | 53 ;;; |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
54 ;;; In order to add or delete items from today's list, without |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
55 ;;; changing the diary file, use `appt-add' and `appt-delete'. |
179 | 56 ;;; |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
57 |
28404 | 58 ;;; Brief internal description - Skip this if you are not interested! |
179 | 59 ;;; |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
60 ;;; The function `appt-make-list' creates the appointments list which |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
61 ;;; `appt-check' reads. |
179 | 62 ;;; |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
63 ;;; You can change the way the appointment window is created/deleted by |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
64 ;;; setting the variables |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
65 ;;; |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
66 ;;; appt-disp-window-function |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
67 ;;; and |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
68 ;;; appt-delete-window-function |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
69 ;;; |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
70 ;;; For instance, these variables could be set to functions that display |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
71 ;;; appointments in pop-up frames, which are lowered or iconified after |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
72 ;;; `appt-display-interval' minutes. |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
73 ;;; |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
74 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
75 ;;; Code: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
76 |
8500 | 77 ;; Make sure calendar is loaded when we compile this. |
78 (require 'calendar) | |
79 | |
179 | 80 |
957 | 81 ;;;###autoload |
53562
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
82 (defcustom appt-issue-message t |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
83 "*Non-nil means check for appointments in the diary buffer. |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
84 To be detected, the diary entry must have the format described in the |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
85 documentation of the function `appt-check'." |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
86 :type 'boolean |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
87 :group 'appt) |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
88 |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
89 (make-obsolete-variable 'appt-issue-message |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
90 "use the function `appt-activate', and the \ |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
55559
diff
changeset
|
91 variable `appt-display-format' instead." "22.1") |
53562
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
92 |
8014694c2be8
(appt-issue-message): Mark as obsolete rather than deleting outright.
Glenn Morris <rgm@gnu.org>
parents:
53556
diff
changeset
|
93 ;;;###autoload |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
94 (defcustom appt-message-warning-time 12 |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
95 "*Time in minutes before an appointment that the warning begins." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
96 :type 'integer |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
97 :group 'appt) |
179 | 98 |
957 | 99 ;;;###autoload |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
100 (defcustom appt-audible t |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
101 "*Non-nil means beep to indicate appointment." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
102 :type 'boolean |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
103 :group 'appt) |
179 | 104 |
957 | 105 ;;;###autoload |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
106 (defcustom appt-visible t |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
107 "*Non-nil means display appointment message in echo area. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
108 This variable is only relevant if `appt-msg-window' is nil." |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
109 :type 'boolean |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
110 :group 'appt) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
111 |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
55559
diff
changeset
|
112 (make-obsolete-variable 'appt-visible 'appt-display-format "22.1") |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
113 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
114 ;;;###autoload |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
115 (defcustom appt-msg-window t |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
116 "*Non-nil means display appointment message in another window. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
117 If non-nil, this variable overrides `appt-visible'." |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
118 :type 'boolean |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
119 :group 'appt) |
179 | 120 |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
55559
diff
changeset
|
121 (make-obsolete-variable 'appt-msg-window 'appt-display-format "22.1") |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
122 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
123 ;; TODO - add popup. |
54070
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
124 (defcustom appt-display-format 'ignore |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
125 "How appointment reminders should be displayed. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
126 The options are: |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
127 window - use a separate window |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
128 echo - use the echo area |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
129 nil - no visible reminder. |
54070
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
130 See also `appt-audible' and `appt-display-mode-line'. |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
131 |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
132 The default value is 'ignore, which means to fall back on the value |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
133 of the (obsolete) variables `appt-msg-window' and `appt-visible'." |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
134 :type '(choice |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
135 (const :tag "Separate window" window) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
136 (const :tag "Echo-area" echo) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
137 (const :tag "No visible display" nil)) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
138 :group 'appt |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
55559
diff
changeset
|
139 :version "22.1") |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
140 |
957 | 141 ;;;###autoload |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
142 (defcustom appt-display-mode-line t |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
143 "*Non-nil means display minutes to appointment and time on the mode line. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
144 This is in addition to any other display of appointment messages." |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
145 :type 'boolean |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
146 :group 'appt) |
179 | 147 |
957 | 148 ;;;###autoload |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
149 (defcustom appt-display-duration 10 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
150 "*The number of seconds an appointment message is displayed. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
151 Only relevant if reminders are to be displayed in their own window." |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
152 :type 'integer |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
153 :group 'appt) |
179 | 154 |
957 | 155 ;;;###autoload |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
156 (defcustom appt-display-diary t |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
157 "*Non-nil displays the diary when the appointment list is first initialized. |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
158 This will occur at midnight when the appointment list is updated." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
159 :type 'boolean |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
160 :group 'appt) |
179 | 161 |
17624
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
162 (defcustom appt-display-interval 3 |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
163 "*Number of minutes to wait between checking the appointment list." |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
164 :type 'integer |
7634c31da26e
Add defgroup and use defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
15679
diff
changeset
|
165 :group 'appt) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
166 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
167 (defcustom appt-disp-window-function 'appt-disp-window |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
168 "Function called to display appointment window. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
169 Only relevant if reminders are being displayed in a window." |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
170 :type '(choice (const appt-disp-window) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
171 function) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
172 :group 'appt) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
173 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
174 (defcustom appt-delete-window-function 'appt-delete-window |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
175 "Function called to remove appointment window and buffer. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
176 Only relevant if reminders are being displayed in a window." |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
177 :type '(choice (const appt-delete-window) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
178 function) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
179 :group 'appt) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
180 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
181 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
182 ;;; Internal variables below this point. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
183 |
61140 | 184 (defconst appt-buffer-name " *appt-buf*" |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
185 "Name of the appointments buffer.") |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
186 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
187 (defvar appt-time-msg-list nil |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
188 "The list of appointments for today. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
189 Use `appt-add' and `appt-delete' to add and delete appointments. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
190 The original list is generated from today's `diary-entries-list', and |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
191 can be regenerated using the function `appt-check'. |
60225
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
192 Each element of the generated list has the form (MINUTES STRING [FLAG]); where |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
193 MINUTES is the time in minutes of the appointment after midnight, and |
60225
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
194 STRING is the description of the appointment. |
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
195 FLAG, if non-nil, says that the element was made with `appt-add' |
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
196 so calling `appt-make-list' again should preserve it.") |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
197 |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
198 (defconst appt-max-time (1- (* 24 60)) |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
199 "11:59pm in minutes - number of minutes in a day minus 1.") |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
200 |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
201 (defvar appt-mode-string nil |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
202 "String being displayed in the mode line saying you have an appointment. |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
203 The actual string includes the amount of time till the appointment. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
204 Only used if `appt-display-mode-line' is non-nil.") |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
205 |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
206 (defvar appt-prev-comp-time nil |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
207 "Time of day (mins since midnight) at which we last checked appointments. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
208 A nil value forces the diary file to be (re-)checked for appointments.") |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
209 |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
210 (defvar appt-now-displayed nil |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
211 "Non-nil when we have started notifying about a appointment that is near.") |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
212 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
213 (defvar appt-display-count nil |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
214 "Internal variable used to count number of consecutive reminders.") |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
215 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
216 (defvar appt-timer nil |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
217 "Timer used for diary appointment notifications (`appt-check'). |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
218 If this is non-nil, appointment checking is active.") |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
219 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
220 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
221 ;;; Functions. |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
222 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
223 (defun appt-display-message (string mins) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
224 "Display a reminder about an appointment. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
225 The string STRING describes the appointment, due in integer MINS minutes. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
226 The format of the visible reminder is controlled by `appt-display-format'. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
227 The variable `appt-audible' controls the audible reminder." |
54070
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
228 ;; let binding for backwards compatability. Remove when obsolete |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
229 ;; vars appt-msg-window and appt-visible are dropped. |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
230 (let ((appt-display-format |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
231 (if (eq appt-display-format 'ignore) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
232 (cond (appt-msg-window 'window) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
233 (appt-visible 'echo)) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
234 appt-display-format))) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
235 (cond ((eq appt-display-format 'window) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
236 (funcall appt-disp-window-function |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
237 (number-to-string mins) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
238 (format-time-string "%a %b %e " (current-time)) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
239 string) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
240 (run-at-time (format "%d sec" appt-display-duration) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
241 nil |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
242 appt-delete-window-function)) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
243 ((eq appt-display-format 'echo) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
244 (message "%s" string))) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
245 (if appt-audible (beep 1)))) |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
246 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
247 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
248 (defun appt-check (&optional force) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
249 "Check for an appointment and update any reminder display. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
250 If optional argument FORCE is non-nil, reparse the diary file for |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
251 appointments. Otherwise the diary file is only parsed once per day, |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
252 and when saved. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
253 |
179 | 254 Note: the time must be the first thing in the line in the diary |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
255 for a warning to be issued. The format of the time can be either |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
256 24 hour or am/pm. For example: |
179 | 257 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
258 02/23/89 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
259 18:00 Dinner |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
260 |
179 | 261 Thursday |
262 11:45am Lunch meeting. | |
263 | |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
264 Appointments are checked every `appt-display-interval' minutes. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
265 The following variables control appointment notification: |
179 | 266 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
267 `appt-display-format' |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
268 Controls the format in which reminders are displayed. |
179 | 269 |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
270 `appt-audible' |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
271 Variable used to determine if reminder is audible. |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
272 Default is t. |
179 | 273 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
274 `appt-message-warning-time' |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
275 Variable used to determine when appointment message |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
276 should first be displayed. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
277 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
278 `appt-display-mode-line' |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
279 If non-nil, a generic message giving the time remaining |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
280 is shown in the mode-line when an appointment is due. |
179 | 281 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
282 `appt-display-interval' |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
283 Interval in minutes at which to check for pending appointments. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
284 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
285 `appt-display-diary' |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
286 Display the diary buffer when the appointment list is |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
287 initialized for the first time in a day. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
288 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
289 The following variables are only relevant if reminders are being |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
290 displayed in a window: |
179 | 291 |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
292 `appt-display-duration' |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
293 The number of seconds an appointment message is displayed. |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
294 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
295 `appt-disp-window-function' |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
296 Function called to display appointment window. |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
297 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
298 `appt-delete-window-function' |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
299 Function called to remove appointment window and buffer." |
179 | 300 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
301 (let* ((min-to-app -1) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
302 (prev-appt-mode-string appt-mode-string) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
303 (prev-appt-display-count (or appt-display-count 0)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
304 ;; Non-nil means do a full check for pending appointments |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
305 ;; and display in whatever ways the user has selected. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
306 ;; When no appointment is being displayed, |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
307 ;; we always do a full check. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
308 (full-check |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
309 (or (not appt-now-displayed) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
310 ;; This is true every appt-display-interval minutes. |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
311 (zerop (mod prev-appt-display-count appt-display-interval)))) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
312 ;; Non-nil means only update the interval displayed in the mode line. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
313 (mode-line-only |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
314 (and (not full-check) appt-now-displayed))) |
179 | 315 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
316 (when (or full-check mode-line-only) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
317 (save-excursion |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
318 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
319 ;; Get the current time and convert it to minutes |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
320 ;; from midnight. ie. 12:01am = 1, midnight = 0. |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
321 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
322 (let* ((now (decode-time)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
323 (cur-hour (nth 2 now)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
324 (cur-min (nth 1 now)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
325 (cur-comp-time (+ (* cur-hour 60) cur-min))) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
326 |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
327 ;; At the first check in any given day, update our |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
328 ;; appointments to today's list. |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
329 |
54535
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
330 (if (or force ; eg initialize, diary save |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
331 (null appt-prev-comp-time) ; first check |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
332 (< cur-comp-time appt-prev-comp-time)) ; new day |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
333 (condition-case nil |
54535
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
334 (if appt-display-diary |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
335 (let ((diary-hook |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
336 (if (assoc 'appt-make-list diary-hook) |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
337 diary-hook |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
338 (cons 'appt-make-list diary-hook)))) |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
339 (diary)) |
66007
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
340 (let* ((diary-display-hook 'appt-make-list) |
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
341 (d-buff (find-buffer-visiting |
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
342 (substitute-in-file-name diary-file))) |
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
343 (selective |
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
344 (if d-buff ; Diary buffer exists. |
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
345 (with-current-buffer d-buff |
6240d2f08018
(appt-check): Use diary-selective-display var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
65919
diff
changeset
|
346 diary-selective-display)))) |
54535
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
347 (diary) |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
348 ;; If the diary buffer existed before this command, |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
349 ;; restore its display state. Otherwise, kill it. |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
350 (if d-buff |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
351 ;; Displays the diary buffer. |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
352 (or selective (show-all-diary-entries)) |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
353 (and |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
354 (setq d-buff (find-buffer-visiting |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
355 (substitute-in-file-name diary-file))) |
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
356 (kill-buffer d-buff))))) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
357 (error nil))) |
23124
176e4901705d
(appt-check): Clear appt-mode-string if we don't put something in it.
Karl Heuer <kwzh@gnu.org>
parents:
23123
diff
changeset
|
358 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
359 (setq appt-prev-comp-time cur-comp-time |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
360 appt-mode-string nil |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
361 appt-display-count nil) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
362 |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
363 ;; If there are entries in the list, and the |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
364 ;; user wants a message issued, |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
365 ;; get the first time off of the list |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
366 ;; and calculate the number of minutes until the appointment. |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
367 |
53643
761988ba350d
(appt-check): Restore usage of appt-issue-message deleted in previous
Glenn Morris <rgm@gnu.org>
parents:
53562
diff
changeset
|
368 (if (and appt-issue-message appt-time-msg-list) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
369 (let ((appt-comp-time (car (car (car appt-time-msg-list))))) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
370 (setq min-to-app (- appt-comp-time cur-comp-time)) |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
371 |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
372 (while (and appt-time-msg-list |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
373 (< appt-comp-time cur-comp-time)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
374 (setq appt-time-msg-list (cdr appt-time-msg-list)) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
375 (if appt-time-msg-list |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
376 (setq appt-comp-time |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
377 (car (car (car appt-time-msg-list)))))) |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
378 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
379 ;; If we have an appointment between midnight and |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
380 ;; 'appt-message-warning-time' minutes after midnight, |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
381 ;; we must begin to issue a message before midnight. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
382 ;; Midnight is considered 0 minutes and 11:59pm is |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
383 ;; 1439 minutes. Therefore we must recalculate the minutes |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
384 ;; to appointment variable. It is equal to the number of |
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
385 ;; minutes before midnight plus the number of |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
386 ;; minutes after midnight our appointment is. |
179 | 387 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
388 (if (and (< appt-comp-time appt-message-warning-time) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
389 (> (+ cur-comp-time appt-message-warning-time) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
390 appt-max-time)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
391 (setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
392 appt-comp-time)) |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
393 |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
394 ;; issue warning if the appointment time is |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
395 ;; within appt-message-warning time |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
396 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
397 (when (and (<= min-to-app appt-message-warning-time) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
398 (>= min-to-app 0)) |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
399 (setq appt-now-displayed t |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
400 appt-display-count (1+ prev-appt-display-count)) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
401 (unless mode-line-only |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
402 (appt-display-message (cadr (car appt-time-msg-list)) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
403 min-to-app)) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
404 (when appt-display-mode-line |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
405 (setq appt-mode-string |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
406 (format " App't in %s min." min-to-app))) |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
407 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
408 ;; When an appointment is reached, |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
409 ;; delete it from the list. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
410 ;; Reset the count to 0 in case we display another |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
411 ;; appointment on the next cycle. |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
412 (if (zerop min-to-app) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
413 (setq appt-time-msg-list (cdr appt-time-msg-list) |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
414 appt-display-count nil))))) |
5034
c7badee38b64
(appt-display-interval): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
957
diff
changeset
|
415 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
416 ;; If we have changed the mode line string, |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
417 ;; redisplay all mode lines. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
418 (and appt-display-mode-line |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
419 (not (equal appt-mode-string |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
420 prev-appt-mode-string)) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
421 (progn |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
422 (force-mode-line-update t) |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
423 ;; If the string now has a notification, |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
424 ;; redisplay right now. |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
425 (if appt-mode-string |
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
426 (sit-for 0))))))))) |
179 | 427 |
428 | |
429 (defun appt-disp-window (min-to-app new-time appt-msg) | |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
430 "Display appointment message APPT-MSG in a separate buffer. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
431 The appointment is due in MIN-TO-APP (a string) minutes. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
432 NEW-TIME is a string giving the date." |
179 | 433 (require 'electric) |
434 | |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
435 ;; Make sure we're not in the minibuffer |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
436 ;; before splitting the window. |
179 | 437 |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
438 (if (equal (selected-window) (minibuffer-window)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
439 (if (other-window 1) |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
440 (select-window (other-window 1)) |
30538
c44ca494d993
(appt-disp-window): Use display-multi-frame-p
Eli Zaretskii <eliz@gnu.org>
parents:
30001
diff
changeset
|
441 (if (display-multi-frame-p) |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
442 (select-frame (other-frame 1))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
443 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
444 (let ((this-window (selected-window)) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
445 (appt-disp-buf (set-buffer (get-buffer-create appt-buffer-name)))) |
179 | 446 |
9413
e54eede71446
(appt-delete-window): Look on all frames for the window.
Richard M. Stallman <rms@gnu.org>
parents:
8500
diff
changeset
|
447 (if (cdr (assq 'unsplittable (frame-parameters))) |
e54eede71446
(appt-delete-window): Look on all frames for the window.
Richard M. Stallman <rms@gnu.org>
parents:
8500
diff
changeset
|
448 ;; In an unsplittable frame, use something somewhere else. |
e54eede71446
(appt-delete-window): Look on all frames for the window.
Richard M. Stallman <rms@gnu.org>
parents:
8500
diff
changeset
|
449 (display-buffer appt-disp-buf) |
23777
5d10105c2906
(appt-disp-window): Use pop-to-buffer,
Richard M. Stallman <rms@gnu.org>
parents:
23297
diff
changeset
|
450 (unless (or (special-display-p (buffer-name appt-disp-buf)) |
5d10105c2906
(appt-disp-window): Use pop-to-buffer,
Richard M. Stallman <rms@gnu.org>
parents:
23297
diff
changeset
|
451 (same-window-p (buffer-name appt-disp-buf))) |
5d10105c2906
(appt-disp-window): Use pop-to-buffer,
Richard M. Stallman <rms@gnu.org>
parents:
23297
diff
changeset
|
452 ;; By default, split the bottom window and use the lower part. |
5d10105c2906
(appt-disp-window): Use pop-to-buffer,
Richard M. Stallman <rms@gnu.org>
parents:
23297
diff
changeset
|
453 (appt-select-lowest-window) |
55559
a4d697f046db
(appt-disp-window): Use `calendar-set-mode-line' for a centered
Glenn Morris <rgm@gnu.org>
parents:
54535
diff
changeset
|
454 (select-window (split-window))) |
a4d697f046db
(appt-disp-window): Use `calendar-set-mode-line' for a centered
Glenn Morris <rgm@gnu.org>
parents:
54535
diff
changeset
|
455 (switch-to-buffer appt-disp-buf)) |
a4d697f046db
(appt-disp-window): Use `calendar-set-mode-line' for a centered
Glenn Morris <rgm@gnu.org>
parents:
54535
diff
changeset
|
456 (calendar-set-mode-line |
a4d697f046db
(appt-disp-window): Use `calendar-set-mode-line' for a centered
Glenn Morris <rgm@gnu.org>
parents:
54535
diff
changeset
|
457 (format " Appointment in %s minutes. %s " min-to-app new-time)) |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
458 (erase-buffer) |
41565
6ecdf9c3fd25
(appt-disp-window): Use insert instead of insert-string.
Pavel Janík <Pavel@Janik.cz>
parents:
38412
diff
changeset
|
459 (insert appt-msg) |
9413
e54eede71446
(appt-delete-window): Look on all frames for the window.
Richard M. Stallman <rms@gnu.org>
parents:
8500
diff
changeset
|
460 (shrink-window-if-larger-than-buffer (get-buffer-window appt-disp-buf t)) |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
461 (set-buffer-modified-p nil) |
13125
731ef06c5677
(appt-disp-window): Call raise-frame.
Richard M. Stallman <rms@gnu.org>
parents:
12549
diff
changeset
|
462 (raise-frame (selected-frame)) |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
463 (select-window this-window))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
464 |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
465 (defun appt-delete-window () |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
466 "Function called to undisplay appointment messages. |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
467 Usually just deletes the appointment buffer." |
9551
ac21ac5e8c69
(appt-select-lowest-window): Locally bind lowest-window.
Richard M. Stallman <rms@gnu.org>
parents:
9413
diff
changeset
|
468 (let ((window (get-buffer-window appt-buffer-name t))) |
ac21ac5e8c69
(appt-select-lowest-window): Locally bind lowest-window.
Richard M. Stallman <rms@gnu.org>
parents:
9413
diff
changeset
|
469 (and window |
28404 | 470 (or (eq window (frame-root-window (window-frame window))) |
9551
ac21ac5e8c69
(appt-select-lowest-window): Locally bind lowest-window.
Richard M. Stallman <rms@gnu.org>
parents:
9413
diff
changeset
|
471 (delete-window window)))) |
5659
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
472 (kill-buffer appt-buffer-name) |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
473 (if appt-audible |
32a02ab40d58
(appt-check): Use the new variables
Richard M. Stallman <rms@gnu.org>
parents:
5034
diff
changeset
|
474 (beep 1))) |
179 | 475 |
476 (defun appt-select-lowest-window () | |
28404 | 477 "Select the lowest window on the frame." |
30001
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
478 (let ((lowest-window (selected-window)) |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
479 (bottom-edge (nth 3 (window-edges)))) |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
480 (walk-windows (lambda (w) |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
481 (let ((next-bottom-edge (nth 3 (window-edges w)))) |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
482 (when (< bottom-edge next-bottom-edge) |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
483 (setq bottom-edge next-bottom-edge |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
484 lowest-window w))))) |
55656f797f82
(appt-select-lowest-window): Use walk-windows
Gerd Moellmann <gerd@gnu.org>
parents:
28968
diff
changeset
|
485 (select-window lowest-window))) |
179 | 486 |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
487 (defconst appt-time-regexp |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
488 "[0-9]?[0-9]\\(h\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]\\)\\(am\\|pm\\)?") |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
489 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
490 ;;;###autoload |
179 | 491 (defun appt-add (new-appt-time new-appt-msg) |
61140 | 492 "Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG. |
179 | 493 The time should be in either 24 hour format or am/pm format." |
494 (interactive "sTime (hh:mm[am/pm]): \nsMessage: ") | |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
495 (unless (string-match appt-time-regexp new-appt-time) |
179 | 496 (error "Unacceptable time-string")) |
497 (let* ((appt-time-string (concat new-appt-time " " new-appt-msg)) | |
498 (appt-time (list (appt-convert-time new-appt-time))) | |
60225
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
499 (time-msg (list appt-time appt-time-string t))) |
28404 | 500 (setq appt-time-msg-list (nconc appt-time-msg-list (list time-msg))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
501 (setq appt-time-msg-list (appt-sort-list appt-time-msg-list)))) |
179 | 502 |
23297
e23cdc314c10
(appt-interval): Variable deleted.
Karl Heuer <kwzh@gnu.org>
parents:
23124
diff
changeset
|
503 ;;;###autoload |
179 | 504 (defun appt-delete () |
505 "Delete an appointment from the list of appointments." | |
506 (interactive) | |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
507 (let ((tmp-msg-list appt-time-msg-list)) |
179 | 508 (while tmp-msg-list |
509 (let* ((element (car tmp-msg-list)) | |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
510 (prompt-string (concat "Delete " |
46909
eb47511f3556
(appt-delete): Use substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents:
46861
diff
changeset
|
511 ;; We want to quote any doublequotes |
eb47511f3556
(appt-delete): Use substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents:
46861
diff
changeset
|
512 ;; in the string, as well as put |
eb47511f3556
(appt-delete): Use substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents:
46861
diff
changeset
|
513 ;; doublequotes around it. |
eb47511f3556
(appt-delete): Use substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents:
46861
diff
changeset
|
514 (prin1-to-string |
eb47511f3556
(appt-delete): Use substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents:
46861
diff
changeset
|
515 (substring-no-properties |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
516 (car (cdr element)) 0)) |
179 | 517 " from list? ")) |
518 (test-input (y-or-n-p prompt-string))) | |
519 (setq tmp-msg-list (cdr tmp-msg-list)) | |
520 (if test-input | |
9551
ac21ac5e8c69
(appt-select-lowest-window): Locally bind lowest-window.
Richard M. Stallman <rms@gnu.org>
parents:
9413
diff
changeset
|
521 (setq appt-time-msg-list (delq element appt-time-msg-list))))) |
26677
b6b1fe18ecf5
(appt-convert-time): Handle "12:MMam",
Gerd Moellmann <gerd@gnu.org>
parents:
24493
diff
changeset
|
522 (appt-check) |
179 | 523 (message ""))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
524 |
179 | 525 |
26935
9e0b4a6b5ad2
Bind free variables when compiling.
Dave Love <fx@gnu.org>
parents:
26677
diff
changeset
|
526 (eval-when-compile (defvar number) |
9e0b4a6b5ad2
Bind free variables when compiling.
Dave Love <fx@gnu.org>
parents:
26677
diff
changeset
|
527 (defvar original-date) |
9e0b4a6b5ad2
Bind free variables when compiling.
Dave Love <fx@gnu.org>
parents:
26677
diff
changeset
|
528 (defvar diary-entries-list)) |
927 | 529 ;;;###autoload |
179 | 530 (defun appt-make-list () |
60225
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
531 "Update the appointments list from today's diary buffer. |
28404 | 532 The time must be at the beginning of a line for it to be |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
533 put in the appointments list (see examples in documentation of |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
534 the function `appt-check'). We assume that the variables DATE and |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
535 NUMBER hold the arguments that `list-diary-entries' received. |
60225
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
536 They specify the range of dates that the diary is being processed for. |
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
537 |
c467ceeff8c7
(appt-time-msg-list): 3rd elt of each
Richard M. Stallman <rms@gnu.org>
parents:
59996
diff
changeset
|
538 Any appointments made with `appt-add' are not affected by this |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
539 function. |
28404 | 540 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
541 For backwards compatibility, this function activates the |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
542 appointment package (if it is not already active)." |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
543 ;; See comments above appt-activate defun. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
544 (if (not appt-timer) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
545 (appt-activate 1) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
546 ;; We have something to do if the range of dates that the diary is |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
547 ;; considering includes the current date. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
548 (if (and (not (calendar-date-compare |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
549 (list (calendar-current-date)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
550 (list original-date))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
551 (calendar-date-compare |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
552 (list (calendar-current-date)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
553 (list (calendar-gregorian-from-absolute |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
554 (+ (calendar-absolute-from-gregorian original-date) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
555 number))))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
556 (save-excursion |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
557 ;; Clear the appointments list, then fill it in from the diary. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
558 (dolist (elt appt-time-msg-list) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
559 ;; Delete any entries that were not made with appt-add. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
560 (unless (nth 2 elt) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
561 (setq appt-time-msg-list |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
562 (delq elt appt-time-msg-list)))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
563 (if diary-entries-list |
179 | 564 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
565 ;; Cycle through the entry-list (diary-entries-list) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
566 ;; looking for entries beginning with a time. If |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
567 ;; the entry begins with a time, add it to the |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
568 ;; appt-time-msg-list. Then sort the list. |
8440
863e05092c58
(appt-make-list): Do nothing unless range being processed
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
569 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
570 (let ((entry-list diary-entries-list) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
571 (new-time-string "")) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
572 ;; Skip diary entries for dates before today. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
573 (while (and entry-list |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
574 (calendar-date-compare |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
575 (car entry-list) (list (calendar-current-date)))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
576 (setq entry-list (cdr entry-list))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
577 ;; Parse the entries for today. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
578 (while (and entry-list |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
579 (calendar-date-equal |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
580 (calendar-current-date) (car (car entry-list)))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
581 (let ((time-string (cadr (car entry-list)))) |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
582 (while (string-match appt-time-regexp time-string) |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
583 (let* ((beg (match-beginning 0)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
584 ;; Get just the time for this appointment. |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
585 (only-time (match-string 0 time-string)) |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
586 ;; Find the end of this appointment |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
587 ;; (the start of the next). |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
588 (end (string-match |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
589 (concat "\n[ \t]*" appt-time-regexp) |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
590 time-string |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
591 (match-end 0))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
592 ;; Get the whole string for this appointment. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
593 (appt-time-string |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
594 (substring time-string beg (if end (1- end))))) |
8440
863e05092c58
(appt-make-list): Do nothing unless range being processed
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
595 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
596 ;; Add this appointment to appt-time-msg-list. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
597 (let* ((appt-time (list (appt-convert-time only-time))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
598 (time-msg (list appt-time appt-time-string))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
599 (setq appt-time-msg-list |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
600 (nconc appt-time-msg-list (list time-msg)))) |
179 | 601 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
602 ;; Discard this appointment from the string. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
603 (setq time-string |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
604 (if end (substring time-string end) ""))))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
605 (setq entry-list (cdr entry-list))))) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
606 (setq appt-time-msg-list (appt-sort-list appt-time-msg-list)) |
179 | 607 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
608 ;; Get the current time and convert it to minutes |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
609 ;; from midnight. ie. 12:01am = 1, midnight = 0, |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
610 ;; so that the elements in the list |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
611 ;; that are earlier than the present time can |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
612 ;; be removed. |
8440
863e05092c58
(appt-make-list): Do nothing unless range being processed
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
613 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
614 (let* ((now (decode-time)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
615 (cur-hour (nth 2 now)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
616 (cur-min (nth 1 now)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
617 (cur-comp-time (+ (* cur-hour 60) cur-min)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
618 (appt-comp-time (car (caar appt-time-msg-list)))) |
8440
863e05092c58
(appt-make-list): Do nothing unless range being processed
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
619 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
620 (while (and appt-time-msg-list (< appt-comp-time cur-comp-time)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
621 (setq appt-time-msg-list (cdr appt-time-msg-list)) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
622 (if appt-time-msg-list |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
623 (setq appt-comp-time (car (caar appt-time-msg-list)))))))))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
624 |
179 | 625 |
626 (defun appt-sort-list (appt-list) | |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
627 "Sort an appointment list, putting earlier items at the front. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
628 APPT-LIST is a list of the same format as `appt-time-msg-list'." |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
629 (sort appt-list (lambda (e1 e2) (< (caar e1) (caar e2))))) |
179 | 630 |
631 | |
632 (defun appt-convert-time (time2conv) | |
53549
f34089e632fc
(appt-add): Also accept time in the form XX[.XX][am/pm/AM/PM].
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
633 "Convert hour:min[am/pm] format to minutes from midnight. |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
634 A period (.) can be used instead of a colon (:) to separate the |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
635 hour and minute parts." |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
636 ;; Formats that should be accepted: |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
637 ;; 10:00 10.00 10h00 10h 10am 10:00am 10.00am |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
638 (let ((min (if (string-match "[h:.]\\([0-9][0-9]\\)" time2conv) |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
639 (string-to-number (match-string 1 time2conv)) |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
640 0)) |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
641 (hr (if (string-match "[0-9]*[0-9]" time2conv) |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
642 (string-to-number (match-string 0 time2conv)) |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
643 0))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
644 |
179 | 645 ;; convert the time appointment time into 24 hour time |
26677
b6b1fe18ecf5
(appt-convert-time): Handle "12:MMam",
Gerd Moellmann <gerd@gnu.org>
parents:
24493
diff
changeset
|
646 (cond ((and (string-match "pm" time2conv) (< hr 12)) |
b6b1fe18ecf5
(appt-convert-time): Handle "12:MMam",
Gerd Moellmann <gerd@gnu.org>
parents:
24493
diff
changeset
|
647 (setq hr (+ 12 hr))) |
b6b1fe18ecf5
(appt-convert-time): Handle "12:MMam",
Gerd Moellmann <gerd@gnu.org>
parents:
24493
diff
changeset
|
648 ((and (string-match "am" time2conv) (= hr 12)) |
b6b1fe18ecf5
(appt-convert-time): Handle "12:MMam",
Gerd Moellmann <gerd@gnu.org>
parents:
24493
diff
changeset
|
649 (setq hr 0))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
46909
diff
changeset
|
650 |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
651 ;; convert the actual time into minutes. |
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
652 (+ (* hr 60) min))) |
179 | 653 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
654 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
655 (defun appt-update-list () |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
656 "If the current buffer is visiting the diary, update appointments. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
657 This function is intended for use with `write-file-functions'." |
54535
f5c18c1f02ce
(appt-check): Remove superfluous progn.
Glenn Morris <rgm@gnu.org>
parents:
54070
diff
changeset
|
658 (and (string-equal buffer-file-name (expand-file-name diary-file)) |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
659 appt-timer |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
660 (let ((appt-display-diary nil)) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
661 (appt-check t))) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
662 nil) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
663 |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
664 |
63614
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
665 ;; In Emacs-21.3, the manual documented the following procedure to |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
666 ;; activate this package: |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
667 ;; (display-time) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
668 ;; (add-hook 'diary-hook 'appt-make-list) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
669 ;; (diary 0) |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
670 ;; The display-time call was not necessary, AFAICS. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
671 ;; What was really needed was to add the hook and load this file. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
672 ;; Calling (diary 0) once the hook had been added was in some sense a |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
673 ;; roundabout way of loading this file. This file used to have code at |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
674 ;; the top-level that set up the appt-timer and global-mode-string. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
675 ;; One way to maintain backwards compatibility would be to call |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
676 ;; (appt-activate 1) at top-level. However, this goes against the |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
677 ;; convention that just loading an Emacs package should not activate |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
678 ;; it. Instead, we make appt-make-list activate the package (after a |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
679 ;; suggestion from rms). This means that one has to call diary in |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
680 ;; order to get it to work, but that is in line with the old (weird, |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
681 ;; IMO) documented behavior for activating the package. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
682 ;; Actually, since (diary 0) does not run diary-hook, I don't think |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
683 ;; the documented behavior in Emacs-21.3 would ever have worked. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
684 ;; Oh well, at least with the changes to appt-make-list it will now |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
685 ;; work as well as it ever did. |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
686 ;; The new method is just to use (appt-activate 1). |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
687 ;; -- gmorris |
6533273f3b46
(appt-make-list): Activate the package, if not already active (for
Glenn Morris <rgm@gnu.org>
parents:
62402
diff
changeset
|
688 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
689 ;;;###autoload |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
690 (defun appt-activate (&optional arg) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
691 "Toggle checking of appointments. |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
692 With optional numeric argument ARG, turn appointment checking on if |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
693 ARG is positive, otherwise off." |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
694 (interactive "P") |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
695 (let ((appt-active appt-timer)) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
696 (setq appt-active (if arg (> (prefix-numeric-value arg) 0) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
697 (not appt-active))) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
698 (remove-hook 'write-file-functions 'appt-update-list) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
699 (or global-mode-string (setq global-mode-string '(""))) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
700 (delq 'appt-mode-string global-mode-string) |
54070
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
701 (when appt-timer |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
702 (cancel-timer appt-timer) |
e3c36780d566
(appt-display-format): Change default to'ignore, for backwards compatability.
Glenn Morris <rgm@gnu.org>
parents:
53643
diff
changeset
|
703 (setq appt-timer nil)) |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
704 (when appt-active |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
705 (add-hook 'write-file-functions 'appt-update-list) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
706 (setq appt-timer (run-at-time t 60 'appt-check) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
707 global-mode-string |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
708 (append global-mode-string '(appt-mode-string))) |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
709 (appt-check t)))) |
23112
81052242dbce
(appt-mode-string): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
17624
diff
changeset
|
710 |
53556
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
711 |
68254590be55
Update copyright and commentary.
Glenn Morris <rgm@gnu.org>
parents:
53549
diff
changeset
|
712 (provide 'appt) |
179 | 713 |
65840
df9b548f3218
(appt-time-regexp): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
64085
diff
changeset
|
714 ;; arch-tag: bf5791c4-8921-499e-a26f-772b1788d347 |
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
179
diff
changeset
|
715 ;;; appt.el ends here |