NEWMAIL NEWMAIL is a file containing some utility functions to handle new mail in your mailbox (assuming the ARPAnet TENEX/TOPS20 mailbox format). newmailauthors[mailfile] - Using mailfile (if NIL then your login mailbox -- if T then your connected mailbox) this function determines if you have new mail. If you don't have new mail then it returns NIL. Otherwise it returns a list of "authors" of all your new mail. Authorship is determined by what follows on the line following the "From:" in the message. If the global variable NEWMAILINCLUDESITES is NIL (the default) then newmailauthors returns a list of atoms corresponding to "usernames", otherwise it returns a list of lists of the atoms following the "From:" on the line (e.g. ((Yonke at BBN-TENEXD)...). If the authorship of a particular message can't be determined, the atom Unknown is used for that message. Duplicate authors appear only once (i.e. if you have several messages from one person, the author will only appear once in the returned list). Note: This function tries to be efficient (e.g. hanging onto file pointers, no extraneous reparsing, etc.). It works quite well and is very useful if you keep your mailbox small (less than 100 messages) but if you habitually keep several hundred messages in your mailbox, then this function is not for you; see newmailp below. newmailp[mailfile] - A simplier version of newmailauthors which is only the predicate part of newmailauthors. It just compares the read and write dates of mailfile (with the same defaults for mailfile as in newmailauthors) and returns T or NIL appropriately. mailfilename[dirName] - This function computes the name of the mailbox in the given directory (or your login mailbox if dirName is NIL or your connected mailbox if it is T). This is used in conjuction with the functions newmailauthors and newmailp, but may be useful elsewhere. It hides the differences between TENEX and TOPS20 mailboxs. newmailblinkp[] - If you have a CRT terminal that "blinks", highlights, etc. (especially if it has windowing facilities) and want to use the specific terminal features to alert that new mail has arrived by either of the new mail functions above, one serious problem arises. After being alerted via blinking that new mail has arrived (and possibly who sent it) and assuming you wish to continue working rather than reading your mail right away, you don't want the blinking to continue "too long" and keep disturbing you. This function should be thought of as a "timer" function especially for the purpose of not being annoying about new mail; the first time it is called the timer starts and returns T and subsequent calls keep returning T until the timer runs out (with specific checks for "new" new mail in which case the timer restarts, or the fact that you haven't done anything at you terminal -- probably out for coffee or lunch). Note: it assumes you have determined you have new mail (usually via newmailauthors or newmailp). Using the variable MAILFILENAME and the writedate of you mailbox it determines whether you should still "blink" a new mail message to your terminal. If BLINKMAILTIME (a global variable whose value is used as the number of minutes to "blink"; its initial value is 1) time has passed since the first time you called this function with new mail and at least one input event has taken place at your terminal then return NIL, otherwise return T. Therefore if you are away from your terminal, this function continues to return T even though the time has run out. These functions provide the "guts" for a information package about new mail. You have to build your own system using them. Martin D Yonke