changeset 94283:71ec8fd62188

(diary-list-sexp-entries): Doc fix. (diary-remind): Allow negative DAYS to represent a range 1:DAYS. Suggested by Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>.
author Glenn Morris <rgm@gnu.org>
date Wed, 23 Apr 2008 03:05:53 +0000
parents 70cc209bf336
children 0967a933be6b
files lisp/calendar/diary-lib.el
diffstat 1 files changed, 22 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calendar/diary-lib.el	Wed Apr 23 03:03:43 2008 +0000
+++ b/lisp/calendar/diary-lib.el	Wed Apr 23 03:05:53 2008 +0000
@@ -1635,8 +1635,9 @@
   %%(diary-remind SEXP DAYS &optional MARKING) text
     Entry is a reminder for diary sexp SEXP.  DAYS is either a
     single number or a list of numbers indicating the number(s)
-    of days before the event that the warning(s) should occur.  If
-    the current date is (one of) DAYS before the event indicated
+    of days before the event that the warning(s) should occur.
+    A negative number -DAYS has the same meaning as a list (1 2 ... DAYS).
+    If the current date is (one of) DAYS before the event indicated
     by EXPR, then a suitable message (as specified by
     `diary-remind-message') appears.  In addition to the
     reminders beforehand, the diary entry also appears on the
@@ -1915,21 +1916,27 @@
 
 (defun diary-remind (sexp days &optional marking)
   "Provide a reminder of a diary entry.
-SEXP is a diary-sexp.  DAYS is either a single number or a list of numbers
-indicating the number(s) of days before the event that the warning(s) should
-occur on.  If the current date is (one of) DAYS before the event indicated by
-SEXP, then a suitable message (as specified by `diary-remind-message' is
-returned.
+SEXP is a diary-sexp.  DAYS is either a single number or a list
+of numbers indicating the number(s) of days before the event that
+the warning(s) should occur on.  A negative number -DAYS has the
+same meaning as a list (1 2 ... DAYS).  If the current date
+is (one of) DAYS before the event indicated by SEXP, then this function
+returns a suitable message (as specified by `diary-remind-message').
+
+In addition to the reminders beforehand, the diary entry also
+appears on the date itself.
 
-In addition to the reminders beforehand, the diary entry also appears on the
-date itself.
-
-A `diary-nonmarking-symbol' at the beginning of the line of the `diary-remind'
-entry specifies that the diary entry (not the reminder) is non-marking.
-Marking of reminders is independent of whether the entry itself is a marking
-or nonmarking; if optional parameter MARKING is non-nil then the reminders are
-marked on the calendar."
+A `diary-nonmarking-symbol' at the beginning of the line of the
+`diary-remind' entry specifies that the diary entry (not the
+reminder) is non-marking.  Marking of reminders is independent of
+whether the entry itself is a marking or nonmarking; if optional
+parameter MARKING is non-nil then the reminders are marked on the
+calendar."
   ;; `date' has a value at this point, from diary-sexp-entry.
+  ;; Convert a negative number to a list of days.
+  (and (integerp days)
+       (< days 0)
+       (setq days (number-sequence 1 (- days))))
   (let ((diary-entry (eval sexp)))
     (cond
      ;; Diary entry applies on date.