Mercurial > emacs
annotate lisp/mail/rmailsum.el @ 2164:6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
(rmail-summary-previous-all, rmail-summary-next-all): Likewise.
(rmail-summary-rmail-update): Do nothing if rmail buffer not visible.
(rmail-summary-mode-map): Don't bind C-n, C-p. Use ordinary move cmds.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 13 Mar 1993 21:52:43 +0000 |
parents | 6885836c2f98 |
children | 4f9d60f7de9d |
rev | line source |
---|---|
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1 ;; "RMAIL" mail reader for Emacs. Make summary buffers. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
2 ;; Copyright (C) 1985, 1993 Free Software Foundation, Inc. |
845 | 3 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
4 ;; Maintainer: FSF |
814
38b2499cb3e9
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
5 ;; Keywords: mail |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
6 |
130 | 7 ;; This file is part of GNU Emacs. |
8 | |
9 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
10 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
11 ;; the Free Software Foundation; either version 2, or (at your option) |
130 | 12 ;; any later version. |
13 | |
14 ;; GNU Emacs is distributed in the hope that it will be useful, | |
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 ;; GNU General Public License for more details. | |
18 | |
19 ;; You should have received a copy of the GNU General Public License | |
20 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
21 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
22 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
23 ;; Extended by Bob Weiner of Motorola |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
24 ;; Provided all commands from rmail-mode in rmail-summary-mode and made key |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
25 ;; bindings in both modes wholly compatible. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
26 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
27 ;; Entry points for making a summary buffer. |
130 | 28 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
29 ;; Regenerate the contents of the summary |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
30 ;; using the same selection criterion as last time. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
31 ;; M-x revert-buffer in a summary buffer calls this function. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
32 (defun rmail-update-summary (&rest ignore) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
33 (apply (car rmail-summary-redo) (cdr rmail-summary-redo))) |
130 | 34 |
35 (defun rmail-summary () | |
36 "Display a summary of all messages, one line per message." | |
37 (interactive) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
38 (rmail-new-summary "All" '(rmail-summary) nil)) |
130 | 39 |
40 (defun rmail-summary-by-labels (labels) | |
41 "Display a summary of all messages with one or more LABELS. | |
42 LABELS should be a string containing the desired labels, separated by commas." | |
43 (interactive "sLabels to summarize by: ") | |
44 (if (string= labels "") | |
45 (setq labels (or rmail-last-multi-labels | |
46 (error "No label specified")))) | |
47 (setq rmail-last-multi-labels labels) | |
48 (rmail-new-summary (concat "labels " labels) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
49 (list 'rmail-summary-by-labels labels) |
130 | 50 'rmail-message-labels-p |
51 (concat ", \\(" (mail-comma-list-regexp labels) "\\),"))) | |
52 | |
53 (defun rmail-summary-by-recipients (recipients &optional primary-only) | |
54 "Display a summary of all messages with the given RECIPIENTS. | |
55 Normally checks the To, From and Cc fields of headers; | |
56 but if PRIMARY-ONLY is non-nil (prefix arg given), | |
57 only look in the To and From fields. | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
58 RECIPIENTS is a string of regexps separated by commas." |
130 | 59 (interactive "sRecipients to summarize by: \nP") |
60 (rmail-new-summary | |
61 (concat "recipients " recipients) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
62 (list 'rmail-summary-by-recipients recipients primary-only) |
130 | 63 'rmail-message-recipients-p |
64 (mail-comma-list-regexp recipients) primary-only)) | |
65 | |
66 (defun rmail-summary-by-regexp (regexp) | |
67 "Display a summary of all messages according to regexp REGEXP. | |
68 If the regular expression is found in the header of the message | |
69 \(including in the date and other lines, as well as the subject line), | |
70 Emacs will list the header line in the RMAIL-summary." | |
71 (interactive "sRegexp to summarize by: ") | |
72 (if (string= regexp "") | |
73 (setq regexp (or rmail-last-regexp | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
74 (error "No regexp specified.")))) |
130 | 75 (setq rmail-last-regexp regexp) |
76 (rmail-new-summary (concat "regexp " regexp) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
77 (list 'rmail-summary-by-regexp regexp) |
130 | 78 'rmail-message-regexp-p |
79 regexp)) | |
80 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
81 ;; rmail-summary-by-topic |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
82 ;; 1989 R.A. Schnitzler |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
83 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
84 (defun rmail-summary-by-topic (subject &optional whole-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
85 "Display a summary of all messages with the given SUBJECT. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
86 Normally checks the Subject field of headers; |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
87 but if WHOLE-MESSAGE is non-nil (prefix arg given), |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
88 look in the whole message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
89 SUBJECT is a string of regexps separated by commas." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
90 (interactive "sTopics to summarize by: \nP") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
91 (rmail-new-summary |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
92 (concat "about " subject) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
93 (list 'rmail-summary-by-topic subject whole-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
94 'rmail-message-subject-p |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
95 (mail-comma-list-regexp subject) whole-message)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
96 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
97 (defun rmail-message-subject-p (msg subject &optional whole-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
98 (save-restriction |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
99 (goto-char (rmail-msgbeg msg)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
100 (search-forward "\n*** EOOH ***\n") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
101 (narrow-to-region |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
102 (point) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
103 (progn (search-forward (if whole-message "" "\n\n")) (point))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
104 (goto-char (point-min)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
105 (if whole-message (re-search-forward subject nil t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
106 (string-match subject (or (mail-fetch-field "Subject") "")) ))) |
130 | 107 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
108 ;; General making of a summary buffer. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
109 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
110 (defvar rmail-summary-symbol-number 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
111 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
112 (defun rmail-new-summary (description redo-form function &rest args) |
130 | 113 "Create a summary of selected messages. |
114 DESCRIPTION makes part of the mode line of the summary buffer. | |
115 For each message, FUNCTION is applied to the message number and ARGS... | |
116 and if the result is non-nil, that message is included. | |
117 nil for FUNCTION means all messages." | |
118 (message "Computing summary lines...") | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
119 (let (sumbuf mesg was-in-summary) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
120 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
121 ;; Go to the Rmail buffer. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
122 (if (eq major-mode 'rmail-summary-mode) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
123 (progn |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
124 (setq was-in-summary t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
125 (set-buffer rmail-buffer))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
126 ;; Find its summary buffer, or make one. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
127 (or (and rmail-summary-buffer |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
128 (buffer-name rmail-summary-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
129 (setq rmail-summary-buffer |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
130 (generate-new-buffer (concat (buffer-name) "-summary")))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
131 (setq sumbuf rmail-summary-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
132 (setq mesg rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
133 (setq foo mesg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
134 ;; Filter the messages; make or get their summary lines. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
135 (let ((summary-msgs ()) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
136 (new-summary-line-count 0)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
137 (let ((msgnum 1) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
138 (buffer-read-only nil)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
139 (save-restriction |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
140 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
141 (widen) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
142 (goto-char (point-min)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
143 (while (>= rmail-total-messages msgnum) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
144 (if (or (null function) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
145 (apply function (cons msgnum args))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
146 (setq summary-msgs |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
147 (cons (cons msgnum (rmail-make-summary-line msgnum)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
148 summary-msgs))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
149 (setq msgnum (1+ msgnum))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
150 (setq summary-msgs (nreverse summary-msgs))))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
151 (let ((rbuf (current-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
152 (total rmail-total-messages)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
153 (set-buffer sumbuf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
154 ;; Set up the summary buffer's contents. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
155 (let ((buffer-read-only nil)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
156 (erase-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
157 (while summary-msgs |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
158 (princ (cdr (car summary-msgs)) sumbuf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
159 (setq summary-msgs (cdr summary-msgs))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
160 (goto-char (point-min))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
161 ;; Set up the rest of its state and local variables. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
162 (setq buffer-read-only t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
163 (rmail-summary-mode) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
164 (make-local-variable 'minor-mode-alist) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
165 (setq minor-mode-alist (list ": " description)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
166 (setq rmail-buffer rbuf |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
167 rmail-summary-redo redo-form |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
168 rmail-total-messages total)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
169 ;; Now display the summary buffer and go to the right place in it. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
170 (or was-in-summary |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
171 (pop-to-buffer sumbuf)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
172 (rmail-summary-goto-msg mesg t t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
173 (message "Computing summary lines...done"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
174 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
175 ;; Low levels of generating a summary. |
130 | 176 |
177 (defun rmail-make-summary-line (msg) | |
178 (let ((line (or (aref rmail-summary-vector (1- msg)) | |
179 (progn | |
180 (setq new-summary-line-count | |
181 (1+ new-summary-line-count)) | |
182 (if (zerop (% new-summary-line-count 10)) | |
183 (message "Computing summary lines...%d" | |
184 new-summary-line-count)) | |
185 (rmail-make-summary-line-1 msg))))) | |
186 ;; Fix up the part of the summary that says "deleted" or "unseen". | |
187 (aset line 4 | |
188 (if (rmail-message-deleted-p msg) ?\D | |
189 (if (= ?0 (char-after (+ 3 (rmail-msgbeg msg)))) | |
190 ?\- ?\ ))) | |
191 line)) | |
192 | |
193 (defun rmail-make-summary-line-1 (msg) | |
194 (goto-char (rmail-msgbeg msg)) | |
195 (let* ((lim (save-excursion (forward-line 2) (point))) | |
196 pos | |
197 (labels | |
198 (progn | |
199 (forward-char 3) | |
200 (concat | |
201 ; (if (save-excursion (re-search-forward ",answered," lim t)) | |
202 ; "*" "") | |
203 ; (if (save-excursion (re-search-forward ",filed," lim t)) | |
204 ; "!" "") | |
205 (if (progn (search-forward ",,") (eolp)) | |
206 "" | |
207 (concat "{" | |
208 (buffer-substring (point) | |
209 (progn (end-of-line) (point))) | |
210 "} "))))) | |
211 (line | |
212 (progn | |
213 (forward-line 1) | |
214 (if (looking-at "Summary-line: ") | |
215 (progn | |
216 (goto-char (match-end 0)) | |
217 (setq line | |
218 (buffer-substring (point) | |
219 (progn (forward-line 1) (point))))))))) | |
220 ;; Obsolete status lines lacking a # should be flushed. | |
221 (and line | |
222 (not (string-match "#" line)) | |
223 (progn | |
224 (delete-region (point) | |
225 (progn (forward-line -1) (point))) | |
226 (setq line nil))) | |
227 ;; If we didn't get a valid status line from the message, | |
228 ;; make a new one and put it in the message. | |
229 (or line | |
230 (let* ((case-fold-search t) | |
231 (next (rmail-msgend msg)) | |
232 (beg (if (progn (goto-char (rmail-msgbeg msg)) | |
233 (search-forward "\n*** EOOH ***\n" next t)) | |
234 (point) | |
235 (forward-line 1) | |
236 (point))) | |
237 (end (progn (search-forward "\n\n" nil t) (point)))) | |
238 (save-restriction | |
239 (narrow-to-region beg end) | |
240 (goto-char beg) | |
241 (setq line (rmail-make-basic-summary-line))) | |
242 (goto-char (rmail-msgbeg msg)) | |
243 (forward-line 2) | |
244 (insert "Summary-line: " line))) | |
245 (setq pos (string-match "#" line)) | |
246 (aset rmail-summary-vector (1- msg) | |
247 (concat (format "%4d " msg) | |
248 (substring line 0 pos) | |
249 labels | |
250 (substring line (1+ pos)))))) | |
251 | |
252 (defun rmail-make-basic-summary-line () | |
253 (goto-char (point-min)) | |
254 (concat (save-excursion | |
255 (if (not (re-search-forward "^Date:" nil t)) | |
256 " " | |
257 (cond ((re-search-forward "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- \t_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)" | |
258 (save-excursion (end-of-line) (point)) t) | |
259 (format "%2d-%3s" | |
260 (string-to-int (buffer-substring | |
261 (match-beginning 2) | |
262 (match-end 2))) | |
263 (buffer-substring | |
264 (match-beginning 4) (match-end 4)))) | |
265 ((re-search-forward "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z \t_]*\\)\\([0-9][0-9]?\\)" | |
266 (save-excursion (end-of-line) (point)) t) | |
267 (format "%2d-%3s" | |
268 (string-to-int (buffer-substring | |
269 (match-beginning 4) | |
270 (match-end 4))) | |
271 (buffer-substring | |
272 (match-beginning 2) (match-end 2)))) | |
273 (t "??????")))) | |
274 " " | |
275 (save-excursion | |
276 (if (not (re-search-forward "^From:[ \t]*" nil t)) | |
277 " " | |
278 (let* ((from (mail-strip-quoted-names | |
279 (buffer-substring | |
280 (1- (point)) | |
281 (progn (end-of-line) | |
282 (skip-chars-backward " \t") | |
283 (point))))) | |
284 len mch lo) | |
285 (if (string-match (concat "^" | |
286 (regexp-quote (user-login-name)) | |
287 "\\($\\|@\\)") | |
288 from) | |
289 (save-excursion | |
290 (goto-char (point-min)) | |
291 (if (not (re-search-forward "^To:[ \t]*" nil t)) | |
292 nil | |
293 (setq from | |
294 (concat "to: " | |
295 (mail-strip-quoted-names | |
296 (buffer-substring | |
297 (point) | |
298 (progn (end-of-line) | |
299 (skip-chars-backward " \t") | |
300 (point))))))))) | |
301 (setq len (length from)) | |
302 (setq mch (string-match "[@%]" from)) | |
303 (format "%25s" | |
304 (if (or (not mch) (<= len 25)) | |
305 (substring from (max 0 (- len 25))) | |
306 (substring from | |
307 (setq lo (cond ((< (- mch 9) 0) 0) | |
308 ((< len (+ mch 16)) | |
309 (- len 25)) | |
310 (t (- mch 9)))) | |
311 (min len (+ lo 25)))))))) | |
312 " #" | |
313 (if (re-search-forward "^Subject:" nil t) | |
314 (progn (skip-chars-forward " \t") | |
315 (buffer-substring (point) | |
316 (progn (end-of-line) | |
317 (point)))) | |
318 (re-search-forward "[\n][\n]+" nil t) | |
319 (buffer-substring (point) (progn (end-of-line) (point)))) | |
320 "\n")) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
321 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
322 ;; Simple motion in a summary buffer. |
130 | 323 |
324 (defun rmail-summary-next-all (&optional number) | |
325 (interactive "p") | |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
326 (forward-line (if number number 1)) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
327 (display-buffer rmail-buffer)) |
130 | 328 |
329 (defun rmail-summary-previous-all (&optional number) | |
330 (interactive "p") | |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
331 (forward-line (- (if number number 1))) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
332 (display-buffer rmail-buffer)) |
130 | 333 |
334 (defun rmail-summary-next-msg (&optional number) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
335 "Display next non-deleted msg from rmail file. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
336 With optional prefix argument NUMBER, moves forward this number of non-deleted |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
337 messages, or backward if NUMBER is negative." |
130 | 338 (interactive "p") |
339 (forward-line 0) | |
340 (and (> number 0) (forward-line 1)) | |
341 (let ((count (if (< number 0) (- number) number)) | |
342 (search (if (> number 0) 're-search-forward 're-search-backward)) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
343 (non-del-msg-found nil)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
344 (while (and (> count 0) (setq non-del-msg-found |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
345 (or (funcall search "^.....[^D]" nil t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
346 non-del-msg-found))) |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
347 (setq count (1- count)))) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
348 (display-buffer rmail-buffer)) |
130 | 349 |
350 (defun rmail-summary-previous-msg (&optional number) | |
351 (interactive "p") | |
352 (rmail-summary-next-msg (- (if number number 1)))) | |
353 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
354 (defun rmail-summary-next-labeled-message (n labels) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
355 "Show next message with LABEL. Defaults to last labels used. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
356 With prefix argument N moves forward N messages with these labels." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
357 (interactive "p\nsMove to next msg with labels: ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
358 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
359 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
360 (rmail-next-labeled-message n labels))) |
130 | 361 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
362 (defun rmail-summary-previous-labeled-message (n labels) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
363 "Show previous message with LABEL. Defaults to last labels used. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
364 With prefix argument N moves backward N messages with these labels." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
365 (interactive "p\nsMove to previous msg with labels: ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
366 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
367 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
368 (rmail-previous-labeled-message n labels))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
369 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
370 ;; Delete and undelete summary commands. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
371 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
372 (defun rmail-summary-delete-forward (&optional backward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
373 "Delete this message and move to next nondeleted one. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
374 Deleted messages stay in the file until the \\[rmail-expunge] command is given. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
375 With prefix argument, delete and move backward." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
376 (interactive "P") |
130 | 377 (let (end) |
378 (rmail-summary-goto-msg) | |
379 (pop-to-buffer rmail-buffer) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
380 (rmail-delete-forward backward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
381 (pop-to-buffer rmail-summary-buffer))) |
130 | 382 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
383 (defun rmail-summary-delete-backward () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
384 "Delete this message and move to previous nondeleted one. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
385 Deleted messages stay in the file until the \\[rmail-expunge] command is given." |
130 | 386 (interactive) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
387 (rmail-summary-delete-forward t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
388 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
389 (defun rmail-summary-mark-deleted (&optional n undel) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
390 (and n (rmail-summary-goto-msg n nil t)) |
130 | 391 (let ((buffer-read-only nil)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
392 (skip-chars-forward " ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
393 (skip-chars-forward "[0-9]") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
394 (if undel |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
395 (if (looking-at "D") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
396 (progn (delete-char 1) (insert " "))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
397 (delete-char 1) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
398 (insert "D"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
399 (beginning-of-line)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
400 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
401 (defun rmail-summary-mark-undeleted (n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
402 (rmail-summary-mark-deleted n t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
403 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
404 (defun rmail-summary-deleted-p (&optional n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
405 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
406 (and n (rmail-summary-goto-msg n nil t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
407 (skip-chars-forward " ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
408 (skip-chars-forward "[0-9]") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
409 (looking-at "D"))) |
130 | 410 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
411 (defun rmail-summary-undelete (&optional arg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
412 "Undelete current message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
413 Optional prefix ARG means undelete ARG previous messages." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
414 (interactive "p") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
415 (if (/= arg 1) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
416 (rmail-summary-undelete-many arg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
417 (let ((buffer-read-only nil)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
418 (end-of-line) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
419 (cond ((re-search-backward "\\(^ *[0-9]*\\)\\(D\\)" nil t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
420 (replace-match "\\1 ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
421 (rmail-summary-goto-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
422 (pop-to-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
423 (and (rmail-message-deleted-p rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
424 (rmail-undelete-previous-message)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
425 (pop-to-buffer rmail-summary-buffer)))))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
426 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
427 (defun rmail-summary-undelete-many (&optional n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
428 "Undelete all deleted msgs, optional prefix arg N means undelete N prev msgs." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
429 (interactive "P") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
430 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
431 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
432 (let* ((init-msg (if n rmail-current-message rmail-total-messages)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
433 (rmail-current-message init-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
434 (n (or n rmail-total-messages)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
435 (msgs-undeled 0)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
436 (while (and (> rmail-current-message 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
437 (< msgs-undeled n)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
438 (if (rmail-message-deleted-p rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
439 (progn (rmail-set-attribute "deleted" nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
440 (setq msgs-undeled (1+ msgs-undeled)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
441 (setq rmail-current-message (1- rmail-current-message))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
442 (set-buffer rmail-summary-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
443 (setq rmail-current-message init-msg msgs-undeled 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
444 (while (and (> rmail-current-message 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
445 (< msgs-undeled n)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
446 (if (rmail-summary-deleted-p rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
447 (progn (rmail-summary-mark-undeleted rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
448 (setq msgs-undeled (1+ msgs-undeled)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
449 (setq rmail-current-message (1- rmail-current-message)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
450 (rmail-summary-goto-msg))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
451 |
130 | 452 ;; Rmail Summary mode is suitable only for specially formatted data. |
453 (put 'rmail-summary-mode 'mode-class 'special) | |
454 | |
455 (defun rmail-summary-mode () | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
456 "Rmail Summary Mode is invoked from Rmail Mode by using \\<rmail-mode-map>\\[rmail-summary]. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
457 As commands are issued in the summary buffer, they are applied to the |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
458 corresponding mail messages in the rmail buffer. |
130 | 459 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
460 All normal editing commands are turned off. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
461 Instead, all of the Rmail Mode commands are available, plus: |
130 | 462 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
463 \\[rmail-summary-undelete-many] Undelete all or prefix arg deleted messages." |
130 | 464 (interactive) |
465 (kill-all-local-variables) | |
466 (setq major-mode 'rmail-summary-mode) | |
467 (setq mode-name "RMAIL Summary") | |
468 (use-local-map rmail-summary-mode-map) | |
469 (setq truncate-lines t) | |
470 (setq buffer-read-only t) | |
471 (set-syntax-table text-mode-syntax-table) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
472 (make-local-variable 'rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
473 (make-local-variable 'rmail-total-messages) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
474 (make-local-variable 'rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
475 (setq rmail-current-message nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
476 (make-local-variable 'rmail-summary-redo) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
477 (setq rmail-summary-redo nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
478 (make-local-variable 'revert-buffer-function) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
479 (setq revert-buffer-function 'rmail-update-summary) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
480 (make-local-variable 'post-command-hook) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
481 (add-hook 'post-command-hook 'rmail-summary-rmail-update) |
130 | 482 (run-hooks 'rmail-summary-mode-hook)) |
483 | |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
484 ;; Show in Rmail the message described by the summary line that point is on, |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
485 ;; but only if the Rmail buffer is already visible. |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
486 ;; This is a post-command-hook in summary buffers. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
487 (defun rmail-summary-rmail-update () |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
488 (if (get-buffer-window rmail-buffer) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
489 (let (buffer-read-only) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
490 (save-excursion |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
491 (beginning-of-line) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
492 (skip-chars-forward " ") |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
493 (let ((beg (point)) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
494 msg-num |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
495 (buf rmail-buffer)) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
496 (skip-chars-forward "0-9") |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
497 (setq msg-num (string-to-int (buffer-substring beg (point)))) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
498 (or (eq rmail-current-message msg-num) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
499 (progn |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
500 (setq rmail-current-message msg-num) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
501 (if (= (following-char) ?-) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
502 (progn |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
503 (delete-char 1) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
504 (insert " "))) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
505 (setq window (display-buffer rmail-buffer)) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
506 (save-window-excursion |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
507 (select-window window) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
508 (rmail-show-message msg-num))))))))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
509 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
510 (defvar rmail-summary-mode-map nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
511 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
512 (if rmail-summary-mode-map |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
513 nil |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
514 (setq rmail-summary-mode-map (make-keymap)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
515 (suppress-keymap rmail-summary-mode-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
516 (define-key rmail-summary-mode-map "a" 'rmail-summary-add-label) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
517 (define-key rmail-summary-mode-map "c" 'rmail-summary-continue) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
518 (define-key rmail-summary-mode-map "d" 'rmail-summary-delete-forward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
519 (define-key rmail-summary-mode-map "\C-d" 'rmail-summary-delete-backward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
520 (define-key rmail-summary-mode-map "e" 'rmail-summary-edit-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
521 (define-key rmail-summary-mode-map "f" 'rmail-summary-forward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
522 (define-key rmail-summary-mode-map "g" 'rmail-summary-get-new-mail) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
523 (define-key rmail-summary-mode-map "h" 'rmail-summary) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
524 (define-key rmail-summary-mode-map "i" 'rmail-summary-input) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
525 (define-key rmail-summary-mode-map "j" 'rmail-summary-goto-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
526 (define-key rmail-summary-mode-map "k" 'rmail-summary-kill-label) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
527 (define-key rmail-summary-mode-map "l" 'rmail-summary-by-labels) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
528 (define-key rmail-summary-mode-map "\e\C-h" 'rmail-summary) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
529 (define-key rmail-summary-mode-map "\e\C-l" 'rmail-summary-by-labels) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
530 (define-key rmail-summary-mode-map "\e\C-r" 'rmail-summary-by-recipients) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
531 (define-key rmail-summary-mode-map "\e\C-s" 'rmail-summary-by-regexp) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
532 (define-key rmail-summary-mode-map "\e\C-t" 'rmail-summary-by-topic) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
533 (define-key rmail-summary-mode-map "m" 'rmail-summary-mail) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
534 (define-key rmail-summary-mode-map "\M-m" 'rmail-summary-retry-failure) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
535 (define-key rmail-summary-mode-map "n" 'rmail-summary-next-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
536 (define-key rmail-summary-mode-map "\en" 'rmail-summary-next-all) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
537 (define-key rmail-summary-mode-map "\e\C-n" 'rmail-summary-next-labeled-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
538 (define-key rmail-summary-mode-map "o" 'rmail-summary-output-to-rmail-file) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
539 (define-key rmail-summary-mode-map "\C-o" 'rmail-summary-output) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
540 (define-key rmail-summary-mode-map "p" 'rmail-summary-previous-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
541 (define-key rmail-summary-mode-map "\ep" 'rmail-summary-previous-all) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
542 (define-key rmail-summary-mode-map "\e\C-p" 'rmail-summary-previous-labeled-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
543 (define-key rmail-summary-mode-map "q" 'rmail-summary-quit) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
544 (define-key rmail-summary-mode-map "r" 'rmail-summary-reply) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
545 (define-key rmail-summary-mode-map "s" 'rmail-summary-expunge-and-save) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
546 (define-key rmail-summary-mode-map "\es" 'rmail-summary-search) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
547 (define-key rmail-summary-mode-map "t" 'rmail-summary-toggle-header) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
548 (define-key rmail-summary-mode-map "u" 'rmail-summary-undelete) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
549 (define-key rmail-summary-mode-map "\M-u" 'rmail-summary-undelete-many) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
550 (define-key rmail-summary-mode-map "w" 'rmail-summary-wipe) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
551 (define-key rmail-summary-mode-map "x" 'rmail-summary-expunge) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
552 (define-key rmail-summary-mode-map "." 'rmail-summary-beginning-of-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
553 (define-key rmail-summary-mode-map "<" 'rmail-summary-first-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
554 (define-key rmail-summary-mode-map ">" 'rmail-summary-last-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
555 (define-key rmail-summary-mode-map " " 'rmail-summary-scroll-msg-up) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
556 (define-key rmail-summary-mode-map "\177" 'rmail-summary-scroll-msg-down) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
557 (define-key rmail-summary-mode-map "?" 'describe-mode) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
558 ) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
559 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
560 (defun rmail-summary-goto-msg (&optional n nowarn skip-rmail) |
130 | 561 (interactive "P") |
562 (if (consp n) (setq n (prefix-numeric-value n))) | |
563 (if (eobp) (forward-line -1)) | |
564 (beginning-of-line) | |
565 (let ((buf rmail-buffer) | |
566 (cur (point)) | |
567 (curmsg (string-to-int | |
568 (buffer-substring (point) | |
569 (min (point-max) (+ 5 (point))))))) | |
570 (if (not n) | |
571 (setq n curmsg) | |
572 (if (< n 1) | |
573 (progn (message "No preceding message") | |
574 (setq n 1))) | |
575 (if (> n rmail-total-messages) | |
576 (progn (message "No following message") | |
577 (goto-char (point-max)) | |
578 (rmail-summary-goto-msg))) | |
579 (goto-char (point-min)) | |
580 (if (not (re-search-forward (concat "^ *" (int-to-string n)) nil t)) | |
581 (progn (or nowarn (message "Message %d not found" n)) | |
582 (setq n curmsg) | |
583 (goto-char cur)))) | |
584 (beginning-of-line) | |
585 (skip-chars-forward " ") | |
586 (skip-chars-forward "0-9") | |
587 (save-excursion (if (= (following-char) ?-) | |
588 (let ((buffer-read-only nil)) | |
589 (delete-char 1) | |
590 (insert " ")))) | |
591 (beginning-of-line) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
592 (if skip-rmail |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
593 nil |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
594 (pop-to-buffer buf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
595 (rmail-show-message n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
596 (pop-to-buffer rmail-summary-buffer)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
597 |
130 | 598 (defun rmail-summary-scroll-msg-up (&optional dist) |
599 "Scroll other window forward." | |
600 (interactive "P") | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
601 (scroll-other-window dist)) |
130 | 602 |
603 (defun rmail-summary-scroll-msg-down (&optional dist) | |
604 "Scroll other window backward." | |
605 (interactive "P") | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
606 (scroll-other-window |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
607 (cond ((eq dist '-) nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
608 ((null dist) '-) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
609 (t (- (prefix-numeric-value dist)))))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
610 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
611 (defun rmail-summary-beginning-of-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
612 "Show current message from the beginning." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
613 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
614 (pop-to-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
615 (beginning-of-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
616 (pop-to-buffer rmail-summary-buffer)) |
130 | 617 |
618 (defun rmail-summary-quit () | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
619 "Quit out of Rmail and Rmail summary." |
130 | 620 (interactive) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
621 (rmail-summary-wipe) |
130 | 622 (rmail-quit)) |
623 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
624 (defun rmail-summary-wipe () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
625 "Kill and wipe away Rmail summary, remaining within Rmail." |
130 | 626 (interactive) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
627 (save-excursion (set-buffer rmail-buffer) (setq rmail-summary-buffer nil)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
628 (let ((rmail-wind (get-buffer-window rmail-buffer))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
629 (kill-buffer (current-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
630 ;; Delete window if not only one. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
631 (if (not (eq (selected-window) (next-window nil 'no-minibuf))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
632 (delete-window)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
633 ;; Switch to the rmail buffer in this window. |
130 | 634 ;; Select the window with rmail in it, then delete this window. |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
635 (and rmail-wind (select-window rmail-wind)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
636 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
637 (defun rmail-summary-expunge () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
638 "Actually erase all deleted messages and recompute summary headers." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
639 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
640 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
641 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
642 (rmail-only-expunge)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
643 (rmail-update-summary)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
644 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
645 (defun rmail-summary-expunge-and-save () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
646 "Expunge and save RMAIL file." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
647 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
648 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
649 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
650 (rmail-only-expunge) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
651 (save-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
652 (rmail-update-summary)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
653 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
654 (defun rmail-summary-get-new-mail () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
655 "Get new mail and recompute summary headers." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
656 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
657 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
658 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
659 (rmail-get-new-mail)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
660 (rmail-update-summary)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
661 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
662 (defun rmail-summary-input (filename) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
663 "Run Rmail on file FILENAME." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
664 (interactive "FRun rmail on RMAIL file: ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
665 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
666 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
667 (rmail filename))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
668 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
669 (defun rmail-summary-first-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
670 "Show first message in Rmail file from summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
671 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
672 (beginning-of-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
673 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
674 (defun rmail-summary-last-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
675 "Show last message in Rmail file from summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
676 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
677 (end-of-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
678 (forward-line -1)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
679 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
680 (defvar rmail-summary-edit-map nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
681 (if rmail-summary-edit-map |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
682 nil |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
683 (setq rmail-summary-edit-map |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
684 (nconc (make-sparse-keymap) (cdr text-mode-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
685 (define-key rmail-summary-edit-map "\C-c\C-c" 'rmail-cease-edit) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
686 (define-key rmail-summary-edit-map "\C-c\C-]" 'rmail-abort-edit)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
687 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
688 (defun rmail-summary-edit-current-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
689 "Edit the contents of this message." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
690 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
691 (pop-to-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
692 (rmail-edit-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
693 (use-local-map rmail-summary-edit-map)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
694 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
695 (defun rmail-summary-cease-edit () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
696 "Finish editing message, then go back to Rmail summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
697 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
698 (rmail-cease-edit) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
699 (pop-to-buffer rmail-summary-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
700 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
701 (defun rmail-summary-abort-edit () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
702 "Abort edit of current message; restore original contents. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
703 Go back to summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
704 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
705 (rmail-abort-edit) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
706 (pop-to-buffer rmail-summary-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
707 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
708 (defun rmail-summary-search (regexp &optional n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
709 "Show message containing next match for REGEXP. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
710 Prefix argument gives repeat count; negative argument means search |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
711 backwards (through earlier messages). |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
712 Interactively, empty argument means use same regexp used last time." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
713 (interactive |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
714 (let* ((reversep (< (prefix-numeric-value current-prefix-arg) 0)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
715 (prompt |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
716 (concat (if reversep "Reverse " "") "Rmail search (regexp): ")) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
717 regexp) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
718 (if rmail-search-last-regexp |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
719 (setq prompt (concat prompt |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
720 "(default " |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
721 rmail-search-last-regexp |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
722 ") "))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
723 (setq regexp (read-string prompt)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
724 (cond ((not (equal regexp "")) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
725 (setq rmail-search-last-regexp regexp)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
726 ((not rmail-search-last-regexp) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
727 (error "No previous Rmail search string"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
728 (list rmail-search-last-regexp |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
729 (prefix-numeric-value current-prefix-arg)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
730 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
731 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
732 (rmail-search regexp n))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
733 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
734 (defun rmail-summary-toggle-header () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
735 "Show original message header if pruned header currently shown, or vice versa." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
736 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
737 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
738 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
739 (rmail-toggle-header))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
740 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
741 (defun rmail-summary-add-label (label) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
742 "Add LABEL to labels associated with current Rmail message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
743 Completion is performed over known labels when reading." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
744 (interactive (list (rmail-read-label "Add label"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
745 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
746 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
747 (rmail-add-label label))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
748 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
749 (defun rmail-summary-kill-label (label) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
750 "Remove LABEL from labels associated with current Rmail message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
751 Completion is performed over known labels when reading." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
752 (interactive (list (rmail-read-label "Add label"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
753 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
754 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
755 (rmail-set-label label nil))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
756 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
757 ;;;; *** Rmail Summary Mailing Commands *** |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
758 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
759 (defun rmail-summary-mail () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
760 "Send mail in another window. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
761 While composing the message, use \\[mail-yank-original] to yank the |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
762 original message into it." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
763 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
764 (mail-other-window nil nil nil nil nil rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
765 (use-local-map (copy-keymap (current-local-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
766 (define-key (current-local-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
767 "\C-c\C-c" 'rmail-summary-send-and-exit)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
768 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
769 (defun rmail-summary-continue () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
770 "Continue composing outgoing message previously being composed." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
771 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
772 (mail-other-window t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
773 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
774 (defun rmail-summary-reply (just-sender) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
775 "Reply to the current message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
776 Normally include CC: to all other recipients of original message; |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
777 prefix argument means ignore them. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
778 While composing the reply, use \\[mail-yank-original] to yank the |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
779 original message into it." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
780 (interactive "P") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
781 (let (mailbuf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
782 (save-window-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
783 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
784 (rmail-reply just-sender) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
785 (setq mailbuf (current-buffer))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
786 (pop-to-buffer mailbuf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
787 (use-local-map (copy-keymap (current-local-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
788 (define-key (current-local-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
789 "\C-c\C-c" 'rmail-summary-send-and-exit))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
790 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
791 (defun rmail-summary-retry-failure () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
792 "Edit a mail message which is based on the contents of the current message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
793 For a message rejected by the mail system, extract the interesting headers and |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
794 the body of the original message; otherwise copy the current message." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
795 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
796 (let (mailbuf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
797 (save-window-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
798 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
799 (rmail-retry-failure) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
800 (setq mailbuf (current-buffer))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
801 (pop-to-buffer mailbuf) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
802 (use-local-map (copy-keymap (current-local-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
803 (define-key (current-local-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
804 "\C-c\C-c" 'rmail-summary-send-and-exit))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
805 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
806 (defun rmail-summary-send-and-exit () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
807 "Send mail reply and return to summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
808 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
809 (mail-send-and-exit t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
810 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
811 (defun rmail-summary-forward () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
812 "Forward the current message to another user." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
813 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
814 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
815 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
816 (rmail-forward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
817 (use-local-map (copy-keymap (current-local-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
818 (define-key (current-local-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
819 "\C-c\C-c" 'rmail-summary-send-and-exit))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
820 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
821 ;; Summary output commands. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
822 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
823 (defun rmail-summary-output-to-rmail-file () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
824 "Append the current message to an Rmail file named FILE-NAME. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
825 If the file does not exist, ask if it should be created. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
826 If file is being visited, the message is appended to the Emacs |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
827 buffer visiting that file." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
828 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
829 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
830 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
831 (call-interactively 'rmail-output-to-rmail-file))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
832 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
833 (defun rmail-summary-output () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
834 "Append this message to Unix mail file named FILE-NAME." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
835 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
836 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
837 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
838 (call-interactively 'rmail-output))) |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
130
diff
changeset
|
839 |
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
130
diff
changeset
|
840 ;;; rmailsum.el ends here |