straz@MEDIA-LAB.MEDIA.MIT.EDU (Steve Strassmann) (05/14/87)
A suggestion: When you do a "g" in rmail, and if you have (display-time) running, you should update the mode line so the "Mail" flag goes away. Sometimes, it still claims you have new mail a minute or more after you've read it.
israel@BRILLIG.UMD.EDU.UUCP (05/14/87)
From: Steve Strassmann <straz@MEDIA-LAB.MEDIA.MIT.EDU> A suggestion: When you do a "g" in rmail, and if you have (display-time) running, you should update the mode line so the "Mail" flag goes away. Sometimes, it still claims you have new mail a minute or more after you've read it. Yeah, I always found this annoying as well, so a while ago I did exactly what you are suggesting. Here's the code for it: I put the following bit right after the "(interactive" call in the body of the rmail-get-new-mail function: ; remove the string " Mail" from display-time-string if it ; is there. (and (boundp 'display-time-string) (stringp display-time-string) (setq display-time-string (remove-string " Mail" display-time-string))) and then defined the following function as well. (defun remove-string (substring string) "Remove the first occurrence of SUBSTRING from STRING." (let ((loc (string-match substring string))) (if loc (concat (substring string 0 loc) (substring string (+ (length substring) loc))) string))) However, there is a minor bug ( problem?) with it. After I log on, to read mail I run 'gnumacs -e rmail'. Since the 'rmail' function is being run from the invocation line, it runs quickly, and the display-time process has not yet set the variable display-time-string to the process invocation. So when 'rmail' is run, display-time-string is set to "time and load", and the "Mail" gets inserted just *after* 'rmail-get-new-mail' is run. As a result, if you read mail the way I do, the first minute will have a "Mail" string anyway, even though you're reading mail. Running gnumacs and then doing a M-x rmail immediately works though.