Hi Dennis, thanks for the patch.
I am not sure yet if you are using the right condition though. It
seems to me that extending the late-warning-period makes sens only for
repeating *tasks*, where the base date keeps changing each time you
mark this entry as DONE. So maybe the condition should be that it is
today *and* that the item is a task marked by a TODO keyword.
Or: maybe for Scheduled, we should no relate to the *nearest* match of
the repeater, but to the most recent one. This way you would get
due warnings right up to the day where the next occurrence of this
item is scheduled. So you would never loose sight on the item.
Hmmmm. More discussion please!
On Jan 18, 2008, at 10:55 PM, Dennis J Lin wrote:
Please post your code, you can always do this, the copyright question
only star when we decide to use it. And even then, 4 lines is very
Sure, please see it below :-)
Basically, in org-agenda-get-scheduled, we call
org-time-string-to-absolute passing in d1 (the day that we're trying
to get agenda items for.) The problems is that if d1 is today, we
will get the closest day, which may be in the future, leading to the
problem. The patch that I've found was to not pass in d1 if
I have a 4 line patch implementing this (and I probably should write
another one to fix a similar problem with deadlines), but I've not
signed a FSF release, so I don't know if you want me to post my code
Now, this patch is now quite old (it was for 5.08) but it should still
apply cleanly. Looking at it, it might be whitespace damaged, and
there should be a similar change for the get-deadline. However, I
think it gets the idea across (and seems to fix the problem for me.)
--- old/org.el 2007-09-05 03:16:41.000000000 -0500
+++ new/org.el 2007-09-09 00:50:36.000000000 -0500
@@ -18676,7 +18676,9 @@
(setq s (match-string 1)
pos (1- (match-beginning 1))
- d2 (org-time-string-to-absolute (match-string 1) d1)
+ d2 (if todayp
+ (org-time-string-to-absolute (match-string 1))
+ (org-time-string-to-absolute (match-string 1) d1))
diff (- d2 d1))
(setq pastschedp (and todayp (< diff 0)))
;; When to show a scheduled item in the calendar:
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.