]> git.eshelyaron.com Git - emacs.git/commitdiff
(diary-remind): Don't clobber `date' passed by diary-sexp-entry.
authorGlenn Morris <rgm@gnu.org>
Wed, 16 Apr 2008 03:24:06 +0000 (03:24 +0000)
committerGlenn Morris <rgm@gnu.org>
Wed, 16 Apr 2008 03:24:06 +0000 (03:24 +0000)
lisp/ChangeLog
lisp/calendar/diary-lib.el

index d5e033daf41d2e92fcba4ca68cccf7131e883db7..32734c15c24e224ca136fb4a3309aa5caf8363fd 100644 (file)
@@ -1,3 +1,8 @@
+2008-04-16  Glenn Morris  <rgm@gnu.org>
+
+       * calendar/diary-lib.el (diary-remind): Don't clobber `date' passed
+       by diary-sexp-entry.
+
 2008-04-16  Markus Triska  <markus.triska@gmx.at>
 
        * proced.el (proced-command-alist): Add support for darwin.
index e3711331c5d319acabed0e62ded78053168114e0..54c99e303469b8274586fd33a4ce1662645494ab 100644 (file)
@@ -1929,8 +1929,8 @@ 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."
-  (let ((diary-entry (eval sexp))
-        date)
+  ;; `date' has a value at this point, from diary-sexp-entry.
+  (let ((diary-entry (eval sexp)))
     (cond
      ;; Diary entry applies on date.
      ((and diary-entry
@@ -1940,12 +1940,13 @@ marked on the calendar."
      ((and (integerp days)
            (not diary-entry)      ; diary entry does not apply to date
            (or (not diary-marking-entries-flag) marking))
-      (setq date (calendar-gregorian-from-absolute
-                  (+ (calendar-absolute-from-gregorian date) days)))
-      (when (setq diary-entry (eval sexp)) ; re-evaluate with adjusted date
-        ;; Discard any mark portion from diary-anniversary, etc.
-        (if (consp diary-entry) (setq diary-entry (cdr diary-entry)))
-        (mapconcat 'eval diary-remind-message "")))
+      ;; Adjust date, and re-evaluate.
+      (let ((date (calendar-gregorian-from-absolute
+                   (+ (calendar-absolute-from-gregorian date) days))))
+        (when (setq diary-entry (eval sexp))
+          ;; Discard any mark portion from diary-anniversary, etc.
+          (if (consp diary-entry) (setq diary-entry (cdr diary-entry)))
+          (mapconcat 'eval diary-remind-message ""))))
      ;; Diary entry may apply to one of a list of days before date.
      ((and (listp days) days)
       (or (diary-remind sexp (car days) marking)