mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
Tweak previous change.
* lisp/calendar/appt.el (appt-time-msg-list): Doc fix. (appt-check): Let-bind appt-warn-time. (appt-add): Make the 3rd argument optional. Simplify argument names. Doc fix. Check for integer WARNTIME. Only add WARNTIME to the output list if non-nil.
This commit is contained in:
parent
a675c74911
commit
d7cd4abb48
@ -1,3 +1,11 @@
|
||||
2010-06-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* calendar/appt.el (appt-time-msg-list): Doc fix.
|
||||
(appt-check): Let-bind appt-warn-time.
|
||||
(appt-add): Make the 3rd argument optional.
|
||||
Simplify argument names. Doc fix. Check for integer WARNTIME.
|
||||
Only add WARNTIME to the output list if non-nil.
|
||||
|
||||
2010-06-15 Ivan Kanis <apple@kanis.eu>
|
||||
|
||||
* calendar/appt.el (appt-check): Let the 3rd element of
|
||||
|
@ -183,16 +183,25 @@ Only relevant if reminders are being displayed in a window."
|
||||
(defconst appt-buffer-name "*appt-buf*"
|
||||
"Name of the appointments buffer.")
|
||||
|
||||
;; TODO Turn this into an alist? It would be easier to add more
|
||||
;; optional elements.
|
||||
;; TODO There should be a way to set WARNTIME (and other properties)
|
||||
;; from the diary-file. Implementing that would be a good reason
|
||||
;; to change this to an alist.
|
||||
(defvar appt-time-msg-list nil
|
||||
"The list of appointments for today.
|
||||
Use `appt-add' and `appt-delete' to add and delete appointments.
|
||||
The original list is generated from today's `diary-entries-list', and
|
||||
can be regenerated using the function `appt-check'.
|
||||
Each element of the generated list has the form (MINUTES STRING [FLAG]); where
|
||||
MINUTES is the time in minutes of the appointment after midnight, and
|
||||
STRING is the description of the appointment.
|
||||
FLAG, if non-nil, says that the element was made with `appt-add'
|
||||
so calling `appt-make-list' again should preserve it.")
|
||||
Each element of the generated list has the form
|
||||
\(MINUTES STRING [FLAG] [WARNTIME])
|
||||
where MINUTES is the time in minutes of the appointment after midnight,
|
||||
and STRING is the description of the appointment.
|
||||
FLAG and WARNTIME can only be present if the element was made
|
||||
with `appt-add'. A non-nil FLAG indicates that the element was made
|
||||
with `appt-add', so calling `appt-make-list' again should preserve it.
|
||||
If WARNTIME is non-nil, it is an integer to use in place
|
||||
of `appt-message-warning-time'.")
|
||||
|
||||
(defconst appt-max-time (1- (* 24 60))
|
||||
"11:59pm in minutes - number of minutes in a day minus 1.")
|
||||
@ -313,7 +322,7 @@ displayed in a window:
|
||||
(zerop (mod prev-appt-display-count appt-display-interval))))
|
||||
;; Non-nil means only update the interval displayed in the mode line.
|
||||
(mode-line-only (unless full-check appt-now-displayed))
|
||||
now cur-comp-time appt-comp-time)
|
||||
now cur-comp-time appt-comp-time appt-warn-time)
|
||||
(when (or full-check mode-line-only)
|
||||
(save-excursion
|
||||
;; Convert current time to minutes after midnight (12.01am = 1).
|
||||
@ -472,20 +481,28 @@ Usually just deletes the appointment buffer."
|
||||
"[0-9]?[0-9]\\(h\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]\\)\\(am\\|pm\\)?")
|
||||
|
||||
;;;###autoload
|
||||
(defun appt-add (new-appt-time new-appt-msg new-appt-warning-time)
|
||||
"Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG.
|
||||
The time should be in either 24 hour format or am/pm format."
|
||||
(defun appt-add (time msg &optional warntime)
|
||||
"Add an appointment for today at TIME with message MSG.
|
||||
The time should be in either 24 hour format or am/pm format.
|
||||
Optional argument WARNTIME is an integer (or string) giving the number
|
||||
of minutes before the appointment at which to start warning.
|
||||
The default is `appt-message-warning-time'."
|
||||
(interactive "sTime (hh:mm[am/pm]): \nsMessage:
|
||||
sDelay in minutes (press return for default): ")
|
||||
(unless (string-match appt-time-regexp new-appt-time)
|
||||
sMinutes before the appointment to start warning: ")
|
||||
(unless (string-match appt-time-regexp time)
|
||||
(error "Unacceptable time-string"))
|
||||
(setq new-appt-warning-time
|
||||
(if (string= new-appt-warning-time "")
|
||||
appt-message-warning-time
|
||||
(string-to-number new-appt-warning-time)))
|
||||
(let ((time-msg (list (list (appt-convert-time new-appt-time))
|
||||
(concat new-appt-time " " new-appt-msg) t
|
||||
new-appt-warning-time)))
|
||||
(and (stringp warntime)
|
||||
(setq warntime (unless (string-equal warntime "")
|
||||
(string-to-number warntime))))
|
||||
(and warntime
|
||||
(not (integerp warntime))
|
||||
(error "Argument WARNTIME must be an integer, or nil"))
|
||||
(let ((time-msg (list (list (appt-convert-time time))
|
||||
(concat time " " msg) t)))
|
||||
;; It is presently non-sensical to have multiple warnings about
|
||||
;; the same appointment with just different delays, but it might
|
||||
;; not always be so. TODO
|
||||
(if warntime (setq time-msg (append time-msg (list warntime))))
|
||||
(unless (member time-msg appt-time-msg-list)
|
||||
(setq appt-time-msg-list
|
||||
(appt-sort-list (nconc appt-time-msg-list (list time-msg)))))))
|
||||
|
Loading…
Reference in New Issue
Block a user