[Remind-Fans] Bug: date_spec and the turn of the year

David F. Skoll dfs at roaringpenguin.com
Tue Sep 16 21:57:31 EDT 2008


Andrew Ho wrote:

> I think I've identified a bug in remind, but this could be a figment 
> of my 02:30 imagination.  Can someone confirm that this is not 
> expected behaviour?

Well. :-)  It's expected behaviour if it's what you expect.

Arguably, it's a bug.  After all, look at this:

$ echo 'REM mon 29 Dec MSG X' | remind -dt - 1 jan 2000
-(1): Trig = Monday, 1 January, 2001

Actually, it's *not* a bug.  Please see the slides at
http://www.roaringpenguin.com/files/download/remind-oclug.pdf

Look at slides 12 and 13 ("The REM Command").
Study the Remind date-calculation alogrithm *very* carefully.

Now, here's a file that will give the "expected" output:

FSET _back(days) TRIGGER(TODAY()-days)
REM mon 29 Dec SCANFROM [_back(7)] MSG X

Let's feed that to Remind:

$ remind -dt mon.rem 1 jan 2000
mon.rem(2): Trig = Monday, 3 January, 2000

Ahhh!  Much better! :-)

Regards,

David.

P.S. For those of you who don't want to look at the slides, here's
a summary of the important bits:

The Remind algorithm:

o    Each REM command has a date specification.

o    Remind starts from *today* and checks
     whether or not the date specification is
     satisfied. If not, it increments the date
     and checks again.

o    Remind keeps going until it finds a date
     that satisfies the spec (the trigger date) or
     proves to itself that no such date exists.



More information about the Remind-fans mailing list