1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-19 18:13:55 +00:00

(rmail-next-same-subject): New command.

(rmail-previous-same-subject): Likewise.
(rmail-mode-map): Add bindings for C-c C-n and C-c C-p.
This commit is contained in:
Richard M. Stallman 1995-02-05 02:46:08 +00:00
parent 5e882a6a22
commit 60fb2b34a3

View File

@ -414,6 +414,8 @@ Note: it means the file has no messages in it.\n\^_")))
(define-key rmail-mode-map "\C-c\C-s\C-c" 'rmail-sort-by-correspondent)
(define-key rmail-mode-map "\C-c\C-s\C-l" 'rmail-sort-by-lines)
(define-key rmail-mode-map "\C-c\C-s\C-k" 'rmail-sort-by-keywords)
(define-key rmail-mode-map "\C-c\C-n" 'rmail-next-same-subject)
(define-key rmail-mode-map "\C-c\C-p" 'rmail-previous-same-subject)
)
(define-key rmail-mode-map [menu-bar] (make-sparse-keymap))
@ -1747,6 +1749,54 @@ Interactively, empty argument means use same regexp used last time."
;; (if found
;; (rmail-show-message found))
found))
(defun rmail-next-same-subject (n)
"Go to the next mail message having the same subject header.
With prefix argument N, do this N times.
If N is negative, go backwards instead."
(interactive "p")
(let* ((subject (mail-fetch-field "Subject"))
(search-regexp (concat "^Subject: *\\(Re: *\\)?"
(regexp-quote subject)
"\n"))
(forward (> n 0))
(i rmail-current-message)
found)
(if (string-match "Re:[ \t]*" subject)
(setq subject (substring subject (match-end 0))))
(save-excursion
(save-restriction
(widen)
(while (and (/= n 0)
(if forward
(< i rmail-total-messages)
(> i 1)))
(let (done)
(while (and (not done)
(if forward
(< i rmail-total-messages)
(> i 1)))
(setq i (if forward (1+ i) (1- i)))
(goto-char (rmail-msgbeg i))
(search-forward "\n*** EOOH ***\n")
(let ((beg (point)) end)
(search-forward "\n\n")
(setq end (point))
(goto-char beg)
(setq done (re-search-forward search-regexp end t))))
(if done (setq found i)))
(setq n (if forward (1- n) (1+ n))))))
(if found
(rmail-show-message found)
(error "No %s message with same subject"
(if forward "following" "previous")))))
(defun rmail-previous-same-subject (n)
"Go to the previous mail message having the same subject header.
With prefix argument N, do this N times.
If N is negative, go forwards instead."
(interactive "p")
(rmail-next-same-subject (- n)))
;;;; *** Rmail Message Deletion Commands ***