Browse Source

Fixed bug related to repeating time stamps.

There was a problem that due dates in the past would not be advanced
property (reported by Wanrong Lin)
Carsten Dominik 17 years ago
parent
commit
9a44493492
2 changed files with 6 additions and 2 deletions
  1. 4 0
      ChangeLog
  2. 2 2
      lisp/org.el

+ 4 - 0
ChangeLog

@@ -1,5 +1,9 @@
 2008-03-28  Carsten Dominik  <dominik@science.uva.nl>
 
+	* lisp/org.el (org-auto-repeat-maybe): Make sure that repeating
+	dates are pushed into the future, and that the shift is at least
+	one interval, never 0.
+
 	* lisp/org-agenda.el (org-agenda-deadline-leaders): Allow a
 	function value for the deadline leader.
 	(org-agenda-get-deadlines): Deal with new function value.

+ 2 - 2
lisp/org.el

@@ -8706,12 +8706,12 @@ This function is run automatically after each state change to a DONE state."
 	       (- (time-to-days (current-time)) (time-to-days time))
 	       'day))
 	     ((equal (match-string 1 ts) "+")
-	      (while (< (time-to-days time) (time-to-days (current-time)))
+	      (while (or (= nshift 0)
+			 (<= (time-to-days time) (time-to-days (current-time))))
 		(when (= (incf nshift) nshiftmax)
 		  (or (y-or-n-p (message "%d repeater intervals were not enough to shift date past today.  Continue? " nshift))
 		      (error "Abort")))
 		(org-timestamp-change n (cdr (assoc what whata)))
-		(sit-for .0001) ;; so we can watch the date shifting
 		(org-at-timestamp-p t)
 		(setq ts (match-string 1))
 		(setq time (save-match-data (org-time-string-to-time ts))))