Przeglądaj źródła

Merge branch 'maint'

Bastien 6 lat temu
rodzic
commit
1a5ca5fa83
1 zmienionych plików z 20 dodań i 18 usunięć
  1. 20 18
      lisp/org-agenda.el

+ 20 - 18
lisp/org-agenda.el

@@ -6001,24 +6001,26 @@ specification like [h]h:mm."
 		    (org-agenda--timestamp-to-absolute
 		     s base 'future (current-buffer) pos)))))
 	       (diff (- deadline current))
-	       (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)))))
+	       (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 (or suppress-prewarning (org-get-wdays s))))
 	  (cond
 	   ;; Only display deadlines at their base date, at future
 	   ;; repeat occurrences or in today agenda.