eppstein@garfield (David Eppstein) (03/23/89)
;; Find undeleted messages after a delete
;; David Eppstein / Columbia University / 22 Mar 1989
;;
;; In Babyl (the rmail equivalent for TOPS-20 and ITS Emacs), when a
;; message is deleted and there is no later undeleted message, it moves
;; back to a previous undeleted message instead.
;;
;; Instead, rmail just complains that it can't find anything. So I
;; wrote the following, to make it more like Babyl.
(defun rmail-delete-forward ()
"Delete this message and move on to next or previous nondeleted one."
(interactive)
(rmail-set-attribute "deleted" t)
(rmail-find-undeleted-msg))
(defun rmail-find-undeleted-msg ()
"Show following non-deleted message, or previous if no following."
(rmail-maybe-set-message-counters)
(let ((increment 1)
(current rmail-current-message))
(while (if (<= current rmail-total-messages)
(rmail-message-deleted-p current)
(if (= increment 1)
(setq increment -1)
(error "Header of rmail file is deleted")))
(setq current (+ increment current)))
(rmail-show-message current)))
--
David Eppstein eppstein@garfield.cs.columbia.edu Columbia U. Computer Science