Mercurial > emacs
annotate lisp/mail/rmailsum.el @ 7848:163a9c1b5394
(X_IO_BUG): Defined.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 11 Jun 1994 12:12:57 +0000 |
parents | 6f9af07c5783 |
children | 466112a5ae5a |
rev | line source |
---|---|
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2232
diff
changeset
|
1 ;;; rmailsum.el --- make summary buffers for the mail reader |
2232
4f9d60f7de9d
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2164
diff
changeset
|
2 |
7298 | 3 ;; Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc. |
845 | 4 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
5 ;; Maintainer: FSF |
814
38b2499cb3e9
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
6 ;; Keywords: mail |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
658
diff
changeset
|
7 |
130 | 8 ;; This file is part of GNU Emacs. |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; 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
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
130 | 13 ;; any later version. |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
22 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
23 | |
2232
4f9d60f7de9d
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2164
diff
changeset
|
24 ;;; Commentary: |
4f9d60f7de9d
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2164
diff
changeset
|
25 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
26 ;; Extended by Bob Weiner of Motorola |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
27 ;; 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
|
28 ;; bindings in both modes wholly compatible. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
29 |
2232
4f9d60f7de9d
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2164
diff
changeset
|
30 ;;; Code: |
4f9d60f7de9d
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2164
diff
changeset
|
31 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
32 ;; Entry points for making a summary buffer. |
130 | 33 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
34 ;; Regenerate the contents of the summary |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
35 ;; using the same selection criterion as last time. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
36 ;; 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
|
37 (defun rmail-update-summary (&rest ignore) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
38 (apply (car rmail-summary-redo) (cdr rmail-summary-redo))) |
130 | 39 |
40 (defun rmail-summary () | |
41 "Display a summary of all messages, one line per message." | |
42 (interactive) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
43 (rmail-new-summary "All" '(rmail-summary) nil)) |
130 | 44 |
45 (defun rmail-summary-by-labels (labels) | |
46 "Display a summary of all messages with one or more LABELS. | |
47 LABELS should be a string containing the desired labels, separated by commas." | |
48 (interactive "sLabels to summarize by: ") | |
49 (if (string= labels "") | |
50 (setq labels (or rmail-last-multi-labels | |
51 (error "No label specified")))) | |
52 (setq rmail-last-multi-labels labels) | |
53 (rmail-new-summary (concat "labels " labels) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
54 (list 'rmail-summary-by-labels labels) |
130 | 55 'rmail-message-labels-p |
56 (concat ", \\(" (mail-comma-list-regexp labels) "\\),"))) | |
57 | |
58 (defun rmail-summary-by-recipients (recipients &optional primary-only) | |
59 "Display a summary of all messages with the given RECIPIENTS. | |
60 Normally checks the To, From and Cc fields of headers; | |
61 but if PRIMARY-ONLY is non-nil (prefix arg given), | |
62 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
|
63 RECIPIENTS is a string of regexps separated by commas." |
130 | 64 (interactive "sRecipients to summarize by: \nP") |
65 (rmail-new-summary | |
66 (concat "recipients " recipients) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
67 (list 'rmail-summary-by-recipients recipients primary-only) |
130 | 68 'rmail-message-recipients-p |
69 (mail-comma-list-regexp recipients) primary-only)) | |
70 | |
71 (defun rmail-summary-by-regexp (regexp) | |
72 "Display a summary of all messages according to regexp REGEXP. | |
73 If the regular expression is found in the header of the message | |
74 \(including in the date and other lines, as well as the subject line), | |
75 Emacs will list the header line in the RMAIL-summary." | |
76 (interactive "sRegexp to summarize by: ") | |
77 (if (string= regexp "") | |
78 (setq regexp (or rmail-last-regexp | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
79 (error "No regexp specified.")))) |
130 | 80 (setq rmail-last-regexp regexp) |
81 (rmail-new-summary (concat "regexp " regexp) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
82 (list 'rmail-summary-by-regexp regexp) |
130 | 83 'rmail-message-regexp-p |
84 regexp)) | |
85 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
86 ;; rmail-summary-by-topic |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
87 ;; 1989 R.A. Schnitzler |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
88 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
89 (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
|
90 "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
|
91 Normally checks the Subject field of headers; |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
92 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
|
93 look in the whole message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
94 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
|
95 (interactive "sTopics to summarize by: \nP") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
96 (rmail-new-summary |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
97 (concat "about " subject) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
98 (list 'rmail-summary-by-topic subject whole-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
99 'rmail-message-subject-p |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
100 (mail-comma-list-regexp subject) whole-message)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
101 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
102 (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
|
103 (save-restriction |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
104 (goto-char (rmail-msgbeg msg)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
105 (search-forward "\n*** EOOH ***\n") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
106 (narrow-to-region |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
107 (point) |
3349
31390246a7a2
(rmail-message-subject-p): Fix typo in string constant.
Richard M. Stallman <rms@gnu.org>
parents:
3198
diff
changeset
|
108 (progn (search-forward (if whole-message "\^_" "\n\n")) (point))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
109 (goto-char (point-min)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
110 (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
|
111 (string-match subject (or (mail-fetch-field "Subject") "")) ))) |
3443
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
112 |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
113 (defun rmail-summary-by-senders (senders) |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
114 "Display a summary of all messages with the given SENDERS. |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
115 SENDERS is a string of names separated by commas." |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
116 (interactive "sSenders to summarize by: ") |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
117 (rmail-new-summary |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
118 (concat "senders " senders) |
5507
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
119 (list 'rmail-summary-by-senders senders) |
3443
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
120 'rmail-message-senders-p |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
121 (mail-comma-list-regexp senders))) |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
122 |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
123 (defun rmail-message-senders-p (msg senders) |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
124 (save-restriction |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
125 (goto-char (rmail-msgbeg msg)) |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
126 (search-forward "\n*** EOOH ***\n") |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
127 (narrow-to-region (point) (progn (search-forward "\n\n") (point))) |
7a15b35366f8
(rmail-summary-by-senders): New function.
Richard M. Stallman <rms@gnu.org>
parents:
3349
diff
changeset
|
128 (string-match senders (or (mail-fetch-field "From") "")))) |
130 | 129 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
130 ;; General making of a summary buffer. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
131 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
132 (defvar rmail-summary-symbol-number 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
133 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
134 (defun rmail-new-summary (description redo-form function &rest args) |
130 | 135 "Create a summary of selected messages. |
136 DESCRIPTION makes part of the mode line of the summary buffer. | |
137 For each message, FUNCTION is applied to the message number and ARGS... | |
138 and if the result is non-nil, that message is included. | |
139 nil for FUNCTION means all messages." | |
140 (message "Computing summary lines...") | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
141 (let (sumbuf mesg was-in-summary) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
142 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
143 ;; Go to the Rmail buffer. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
144 (if (eq major-mode 'rmail-summary-mode) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
145 (progn |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
146 (setq was-in-summary t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
147 (set-buffer rmail-buffer))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
148 ;; Find its summary buffer, or make one. |
3198
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
149 (setq sumbuf |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
150 (if (and rmail-summary-buffer |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
151 (buffer-name rmail-summary-buffer)) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
152 rmail-summary-buffer |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
153 (generate-new-buffer (concat (buffer-name) "-summary")))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
154 (setq mesg rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
155 ;; 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
|
156 (let ((summary-msgs ()) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
157 (new-summary-line-count 0)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
158 (let ((msgnum 1) |
6762
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
159 (buffer-read-only nil) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
160 (old-min (point-min-marker)) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
161 (old-max (point-max-marker))) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
162 ;; Can't use save-restriction here; that doesn't work if we |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
163 ;; plan to modify text outside the original restriction. |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
164 (save-excursion |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
165 (widen) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
166 (goto-char (point-min)) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
167 (while (>= rmail-total-messages msgnum) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
168 (if (or (null function) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
169 (apply function (cons msgnum args))) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
170 (setq summary-msgs |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
171 (cons (cons msgnum (rmail-make-summary-line msgnum)) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
172 summary-msgs))) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
173 (setq msgnum (1+ msgnum))) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
174 (setq summary-msgs (nreverse summary-msgs))) |
f77de1e2b48b
(rmail-new-summary): Avoid unsafe save-restriction.
Karl Heuer <kwzh@gnu.org>
parents:
6726
diff
changeset
|
175 (narrow-to-region old-min old-max)) |
3198
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
176 ;; Temporarily, while summary buffer is unfinished, |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
177 ;; we "don't have" a summary. |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
178 (setq rmail-summary-buffer nil) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
179 (save-excursion |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
180 (let ((rbuf (current-buffer)) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
181 (total rmail-total-messages)) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
182 (set-buffer sumbuf) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
183 ;; Set up the summary buffer's contents. |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
184 (let ((buffer-read-only nil)) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
185 (erase-buffer) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
186 (while summary-msgs |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
187 (princ (cdr (car summary-msgs)) sumbuf) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
188 (setq summary-msgs (cdr summary-msgs))) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
189 (goto-char (point-min))) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
190 ;; Set up the rest of its state and local variables. |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
191 (setq buffer-read-only t) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
192 (rmail-summary-mode) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
193 (make-local-variable 'minor-mode-alist) |
3466
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
194 (setq minor-mode-alist (list '(t (concat ": " description)))) |
3198
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
195 (setq rmail-buffer rbuf |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
196 rmail-summary-redo redo-form |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
197 rmail-total-messages total)))) |
18612999f80c
(rmail-new-summary): Set rmail-summary-buffer
Richard M. Stallman <rms@gnu.org>
parents:
3100
diff
changeset
|
198 (setq rmail-summary-buffer sumbuf)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
199 ;; 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
|
200 (or was-in-summary |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
201 (pop-to-buffer sumbuf)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
202 (rmail-summary-goto-msg mesg t t) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
203 (message "Computing summary lines...done"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
204 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
205 ;; Low levels of generating a summary. |
130 | 206 |
207 (defun rmail-make-summary-line (msg) | |
208 (let ((line (or (aref rmail-summary-vector (1- msg)) | |
209 (progn | |
210 (setq new-summary-line-count | |
211 (1+ new-summary-line-count)) | |
212 (if (zerop (% new-summary-line-count 10)) | |
213 (message "Computing summary lines...%d" | |
214 new-summary-line-count)) | |
215 (rmail-make-summary-line-1 msg))))) | |
216 ;; Fix up the part of the summary that says "deleted" or "unseen". | |
217 (aset line 4 | |
218 (if (rmail-message-deleted-p msg) ?\D | |
219 (if (= ?0 (char-after (+ 3 (rmail-msgbeg msg)))) | |
220 ?\- ?\ ))) | |
221 line)) | |
222 | |
223 (defun rmail-make-summary-line-1 (msg) | |
224 (goto-char (rmail-msgbeg msg)) | |
225 (let* ((lim (save-excursion (forward-line 2) (point))) | |
226 pos | |
227 (labels | |
228 (progn | |
229 (forward-char 3) | |
230 (concat | |
231 ; (if (save-excursion (re-search-forward ",answered," lim t)) | |
232 ; "*" "") | |
233 ; (if (save-excursion (re-search-forward ",filed," lim t)) | |
234 ; "!" "") | |
235 (if (progn (search-forward ",,") (eolp)) | |
236 "" | |
237 (concat "{" | |
238 (buffer-substring (point) | |
239 (progn (end-of-line) (point))) | |
240 "} "))))) | |
241 (line | |
242 (progn | |
243 (forward-line 1) | |
244 (if (looking-at "Summary-line: ") | |
245 (progn | |
246 (goto-char (match-end 0)) | |
247 (setq line | |
248 (buffer-substring (point) | |
249 (progn (forward-line 1) (point))))))))) | |
250 ;; Obsolete status lines lacking a # should be flushed. | |
251 (and line | |
252 (not (string-match "#" line)) | |
253 (progn | |
254 (delete-region (point) | |
255 (progn (forward-line -1) (point))) | |
256 (setq line nil))) | |
257 ;; If we didn't get a valid status line from the message, | |
258 ;; make a new one and put it in the message. | |
259 (or line | |
260 (let* ((case-fold-search t) | |
261 (next (rmail-msgend msg)) | |
262 (beg (if (progn (goto-char (rmail-msgbeg msg)) | |
263 (search-forward "\n*** EOOH ***\n" next t)) | |
264 (point) | |
265 (forward-line 1) | |
266 (point))) | |
267 (end (progn (search-forward "\n\n" nil t) (point)))) | |
268 (save-restriction | |
269 (narrow-to-region beg end) | |
270 (goto-char beg) | |
271 (setq line (rmail-make-basic-summary-line))) | |
272 (goto-char (rmail-msgbeg msg)) | |
273 (forward-line 2) | |
274 (insert "Summary-line: " line))) | |
275 (setq pos (string-match "#" line)) | |
276 (aset rmail-summary-vector (1- msg) | |
277 (concat (format "%4d " msg) | |
278 (substring line 0 pos) | |
279 labels | |
280 (substring line (1+ pos)))))) | |
281 | |
282 (defun rmail-make-basic-summary-line () | |
283 (goto-char (point-min)) | |
284 (concat (save-excursion | |
285 (if (not (re-search-forward "^Date:" nil t)) | |
286 " " | |
287 (cond ((re-search-forward "\\([^0-9:]\\)\\([0-3]?[0-9]\\)\\([- \t_]+\\)\\([adfjmnos][aceopu][bcglnprtvy]\\)" | |
288 (save-excursion (end-of-line) (point)) t) | |
289 (format "%2d-%3s" | |
290 (string-to-int (buffer-substring | |
291 (match-beginning 2) | |
292 (match-end 2))) | |
293 (buffer-substring | |
294 (match-beginning 4) (match-end 4)))) | |
295 ((re-search-forward "\\([^a-z]\\)\\([adfjmnos][acepou][bcglnprtvy]\\)\\([-a-z \t_]*\\)\\([0-9][0-9]?\\)" | |
296 (save-excursion (end-of-line) (point)) t) | |
297 (format "%2d-%3s" | |
298 (string-to-int (buffer-substring | |
299 (match-beginning 4) | |
300 (match-end 4))) | |
301 (buffer-substring | |
302 (match-beginning 2) (match-end 2)))) | |
303 (t "??????")))) | |
304 " " | |
305 (save-excursion | |
306 (if (not (re-search-forward "^From:[ \t]*" nil t)) | |
307 " " | |
308 (let* ((from (mail-strip-quoted-names | |
309 (buffer-substring | |
310 (1- (point)) | |
7421
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
311 ;; Get all the lines of the From field |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
312 ;; so that we get a whole comment if there is one, |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
313 ;; so that mail-strip-quoted-names can discard it. |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
314 (let ((opoint (point))) |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
315 (while (progn (forward-line 1) |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
316 (looking-at "[ \t]"))) |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
317 ;; Back up over newline, then trailing spaces or tabs |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
318 (forward-char -1) |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
319 (skip-chars-backward " \t") |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
320 (point))))) |
6f9af07c5783
(rmail-make-basic-summary-line): Get all the lines of the From field.
Richard M. Stallman <rms@gnu.org>
parents:
7368
diff
changeset
|
321 len mch lo) |
130 | 322 (if (string-match (concat "^" |
323 (regexp-quote (user-login-name)) | |
324 "\\($\\|@\\)") | |
325 from) | |
326 (save-excursion | |
327 (goto-char (point-min)) | |
328 (if (not (re-search-forward "^To:[ \t]*" nil t)) | |
329 nil | |
330 (setq from | |
331 (concat "to: " | |
332 (mail-strip-quoted-names | |
333 (buffer-substring | |
334 (point) | |
335 (progn (end-of-line) | |
336 (skip-chars-backward " \t") | |
337 (point))))))))) | |
338 (setq len (length from)) | |
339 (setq mch (string-match "[@%]" from)) | |
340 (format "%25s" | |
341 (if (or (not mch) (<= len 25)) | |
342 (substring from (max 0 (- len 25))) | |
343 (substring from | |
7368
5e3d372d6016
(rmail-make-basic-summary-line): Show 14 chars before @ and 11 after.
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
344 (setq lo (cond ((< (- mch 14) 0) 0) |
5e3d372d6016
(rmail-make-basic-summary-line): Show 14 chars before @ and 11 after.
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
345 ((< len (+ mch 11)) |
130 | 346 (- len 25)) |
7368
5e3d372d6016
(rmail-make-basic-summary-line): Show 14 chars before @ and 11 after.
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
347 (t (- mch 14)))) |
130 | 348 (min len (+ lo 25)))))))) |
349 " #" | |
350 (if (re-search-forward "^Subject:" nil t) | |
351 (progn (skip-chars-forward " \t") | |
352 (buffer-substring (point) | |
353 (progn (end-of-line) | |
354 (point)))) | |
355 (re-search-forward "[\n][\n]+" nil t) | |
356 (buffer-substring (point) (progn (end-of-line) (point)))) | |
357 "\n")) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
358 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
359 ;; Simple motion in a summary buffer. |
130 | 360 |
361 (defun rmail-summary-next-all (&optional number) | |
362 (interactive "p") | |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
363 (forward-line (if number number 1)) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
364 (display-buffer rmail-buffer)) |
130 | 365 |
366 (defun rmail-summary-previous-all (&optional number) | |
367 (interactive "p") | |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
368 (forward-line (- (if number number 1))) |
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
369 (display-buffer rmail-buffer)) |
130 | 370 |
371 (defun rmail-summary-next-msg (&optional number) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
372 "Display next non-deleted msg from rmail file. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
373 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
|
374 messages, or backward if NUMBER is negative." |
130 | 375 (interactive "p") |
376 (forward-line 0) | |
3466
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
377 (and (> number 0) (end-of-line)) |
130 | 378 (let ((count (if (< number 0) (- number) number)) |
379 (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
|
380 (non-del-msg-found nil)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
381 (while (and (> count 0) (setq non-del-msg-found |
3509
a1ef317ceb18
(rmail-summary-next-msg): Fix number of dots in regexp.
Richard M. Stallman <rms@gnu.org>
parents:
3466
diff
changeset
|
382 (or (funcall search "^....[^D]" nil t) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
383 non-del-msg-found))) |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
384 (setq count (1- count)))) |
3466
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
385 (beginning-of-line) |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
386 (display-buffer rmail-buffer)) |
130 | 387 |
388 (defun rmail-summary-previous-msg (&optional number) | |
389 (interactive "p") | |
390 (rmail-summary-next-msg (- (if number number 1)))) | |
391 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
392 (defun rmail-summary-next-labeled-message (n labels) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
393 "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
|
394 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
|
395 (interactive "p\nsMove to next msg with labels: ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
396 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
397 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
398 (rmail-next-labeled-message n labels))) |
130 | 399 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
400 (defun rmail-summary-previous-labeled-message (n labels) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
401 "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
|
402 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
|
403 (interactive "p\nsMove to previous msg with labels: ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
404 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
405 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
406 (rmail-previous-labeled-message n labels))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
407 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
408 ;; Delete and undelete summary commands. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
409 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
410 (defun rmail-summary-delete-forward (&optional backward) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
411 "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
|
412 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
|
413 With prefix argument, delete and move backward." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
414 (interactive "P") |
130 | 415 (let (end) |
416 (rmail-summary-goto-msg) | |
417 (pop-to-buffer rmail-buffer) | |
5370
45ed020959f1
(rmail-summary-delete-forward): Move to next or prev msg
Richard M. Stallman <rms@gnu.org>
parents:
5275
diff
changeset
|
418 (rmail-delete-message) |
45ed020959f1
(rmail-summary-delete-forward): Move to next or prev msg
Richard M. Stallman <rms@gnu.org>
parents:
5275
diff
changeset
|
419 (let ((del-msg rmail-current-message)) |
45ed020959f1
(rmail-summary-delete-forward): Move to next or prev msg
Richard M. Stallman <rms@gnu.org>
parents:
5275
diff
changeset
|
420 (pop-to-buffer rmail-summary-buffer) |
45ed020959f1
(rmail-summary-delete-forward): Move to next or prev msg
Richard M. Stallman <rms@gnu.org>
parents:
5275
diff
changeset
|
421 (rmail-summary-mark-deleted del-msg) |
45ed020959f1
(rmail-summary-delete-forward): Move to next or prev msg
Richard M. Stallman <rms@gnu.org>
parents:
5275
diff
changeset
|
422 (while (and (not (if backward (bobp) (eobp))) |
5514
8112b5b2651b
(rmail-summary-delete-forward): Fix regexp
Richard M. Stallman <rms@gnu.org>
parents:
5507
diff
changeset
|
423 (save-excursion (beginning-of-line) |
8112b5b2651b
(rmail-summary-delete-forward): Fix regexp
Richard M. Stallman <rms@gnu.org>
parents:
5507
diff
changeset
|
424 (looking-at " +[0-9]+D"))) |
5370
45ed020959f1
(rmail-summary-delete-forward): Move to next or prev msg
Richard M. Stallman <rms@gnu.org>
parents:
5275
diff
changeset
|
425 (forward-line (if backward -1 1)))))) |
130 | 426 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
427 (defun rmail-summary-delete-backward () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
428 "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
|
429 Deleted messages stay in the file until the \\[rmail-expunge] command is given." |
130 | 430 (interactive) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
431 (rmail-summary-delete-forward t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
432 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
433 (defun rmail-summary-mark-deleted (&optional n undel) |
3100
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
434 (and n (rmail-summary-goto-msg n t t)) |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
435 (or (eobp) |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
436 (let ((buffer-read-only nil)) |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
437 (skip-chars-forward " ") |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
438 (skip-chars-forward "[0-9]") |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
439 (if undel |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
440 (if (looking-at "D") |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
441 (progn (delete-char 1) (insert " "))) |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
442 (delete-char 1) |
eb6ae6faff24
(rmail-summary-mark-deleted): Check for end of buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2233
diff
changeset
|
443 (insert "D")))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
444 (beginning-of-line)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
445 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
446 (defun rmail-summary-mark-undeleted (n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
447 (rmail-summary-mark-deleted n t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
448 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
449 (defun rmail-summary-deleted-p (&optional n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
450 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
451 (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
|
452 (skip-chars-forward " ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
453 (skip-chars-forward "[0-9]") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
454 (looking-at "D"))) |
130 | 455 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
456 (defun rmail-summary-undelete (&optional arg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
457 "Undelete current message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
458 Optional prefix ARG means undelete ARG previous messages." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
459 (interactive "p") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
460 (if (/= arg 1) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
461 (rmail-summary-undelete-many arg) |
5678
3824222fed2e
(rmail-summary-undelete): If we don't undelete anything, don't move point.
Richard M. Stallman <rms@gnu.org>
parents:
5514
diff
changeset
|
462 (let ((buffer-read-only nil) |
3824222fed2e
(rmail-summary-undelete): If we don't undelete anything, don't move point.
Richard M. Stallman <rms@gnu.org>
parents:
5514
diff
changeset
|
463 (opoint (point))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
464 (end-of-line) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
465 (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
|
466 (replace-match "\\1 ") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
467 (rmail-summary-goto-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
468 (pop-to-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
469 (and (rmail-message-deleted-p rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
470 (rmail-undelete-previous-message)) |
5678
3824222fed2e
(rmail-summary-undelete): If we don't undelete anything, don't move point.
Richard M. Stallman <rms@gnu.org>
parents:
5514
diff
changeset
|
471 (pop-to-buffer rmail-summary-buffer)) |
3824222fed2e
(rmail-summary-undelete): If we don't undelete anything, don't move point.
Richard M. Stallman <rms@gnu.org>
parents:
5514
diff
changeset
|
472 (t (goto-char opoint)))))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
473 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
474 (defun rmail-summary-undelete-many (&optional n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
475 "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
|
476 (interactive "P") |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
477 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
478 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
479 (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
|
480 (rmail-current-message init-msg) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
481 (n (or n rmail-total-messages)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
482 (msgs-undeled 0)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
483 (while (and (> rmail-current-message 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
484 (< msgs-undeled n)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
485 (if (rmail-message-deleted-p rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
486 (progn (rmail-set-attribute "deleted" nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
487 (setq msgs-undeled (1+ msgs-undeled)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
488 (setq rmail-current-message (1- rmail-current-message))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
489 (set-buffer rmail-summary-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
490 (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
|
491 (while (and (> rmail-current-message 0) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
492 (< msgs-undeled n)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
493 (if (rmail-summary-deleted-p rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
494 (progn (rmail-summary-mark-undeleted rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
495 (setq msgs-undeled (1+ msgs-undeled)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
496 (setq rmail-current-message (1- rmail-current-message)))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
497 (rmail-summary-goto-msg))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
498 |
130 | 499 ;; Rmail Summary mode is suitable only for specially formatted data. |
500 (put 'rmail-summary-mode 'mode-class 'special) | |
501 | |
502 (defun rmail-summary-mode () | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
503 "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
|
504 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
|
505 corresponding mail messages in the rmail buffer. |
130 | 506 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
507 All normal editing commands are turned off. |
5121
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
508 Instead, nearly all the Rmail mode commands are available, |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
509 though many of them move only among the messages in the summary. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
510 |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
511 These additional commands exist: |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
512 |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
513 \\[rmail-summary-undelete-many] Undelete all or prefix arg deleted messages. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
514 \\[rmail-summary-wipe] Delete the summary and go to the Rmail buffer. |
130 | 515 |
5121
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
516 Commands for sorting the summary: |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
517 |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
518 \\[rmail-summary-sort-by-date] Sort by date. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
519 \\[rmail-summary-sort-by-subject] Sort by subject. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
520 \\[rmail-summary-sort-by-author] Sort by author. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
521 \\[rmail-summary-sort-by-recipient] Sort by recipient. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
522 \\[rmail-summary-sort-by-correspondent] Sort by correspondent. |
6717
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
523 \\[rmail-summary-sort-by-lines] Sort by lines. |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
524 \\[rmail-summary-sort-by-keywords] Sort by keywords." |
130 | 525 (interactive) |
526 (kill-all-local-variables) | |
527 (setq major-mode 'rmail-summary-mode) | |
528 (setq mode-name "RMAIL Summary") | |
529 (setq truncate-lines t) | |
530 (setq buffer-read-only t) | |
531 (set-syntax-table text-mode-syntax-table) | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
532 (make-local-variable 'rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
533 (make-local-variable 'rmail-total-messages) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
534 (make-local-variable 'rmail-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
535 (setq rmail-current-message nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
536 (make-local-variable 'rmail-summary-redo) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
537 (setq rmail-summary-redo nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
538 (make-local-variable 'revert-buffer-function) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
539 (make-local-variable 'post-command-hook) |
6724
6728ad7f85e9
(rmail-summary-disable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6717
diff
changeset
|
540 (rmail-summary-enable) |
130 | 541 (run-hooks 'rmail-summary-mode-hook)) |
542 | |
6724
6728ad7f85e9
(rmail-summary-disable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6717
diff
changeset
|
543 ;; Summary features need to be disabled during edit mode. |
6728ad7f85e9
(rmail-summary-disable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6717
diff
changeset
|
544 (defun rmail-summary-disable () |
6726 | 545 (use-local-map text-mode-map) |
546 (remove-hook 'post-command-hook 'rmail-summary-rmail-update) | |
547 (setq revert-buffer-function nil)) | |
6724
6728ad7f85e9
(rmail-summary-disable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6717
diff
changeset
|
548 |
6728ad7f85e9
(rmail-summary-disable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6717
diff
changeset
|
549 (defun rmail-summary-enable () |
6726 | 550 (use-local-map rmail-summary-mode-map) |
551 (add-hook 'post-command-hook 'rmail-summary-rmail-update) | |
552 (setq revert-buffer-function 'rmail-update-summary)) | |
6724
6728ad7f85e9
(rmail-summary-disable): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6717
diff
changeset
|
553 |
2164
6e276a32aef1
(rmail-summary-next-msg): Call display-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
2077
diff
changeset
|
554 ;; 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
|
555 ;; 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
|
556 ;; 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
|
557 (defun rmail-summary-rmail-update () |
6961
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
558 (let (buffer-read-only) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
559 (save-excursion |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
560 ;; If at end of buffer, pretend we are on the last text line. |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
561 (if (eobp) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
562 (forward-line -1)) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
563 (beginning-of-line) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
564 (skip-chars-forward " ") |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
565 (let ((msg-num (string-to-int (buffer-substring |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
566 (point) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
567 (progn (skip-chars-forward "0-9") |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
568 (point)))))) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
569 (or (eq rmail-current-message msg-num) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
570 (let ((window (get-buffer-window rmail-buffer)) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
571 (owin (selected-window))) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
572 (setq rmail-current-message msg-num) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
573 (if (= (following-char) ?-) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
574 (progn |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
575 (delete-char 1) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
576 (insert " "))) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
577 (if window |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
578 ;; Using save-window-excursion would cause the new value |
3461
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
579 ;; of point to get lost. |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
580 (unwind-protect |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
581 (progn |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
582 (select-window window) |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
583 (rmail-show-message msg-num)) |
6961
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
584 (select-window owin)) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
585 (save-excursion |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
586 (set-buffer rmail-buffer) |
666f11765323
(rmail-summary-rmail-update): Update rmail buffer even if it isn't displayed.
Karl Heuer <kwzh@gnu.org>
parents:
6762
diff
changeset
|
587 (rmail-show-message msg-num))))))))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
588 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
589 (defvar rmail-summary-mode-map nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
590 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
591 (if rmail-summary-mode-map |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
592 nil |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
593 (setq rmail-summary-mode-map (make-keymap)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
594 (suppress-keymap rmail-summary-mode-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
595 (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
|
596 (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
|
597 (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
|
598 (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
|
599 (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
|
600 (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
|
601 (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
|
602 (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
|
603 (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
|
604 (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
|
605 (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
|
606 (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
|
607 (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
|
608 (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
|
609 (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
|
610 (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
|
611 (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
|
612 (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
|
613 (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
|
614 (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
|
615 (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
|
616 (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
|
617 (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
|
618 (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
|
619 (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
|
620 (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
|
621 (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
|
622 (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
|
623 (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
|
624 (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
|
625 (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
|
626 (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
|
627 (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
|
628 (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
|
629 (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
|
630 (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
|
631 (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
|
632 (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
|
633 (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
|
634 (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
|
635 (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
|
636 (define-key rmail-summary-mode-map "?" 'describe-mode) |
3879
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
637 (define-key rmail-summary-mode-map "\C-c\C-s\C-d" |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
638 'rmail-summary-sort-by-date) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
639 (define-key rmail-summary-mode-map "\C-c\C-s\C-s" |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
640 'rmail-summary-sort-by-subject) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
641 (define-key rmail-summary-mode-map "\C-c\C-s\C-a" |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
642 'rmail-summary-sort-by-author) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
643 (define-key rmail-summary-mode-map "\C-c\C-s\C-r" |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
644 'rmail-summary-sort-by-recipient) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
645 (define-key rmail-summary-mode-map "\C-c\C-s\C-c" |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
646 'rmail-summary-sort-by-correspondent) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
647 (define-key rmail-summary-mode-map "\C-c\C-s\C-l" |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
648 'rmail-summary-sort-by-lines) |
6717
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
649 (define-key rmail-summary-mode-map "\C-c\C-s\C-k" |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
650 'rmail-summary-sort-by-keywords) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
651 ) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
652 |
3862
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
653 ;;; Menu bar bindings. |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
654 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
655 (define-key rmail-summary-mode-map [menu-bar] (make-sparse-keymap)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
656 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
657 (define-key rmail-summary-mode-map [menu-bar classify] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
658 (cons "Classify" (make-sparse-keymap "Classify"))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
659 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
660 (define-key rmail-summary-mode-map [menu-bar classify output-inbox] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
661 '("Output (inbox)" . rmail-summary-output)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
662 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
663 (define-key rmail-summary-mode-map [menu-bar classify output] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
664 '("Output (Rmail)" . rmail-summary-output-to-rmail-file)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
665 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
666 (define-key rmail-summary-mode-map [menu-bar classify kill-label] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
667 '("Kill Label" . rmail-summary-kill-label)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
668 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
669 (define-key rmail-summary-mode-map [menu-bar classify add-label] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
670 '("Add Label" . rmail-summary-add-label)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
671 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
672 (define-key rmail-summary-mode-map [menu-bar summary] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
673 (cons "Summary" (make-sparse-keymap "Summary"))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
674 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
675 (define-key rmail-summary-mode-map [menu-bar summary labels] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
676 '("By Labels" . rmail-summary-by-labels)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
677 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
678 (define-key rmail-summary-mode-map [menu-bar summary recipients] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
679 '("By Recipients" . rmail-summary-by-recipients)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
680 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
681 (define-key rmail-summary-mode-map [menu-bar summary topic] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
682 '("By Topic" . rmail-summary-by-topic)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
683 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
684 (define-key rmail-summary-mode-map [menu-bar summary regexp] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
685 '("By Regexp" . rmail-summary-by-regexp)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
686 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
687 (define-key rmail-summary-mode-map [menu-bar summary all] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
688 '("All" . rmail-summary)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
689 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
690 (define-key rmail-summary-mode-map [menu-bar mail] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
691 (cons "Mail" (make-sparse-keymap "Mail"))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
692 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
693 (define-key rmail-summary-mode-map [menu-bar mail continue] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
694 '("Continue" . rmail-summary-continue)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
695 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
696 (define-key rmail-summary-mode-map [menu-bar mail forward] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
697 '("Forward" . rmail-summary-forward)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
698 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
699 (define-key rmail-summary-mode-map [menu-bar mail retry] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
700 '("Retry" . rmail-summary-retry-failure)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
701 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
702 (define-key rmail-summary-mode-map [menu-bar mail reply] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
703 '("Reply" . rmail-summary-reply)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
704 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
705 (define-key rmail-summary-mode-map [menu-bar mail mail] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
706 '("Mail" . rmail-summary-mail)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
707 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
708 (define-key rmail-summary-mode-map [menu-bar delete] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
709 (cons "Delete" (make-sparse-keymap "Delete"))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
710 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
711 (define-key rmail-summary-mode-map [menu-bar delete expunge/save] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
712 '("Expunge/Save" . rmail-summary-expunge-and-save)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
713 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
714 (define-key rmail-summary-mode-map [menu-bar delete expunge] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
715 '("Expunge" . rmail-summary-expunge)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
716 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
717 (define-key rmail-summary-mode-map [menu-bar delete undelete] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
718 '("Undelete" . rmail-summary-undelete)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
719 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
720 (define-key rmail-summary-mode-map [menu-bar delete delete] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
721 '("Delete" . rmail-summary-delete-forward)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
722 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
723 (define-key rmail-summary-mode-map [menu-bar move] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
724 (cons "Move" (make-sparse-keymap "Move"))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
725 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
726 (define-key rmail-summary-mode-map [menu-bar move search-back] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
727 '("Search Back" . rmail-summary-search-backward)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
728 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
729 (define-key rmail-summary-mode-map [menu-bar move search] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
730 '("Search" . rmail-summary-search)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
731 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
732 (define-key rmail-summary-mode-map [menu-bar move previous] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
733 '("Previous Nondeleted" . rmail-summary-previous-msg)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
734 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
735 (define-key rmail-summary-mode-map [menu-bar move next] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
736 '("Next Nondeleted" . rmail-summary-next-msg)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
737 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
738 (define-key rmail-summary-mode-map [menu-bar move last] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
739 '("Last" . rmail-summary-last-message)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
740 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
741 (define-key rmail-summary-mode-map [menu-bar move first] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
742 '("First" . rmail-summary-first-message)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
743 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
744 (define-key rmail-summary-mode-map [menu-bar move previous] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
745 '("Previous" . rmail-summary-previous-all)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
746 |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
747 (define-key rmail-summary-mode-map [menu-bar move next] |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
748 '("Next" . rmail-summary-next-all)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
749 |
6422
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
750 (defvar rmail-summary-overlay nil) |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
751 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
752 (defun rmail-summary-goto-msg (&optional n nowarn skip-rmail) |
130 | 753 (interactive "P") |
754 (if (consp n) (setq n (prefix-numeric-value n))) | |
755 (if (eobp) (forward-line -1)) | |
756 (beginning-of-line) | |
757 (let ((buf rmail-buffer) | |
758 (cur (point)) | |
6422
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
759 message-not-found |
130 | 760 (curmsg (string-to-int |
761 (buffer-substring (point) | |
762 (min (point-max) (+ 5 (point))))))) | |
6422
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
763 ;; If message number N was specified, find that message's line |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
764 ;; or set message-not-found. |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
765 ;; If N wasn't specified or that message can't be found. |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
766 ;; set N by default. |
130 | 767 (if (not n) |
768 (setq n curmsg) | |
769 (if (< n 1) | |
770 (progn (message "No preceding message") | |
771 (setq n 1))) | |
772 (if (> n rmail-total-messages) | |
773 (progn (message "No following message") | |
774 (goto-char (point-max)) | |
775 (rmail-summary-goto-msg))) | |
776 (goto-char (point-min)) | |
777 (if (not (re-search-forward (concat "^ *" (int-to-string n)) nil t)) | |
778 (progn (or nowarn (message "Message %d not found" n)) | |
779 (setq n curmsg) | |
6422
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
780 (setq message-not-found t) |
130 | 781 (goto-char cur)))) |
782 (beginning-of-line) | |
783 (skip-chars-forward " ") | |
784 (skip-chars-forward "0-9") | |
785 (save-excursion (if (= (following-char) ?-) | |
786 (let ((buffer-read-only nil)) | |
787 (delete-char 1) | |
788 (insert " ")))) | |
6422
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
789 ;; Make sure we have an overlay to use. |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
790 (or rmail-summary-overlay |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
791 (progn |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
792 (make-local-variable 'rmail-summary-overlay) |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
793 (setq rmail-summary-overlay (make-overlay (point) (point))))) |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
794 ;; If this message is in the summary, use the overlay to highlight it. |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
795 ;; Otherwise, don't highlight anything. |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
796 (if message-not-found |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
797 (overlay-put rmail-summary-overlay 'face nil) |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
798 (move-overlay rmail-summary-overlay |
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
799 (save-excursion (beginning-of-line) (1+ (point))) |
6663
ac4abedb1eaa
(rmail-summary-goto-msg): Highlight the whole line except first char.
Richard M. Stallman <rms@gnu.org>
parents:
6582
diff
changeset
|
800 (save-excursion (end-of-line) (point))) |
6422
401da3d11995
(rmail-summary-goto-msg): Highlight message number of current message.
Richard M. Stallman <rms@gnu.org>
parents:
5861
diff
changeset
|
801 (overlay-put rmail-summary-overlay 'face 'highlight)) |
130 | 802 (beginning-of-line) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
803 (if skip-rmail |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
804 nil |
5275
c2a5a99d89e8
(rmail-summary-goto-msg): Use unwind-protect to go
Richard M. Stallman <rms@gnu.org>
parents:
5121
diff
changeset
|
805 (let ((selwin (selected-window))) |
c2a5a99d89e8
(rmail-summary-goto-msg): Use unwind-protect to go
Richard M. Stallman <rms@gnu.org>
parents:
5121
diff
changeset
|
806 (unwind-protect |
c2a5a99d89e8
(rmail-summary-goto-msg): Use unwind-protect to go
Richard M. Stallman <rms@gnu.org>
parents:
5121
diff
changeset
|
807 (progn (pop-to-buffer buf) |
c2a5a99d89e8
(rmail-summary-goto-msg): Use unwind-protect to go
Richard M. Stallman <rms@gnu.org>
parents:
5121
diff
changeset
|
808 (rmail-show-message n)) |
c2a5a99d89e8
(rmail-summary-goto-msg): Use unwind-protect to go
Richard M. Stallman <rms@gnu.org>
parents:
5121
diff
changeset
|
809 (select-window selwin)))))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
810 |
130 | 811 (defun rmail-summary-scroll-msg-up (&optional dist) |
7102
e3d392f28d8f
(rmail-summary-scroll-msg-up, rmail-summary-scroll-msg-down): Scroll
Karl Heuer <kwzh@gnu.org>
parents:
6961
diff
changeset
|
812 "Scroll the Rmail window forward." |
130 | 813 (interactive "P") |
7102
e3d392f28d8f
(rmail-summary-scroll-msg-up, rmail-summary-scroll-msg-down): Scroll
Karl Heuer <kwzh@gnu.org>
parents:
6961
diff
changeset
|
814 (let ((other-window-scroll-buffer rmail-buffer)) |
e3d392f28d8f
(rmail-summary-scroll-msg-up, rmail-summary-scroll-msg-down): Scroll
Karl Heuer <kwzh@gnu.org>
parents:
6961
diff
changeset
|
815 (scroll-other-window dist))) |
130 | 816 |
817 (defun rmail-summary-scroll-msg-down (&optional dist) | |
7102
e3d392f28d8f
(rmail-summary-scroll-msg-up, rmail-summary-scroll-msg-down): Scroll
Karl Heuer <kwzh@gnu.org>
parents:
6961
diff
changeset
|
818 "Scroll the Rmail window backward." |
130 | 819 (interactive "P") |
7102
e3d392f28d8f
(rmail-summary-scroll-msg-up, rmail-summary-scroll-msg-down): Scroll
Karl Heuer <kwzh@gnu.org>
parents:
6961
diff
changeset
|
820 (rmail-summary-scroll-msg-up |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
821 (cond ((eq dist '-) nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
822 ((null dist) '-) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
823 (t (- (prefix-numeric-value dist)))))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
824 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
825 (defun rmail-summary-beginning-of-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
826 "Show current message from the beginning." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
827 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
828 (pop-to-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
829 (beginning-of-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
830 (pop-to-buffer rmail-summary-buffer)) |
130 | 831 |
832 (defun rmail-summary-quit () | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
833 "Quit out of Rmail and Rmail summary." |
130 | 834 (interactive) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
835 (rmail-summary-wipe) |
130 | 836 (rmail-quit)) |
837 | |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
838 (defun rmail-summary-wipe () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
839 "Kill and wipe away Rmail summary, remaining within Rmail." |
130 | 840 (interactive) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
841 (save-excursion (set-buffer rmail-buffer) (setq rmail-summary-buffer nil)) |
5121
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
842 (let ((local-rmail-buffer rmail-buffer)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
843 (kill-buffer (current-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
844 ;; Delete window if not only one. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
845 (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
|
846 (delete-window)) |
5121
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
847 ;; Switch windows to the rmail buffer, or switch to it in this window. |
864d3ca7f2b6
(rmail-summary-wipe): If rmail buffer is not visible,
Richard M. Stallman <rms@gnu.org>
parents:
5006
diff
changeset
|
848 (pop-to-buffer local-rmail-buffer))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
849 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
850 (defun rmail-summary-expunge () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
851 "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
|
852 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
853 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
854 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
855 (rmail-only-expunge)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
856 (rmail-update-summary)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
857 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
858 (defun rmail-summary-expunge-and-save () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
859 "Expunge and save RMAIL file." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
860 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
861 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
862 (set-buffer rmail-buffer) |
3466
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
863 (rmail-only-expunge)) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
864 (rmail-update-summary) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
865 (save-excursion |
3461
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
866 (set-buffer rmail-buffer) |
5861
882894a8c217
(rmail-summary-expunge-and-save): Mark summary buffer as unmodified.
Karl Heuer <kwzh@gnu.org>
parents:
5709
diff
changeset
|
867 (save-buffer)) |
882894a8c217
(rmail-summary-expunge-and-save): Mark summary buffer as unmodified.
Karl Heuer <kwzh@gnu.org>
parents:
5709
diff
changeset
|
868 (set-buffer-modified-p nil)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
869 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
870 (defun rmail-summary-get-new-mail () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
871 "Get new mail and recompute summary headers." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
872 (interactive) |
3466
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
873 (let (msg) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
874 (save-excursion |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
875 (set-buffer rmail-buffer) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
876 (rmail-get-new-mail) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
877 ;; Get the proper new message number. |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
878 (setq msg rmail-current-message)) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
879 ;; Make sure that message is displayed. |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
880 (rmail-summary-goto-msg msg))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
881 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
882 (defun rmail-summary-input (filename) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
883 "Run Rmail on file FILENAME." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
884 (interactive "FRun rmail on RMAIL file: ") |
3466
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
885 ;; We switch windows here, then display the other Rmail file there. |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
886 (pop-to-buffer rmail-buffer) |
c8f52c44d9a4
(rmail-summary-expunge-and-save): Do save-buffer last.
Richard M. Stallman <rms@gnu.org>
parents:
3461
diff
changeset
|
887 (rmail filename)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
888 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
889 (defun rmail-summary-first-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
890 "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
|
891 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
892 (beginning-of-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
893 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
894 (defun rmail-summary-last-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
895 "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
|
896 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
897 (end-of-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
898 (forward-line -1)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
899 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
900 (defvar rmail-summary-edit-map nil) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
901 (if rmail-summary-edit-map |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
902 nil |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
903 (setq rmail-summary-edit-map |
4990
8f5a44af0114
(rmail-summary-edit-map): Inherit text-mode-map properly.
Richard M. Stallman <rms@gnu.org>
parents:
3879
diff
changeset
|
904 (nconc (make-sparse-keymap) text-mode-map)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
905 (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
|
906 (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
|
907 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
908 (defun rmail-summary-edit-current-message () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
909 "Edit the contents of this message." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
910 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
911 (pop-to-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
912 (rmail-edit-current-message) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
913 (use-local-map rmail-summary-edit-map)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
914 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
915 (defun rmail-summary-cease-edit () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
916 "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
|
917 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
918 (rmail-cease-edit) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
919 (pop-to-buffer rmail-summary-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
920 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
921 (defun rmail-summary-abort-edit () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
922 "Abort edit of current message; restore original contents. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
923 Go back to summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
924 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
925 (rmail-abort-edit) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
926 (pop-to-buffer rmail-summary-buffer)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
927 |
3862
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
928 (defun rmail-summary-search-backward (regexp &optional n) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
929 "Show message containing next match for REGEXP. |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
930 Prefix argument gives repeat count; negative argument means search |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
931 backwards (through earlier messages). |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
932 Interactively, empty argument means use same regexp used last time." |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
933 (interactive |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
934 (let* ((reversep (>= (prefix-numeric-value current-prefix-arg) 0)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
935 (prompt |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
936 (concat (if reversep "Reverse " "") "Rmail search (regexp): ")) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
937 regexp) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
938 (if rmail-search-last-regexp |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
939 (setq prompt (concat prompt |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
940 "(default " |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
941 rmail-search-last-regexp |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
942 ") "))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
943 (setq regexp (read-string prompt)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
944 (cond ((not (equal regexp "")) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
945 (setq rmail-search-last-regexp regexp)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
946 ((not rmail-search-last-regexp) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
947 (error "No previous Rmail search string"))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
948 (list rmail-search-last-regexp |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
949 (prefix-numeric-value current-prefix-arg)))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
950 ;; Don't use save-excursion because that prevents point from moving |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
951 ;; properly in the summary buffer. |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
952 (let ((buffer (current-buffer))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
953 (unwind-protect |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
954 (progn |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
955 (set-buffer rmail-buffer) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
956 (rmail-search regexp (- n))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
957 (set-buffer buffer)))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
958 |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
959 (defun rmail-summary-search (regexp &optional n) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
960 "Show message containing next match for REGEXP. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
961 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
|
962 backwards (through earlier messages). |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
963 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
|
964 (interactive |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
965 (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
|
966 (prompt |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
967 (concat (if reversep "Reverse " "") "Rmail search (regexp): ")) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
968 regexp) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
969 (if rmail-search-last-regexp |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
970 (setq prompt (concat prompt |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
971 "(default " |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
972 rmail-search-last-regexp |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
973 ") "))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
974 (setq regexp (read-string prompt)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
975 (cond ((not (equal regexp "")) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
976 (setq rmail-search-last-regexp regexp)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
977 ((not rmail-search-last-regexp) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
978 (error "No previous Rmail search string"))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
979 (list rmail-search-last-regexp |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
980 (prefix-numeric-value current-prefix-arg)))) |
3862
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
981 ;; Don't use save-excursion because that prevents point from moving |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
982 ;; properly in the summary buffer. |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
983 (let ((buffer (current-buffer))) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
984 (unwind-protect |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
985 (progn |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
986 (set-buffer rmail-buffer) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
987 (rmail-search regexp n)) |
d65e83bd1120
(rmail-summary-mode-map): Add local menu bar bindings.
Richard M. Stallman <rms@gnu.org>
parents:
3509
diff
changeset
|
988 (set-buffer buffer)))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
989 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
990 (defun rmail-summary-toggle-header () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
991 "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
|
992 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
993 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
994 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
995 (rmail-toggle-header))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
996 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
997 (defun rmail-summary-add-label (label) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
998 "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
|
999 Completion is performed over known labels when reading." |
3461
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
1000 (interactive (list (save-excursion |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
1001 (set-buffer rmail-buffer) |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
1002 (rmail-read-label "Add label")))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1003 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1004 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1005 (rmail-add-label label))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1006 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1007 (defun rmail-summary-kill-label (label) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1008 "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
|
1009 Completion is performed over known labels when reading." |
3461
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
1010 (interactive (list (save-excursion |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
1011 (set-buffer rmail-buffer) |
1dec1449324d
(rmail-summary-expunge-and-save):
Richard M. Stallman <rms@gnu.org>
parents:
3443
diff
changeset
|
1012 (rmail-read-label "Kill label")))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1013 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1014 (set-buffer rmail-buffer) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1015 (rmail-set-label label nil))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1016 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1017 ;;;; *** Rmail Summary Mailing Commands *** |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1018 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1019 (defun rmail-summary-mail () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1020 "Send mail in another window. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1021 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
|
1022 original message into it." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1023 (interactive) |
5709
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1024 (rmail-start-mail nil nil nil nil nil rmail-buffer) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1025 (use-local-map (copy-keymap (current-local-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1026 (define-key (current-local-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1027 "\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
|
1028 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1029 (defun rmail-summary-continue () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1030 "Continue composing outgoing message previously being composed." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1031 (interactive) |
5709
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1032 (rmail-start-mail t)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1033 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1034 (defun rmail-summary-reply (just-sender) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1035 "Reply to the current message. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1036 Normally include CC: to all other recipients of original message; |
5709
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1037 prefix argument means ignore them. While composing the reply, |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1038 use \\[mail-yank-original] to yank the original message into it." |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1039 (interactive "P") |
5709
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1040 (set-buffer rmail-buffer) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1041 (rmail-reply just-sender) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1042 (use-local-map (copy-keymap (current-local-map))) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1043 (define-key (current-local-map) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1044 "\C-c\C-c" 'rmail-summary-send-and-exit)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1045 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1046 (defun rmail-summary-retry-failure () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1047 "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
|
1048 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
|
1049 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
|
1050 (interactive) |
5709
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1051 (set-buffer rmail-buffer) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1052 (rmail-retry-failure) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1053 (use-local-map (copy-keymap (current-local-map))) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1054 (define-key (current-local-map) |
85119c3098a0
Fix rmail summary commands to work with rmail-mail-new-frame.
Karl Heuer <kwzh@gnu.org>
parents:
5678
diff
changeset
|
1055 "\C-c\C-c" 'rmail-summary-send-and-exit)) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1056 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1057 (defun rmail-summary-send-and-exit () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1058 "Send mail reply and return to summary buffer." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1059 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1060 (mail-send-and-exit t)) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1061 |
5006
356f6a751fdf
(rmail-summary-forward): Accept prefix arg
Richard M. Stallman <rms@gnu.org>
parents:
4990
diff
changeset
|
1062 (defun rmail-summary-forward (resend) |
356f6a751fdf
(rmail-summary-forward): Accept prefix arg
Richard M. Stallman <rms@gnu.org>
parents:
4990
diff
changeset
|
1063 "Forward the current message to another user. |
356f6a751fdf
(rmail-summary-forward): Accept prefix arg
Richard M. Stallman <rms@gnu.org>
parents:
4990
diff
changeset
|
1064 With prefix argument, \"resend\" the message instead of forwarding it; |
356f6a751fdf
(rmail-summary-forward): Accept prefix arg
Richard M. Stallman <rms@gnu.org>
parents:
4990
diff
changeset
|
1065 see the documentation of `rmail-resend'." |
356f6a751fdf
(rmail-summary-forward): Accept prefix arg
Richard M. Stallman <rms@gnu.org>
parents:
4990
diff
changeset
|
1066 (interactive "P") |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1067 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1068 (set-buffer rmail-buffer) |
5006
356f6a751fdf
(rmail-summary-forward): Accept prefix arg
Richard M. Stallman <rms@gnu.org>
parents:
4990
diff
changeset
|
1069 (rmail-forward resend) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1070 (use-local-map (copy-keymap (current-local-map))) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1071 (define-key (current-local-map) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1072 "\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
|
1073 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1074 ;; Summary output commands. |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1075 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1076 (defun rmail-summary-output-to-rmail-file () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1077 "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
|
1078 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
|
1079 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
|
1080 buffer visiting that file." |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1081 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1082 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1083 (set-buffer rmail-buffer) |
5507
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
1084 (let ((rmail-delete-after-output nil)) |
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
1085 (call-interactively 'rmail-output-to-rmail-file))) |
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
1086 (if rmail-delete-after-output |
5514
8112b5b2651b
(rmail-summary-delete-forward): Fix regexp
Richard M. Stallman <rms@gnu.org>
parents:
5507
diff
changeset
|
1087 (rmail-summary-delete-forward nil))) |
2077
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1088 |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1089 (defun rmail-summary-output () |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1090 "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
|
1091 (interactive) |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1092 (save-excursion |
6885836c2f98
(rmail-update-summary): New function.
Richard M. Stallman <rms@gnu.org>
parents:
845
diff
changeset
|
1093 (set-buffer rmail-buffer) |
5507
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
1094 (let ((rmail-delete-after-output nil)) |
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
1095 (call-interactively 'rmail-output))) |
0a6c0e720ece
(rmail-summary-by-senders):
Richard M. Stallman <rms@gnu.org>
parents:
5370
diff
changeset
|
1096 (if rmail-delete-after-output |
5514
8112b5b2651b
(rmail-summary-delete-forward): Fix regexp
Richard M. Stallman <rms@gnu.org>
parents:
5507
diff
changeset
|
1097 (rmail-summary-delete-forward nil))) |
3879
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1098 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1099 ;; Sorting messages in Rmail Summary buffer. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1100 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1101 (defun rmail-summary-sort-by-date (reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1102 "Sort messages of current Rmail summary by date. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1103 If prefix argument REVERSE is non-nil, sort them in reverse order." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1104 (interactive "P") |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1105 (rmail-sort-from-summary (function rmail-sort-by-date) reverse)) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1106 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1107 (defun rmail-summary-sort-by-subject (reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1108 "Sort messages of current Rmail summary by subject. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1109 If prefix argument REVERSE is non-nil, sort them in reverse order." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1110 (interactive "P") |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1111 (rmail-sort-from-summary (function rmail-sort-by-subject) reverse)) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1112 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1113 (defun rmail-summary-sort-by-author (reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1114 "Sort messages of current Rmail summary by author. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1115 If prefix argument REVERSE is non-nil, sort them in reverse order." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1116 (interactive "P") |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1117 (rmail-sort-from-summary (function rmail-sort-by-author) reverse)) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1118 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1119 (defun rmail-summary-sort-by-recipient (reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1120 "Sort messages of current Rmail summary by recipient. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1121 If prefix argument REVERSE is non-nil, sort them in reverse order." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1122 (interactive "P") |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1123 (rmail-sort-from-summary (function rmail-sort-by-recipient) reverse)) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1124 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1125 (defun rmail-summary-sort-by-correspondent (reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1126 "Sort messages of current Rmail summary by other correspondent. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1127 If prefix argument REVERSE is non-nil, sort them in reverse order." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1128 (interactive "P") |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1129 (rmail-sort-from-summary (function rmail-sort-by-correspondent) reverse)) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1130 |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1131 (defun rmail-summary-sort-by-lines (reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1132 "Sort messages of current Rmail summary by lines of the message. |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1133 If prefix argument REVERSE is non-nil, sort them in reverse order." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1134 (interactive "P") |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1135 (rmail-sort-from-summary (function rmail-sort-by-lines) reverse)) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1136 |
6717
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1137 (defun rmail-summary-sort-by-keywords (reverse labels) |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1138 "Sort messages of current Rmail summary by keywords. |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1139 If prefix argument REVERSE is non-nil, sort them in reverse order. |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1140 KEYWORDS is a comma-separated list of labels." |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1141 (interactive "P\nsSort by labels: ") |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1142 (rmail-sort-from-summary |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1143 (function (lambda (reverse) |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1144 (rmail-sort-by-keywords reverse labels))) |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1145 reverse)) |
2121bf252398
(rmail-summary-sort-by-keywords): New function.
Karl Heuer <kwzh@gnu.org>
parents:
6688
diff
changeset
|
1146 |
3879
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1147 (defun rmail-sort-from-summary (sortfun reverse) |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1148 "Sort Rmail messages from Summary buffer and update it after sorting." |
b8c99f30ca3f
(rmail-summary-mode-map): Bind summary sort commands.
Richard M. Stallman <rms@gnu.org>
parents:
3862
diff
changeset
|
1149 (require 'rmailsort) |
6582
bac8e17d51b3
(rmail-sort-from-summary): Preserve window selection.
Karl Heuer <kwzh@gnu.org>
parents:
6422
diff
changeset
|
1150 (let ((selwin (selected-window))) |
bac8e17d51b3
(rmail-sort-from-summary): Preserve window selection.
Karl Heuer <kwzh@gnu.org>
parents:
6422
diff
changeset
|
1151 (unwind-protect |
bac8e17d51b3
(rmail-sort-from-summary): Preserve window selection.
Karl Heuer <kwzh@gnu.org>
parents:
6422
diff
changeset
|
1152 (progn (pop-to-buffer rmail-buffer) |
bac8e17d51b3
(rmail-sort-from-summary): Preserve window selection.
Karl Heuer <kwzh@gnu.org>
parents:
6422
diff
changeset
|
1153 (funcall sortfun reverse)) |
bac8e17d51b3
(rmail-sort-from-summary): Preserve window selection.
Karl Heuer <kwzh@gnu.org>
parents:
6422
diff
changeset
|
1154 (select-window selwin)))) |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
130
diff
changeset
|
1155 |
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
130
diff
changeset
|
1156 ;;; rmailsum.el ends here |