KLH@MIT-AI 09/02/76 12:27:03 To: DLW at MIT-AI, ED at MIT-AI, RMS at MIT-AI, MOON at MIT-AI CC: KLH at MIT-AI Do you think you'd like to do a little work on the reminder user interface? I can get the mailer up, but I don't know how long it would take to cons together an acceptable way of specifying times etc... Let me describe how the current implementation is set up. It's fairly ambitious and isn't debugged (there, there) but is straightforward in concept. A message can have a "reminder expiration date" or "reminder count", but NOT both - these are the same attribute, distinguished by the LH being 0 for a reminder count. When the count runs out, or the next sending date/time is past the expiration date, the message gets flushed. There can be any number of "reminder specs" which actually define when to send the reminder. Each spec can have 2 components; the first (optional) specifies a "base" date/time upon which the next component becomes active. If none exists, the current time is used as base. The second component can be either a date/time spec or an increment. If an increment, its value is in minutes. After the reminder is sent, this will be added to current (or base) time to get next sending time. Since this is a full word, this allows you to specify whichever aeon you prefer. A date/time spec has 5 fields: year, month, day, hour, minute. The reminder is sent at the specified date and time. Any or all of the first 3 can be "Wild", as indicated by a zero value in that field; the reminder then gets sent whenever the time matches. The idea of having multiple reminder specs is that their union forms the complete sending specification for that message; whichever reminder spec comes soonest sets the time for next sending. Structural diagram: (!?) TERMINATION-SPEC::= Exp-Count|Exp-Date Exp-Count: reminder flushed after being sent this many times, irrespective of when, how often, etc. Exp-date: reminder flushed when next projected sending time is past this. REMIND-SPEC::= timespec | timespec&timebase Timebase: Date & time after which this remind-spec becomes "active". Timespec: Increment|datetime Increment: Increment in minutes to add for next sending time. Datetime: 5-field date + time, reminder sent whenever it comes to pass... year, month, & day can all be WILD. REMIND-SPEC , , REMIND-SPEC moksc;remind spec