summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien <bzg@gnu.org>2018-04-26 22:59:36 +0200
committerBastien <bzg@gnu.org>2018-04-26 22:59:36 +0200
commitf21fb8ad3b47409d5f86dbcff7c5d420c8503fbf (patch)
tree24dbc13375443df841d335cabca2fb58a3afd969
parentb1d084c1ab877a58b342ae4a8b8d844b9b54e625 (diff)
downloadorg-mode-f21fb8ad3b47409d5f86dbcff7c5d420c8503fbf.tar.gz
org-agenda.el: Fix bug when getting the warning delay of a deadline
* lisp/org-agenda.el (org-agenda-get-deadlines): Fix bug when getting the warning delay of a deadline. Thanks to Alex Branham for reporting this.
-rw-r--r--lisp/org-agenda.el41
1 files changed, 18 insertions, 23 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index a6d1df4..fd02089 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -5985,29 +5985,24 @@ specification like [h]h:mm."
(org-agenda--timestamp-to-absolute
s base 'future (current-buffer) pos)))))
(diff (- deadline current))
- (suppress-prewarning
- (let ((scheduled
- (and org-agenda-skip-deadline-prewarning-if-scheduled
- (org-entry-get nil "SCHEDULED"))))
- (cond
- ((not scheduled) nil)
- ;; The current item has a scheduled date, so
- ;; evaluate its prewarning lead time.
- ((integerp org-agenda-skip-deadline-prewarning-if-scheduled)
- ;; Use global prewarning-restart lead time.
- org-agenda-skip-deadline-prewarning-if-scheduled)
- ((eq org-agenda-skip-deadline-prewarning-if-scheduled
- 'pre-scheduled)
- ;; Set pre-warning to no earlier than SCHEDULED.
- (min (- deadline
- (org-agenda--timestamp-to-absolute scheduled))
- org-deadline-warning-days))
- ;; Set pre-warning to deadline.
- (t 0))))
- (wdays (if suppress-prewarning
- (let ((org-deadline-warning-days suppress-prewarning))
- (org-get-wdays s))
- (org-get-wdays s))))
+ (wdays
+ (cond
+ ;; The current item has a scheduled date, so
+ ;; evaluate its prewarning lead time.
+ ((integerp org-agenda-skip-deadline-prewarning-if-scheduled)
+ ;; Use global prewarning-restart lead time.
+ org-agenda-skip-deadline-prewarning-if-scheduled)
+ ((eq org-agenda-skip-deadline-prewarning-if-scheduled
+ 'pre-scheduled)
+ ;; Set pre-warning to no earlier than SCHEDULED.
+ (min (- deadline
+ (org-agenda--timestamp-to-absolute
+ (org-entry-get nil "SCHEDULED")))
+ org-deadline-warning-days))
+ ;; Set pre-warning to 0
+ (org-agenda-skip-deadline-prewarning-if-scheduled 0)
+ ;; Set pre-warning to deadline.
+ (t (org-get-wdays s)))))
(cond
;; Only display deadlines at their base date, at future
;; repeat occurrences or in today agenda.