Mercurial > emacs
annotate lisp/mail/rmailout.el @ 88348:a943d2961193
*** empty log message ***
author | Henrik Enberg <henrik.enberg@telia.com> |
---|---|
date | Mon, 30 Apr 2007 20:47:19 +0000 |
parents | 4fd331e58549 |
children |
rev | line source |
---|---|
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
1 ;;; rmailout.el --- "RMAIL" mail reader for Emacs: output message to a file. |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
202
diff
changeset
|
2 |
88155 | 3 ;; Copyright (C) 1985, 1987, 1993, 1994, 2001, 2002, 2003, 2004, |
4 ;; 2005 Free Software Foundation, Inc. | |
845 | 5 |
788
c8d4eb38ebfc
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
713
diff
changeset
|
6 ;; Maintainer: FSF |
814
38b2499cb3e9
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
7 ;; Keywords: mail |
788
c8d4eb38ebfc
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
713
diff
changeset
|
8 |
63 | 9 ;; This file is part of GNU Emacs. |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; 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:
788
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
63 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
88155 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
63 | 25 |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
38304
diff
changeset
|
26 ;;; Commentary: |
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
38304
diff
changeset
|
27 |
788
c8d4eb38ebfc
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
713
diff
changeset
|
28 ;;; Code: |
63 | 29 |
23986 | 30 (provide 'rmailout) |
5859
84ad3a2c5373
Add (require 'rmail) so the macro will be byte-compiled properly.
Karl Heuer <kwzh@gnu.org>
parents:
5802
diff
changeset
|
31 |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
32 (eval-when-compile |
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
33 (require 'rmail) |
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
34 (require 'rmaildesc)) |
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
35 |
16188
5bc27ae3cd14
(rmail-output-file-alist): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
36 ;;;###autoload |
17631 | 37 (defcustom rmail-output-file-alist nil |
145 | 38 "*Alist matching regexps to suggested output Rmail files. |
4056
419e92a78e6f
(rmail-output): If file is an Rmail file,
Richard M. Stallman <rms@gnu.org>
parents:
3832
diff
changeset
|
39 This is a list of elements of the form (REGEXP . NAME-EXP). |
4851
b70799eabd57
(rmail-output-file-alist): Doc fix.
Roland McGrath <roland@gnu.org>
parents:
4836
diff
changeset
|
40 The suggestion is taken if REGEXP matches anywhere in the message buffer. |
4056
419e92a78e6f
(rmail-output): If file is an Rmail file,
Richard M. Stallman <rms@gnu.org>
parents:
3832
diff
changeset
|
41 NAME-EXP may be a string constant giving the file name to use, |
419e92a78e6f
(rmail-output): If file is an Rmail file,
Richard M. Stallman <rms@gnu.org>
parents:
3832
diff
changeset
|
42 or more generally it may be any kind of expression that returns |
17631 | 43 a file name as a string." |
44 :type '(repeat (cons regexp | |
45 (choice :value "" | |
46 (string :tag "File Name") | |
47 sexp))) | |
48 :group 'rmail-output) | |
145 | 49 |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
50 ;;;###autoload |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
51 (defcustom rmail-fields-not-to-output nil |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
52 "*Regexp describing fields to exclude when outputting a message to a file." |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
53 :type '(choice (const :tag "None" nil) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
54 regexp) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
55 :group 'rmail-output) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
56 |
23986 | 57 (defun rmail-output-read-file-name () |
58 "Read the file name to use for `rmail-output'. | |
59 Set `rmail-default-file' to this name as well as returning it." | |
88219
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
60 (let* ((default-file |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
61 (with-current-buffer rmail-buffer |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
62 (expand-file-name |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
63 (or (catch 'answer |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
64 (dolist (i rmail-output-file-alist) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
65 (goto-char (point-min)) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
66 (when (re-search-forward (car i) nil t) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
67 (throw 'answer (eval (cdr i)))))) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
68 rmail-default-file)))) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
69 (read-file |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
70 (expand-file-name |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
71 (read-file-name |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
72 (concat "Output message to Rmail (mbox) file: (default " |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
73 (file-name-nondirectory default-file) "): ") |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
74 (file-name-directory default-file) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
75 (abbreviate-file-name default-file)) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
76 (file-name-directory default-file)))) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
77 (setq rmail-default-file |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
78 (if (file-directory-p read-file) |
23986 | 79 (expand-file-name |
88219
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
80 (file-name-nondirectory default-file) read-file) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
81 (expand-file-name |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
82 (or read-file (file-name-nondirectory default-file)) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
83 (file-name-directory default-file)))))) |
23986 | 84 |
23042
4404e3d66e80
(rmail-output): Always preserve MIME-Version field,
Richard M. Stallman <rms@gnu.org>
parents:
22740
diff
changeset
|
85 ;;; There are functions elsewhere in Emacs that use this function; |
4404e3d66e80
(rmail-output): Always preserve MIME-Version field,
Richard M. Stallman <rms@gnu.org>
parents:
22740
diff
changeset
|
86 ;;; look at them before you change the calling method. |
16343
e2b0e3d63822
(rmail-fields-not-to-output): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
16188
diff
changeset
|
87 ;;;###autoload |
29160
998506bd35f3
1999-01-23 Eric M. Ludlam <zappo@ultranet.com>
Dave Love <fx@gnu.org>
parents:
24838
diff
changeset
|
88 (defun rmail-output-to-rmail-file (file-name &optional count stay) |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
89 "Append the current message to an Rmail (mbox) file named FILE-NAME. |
63 | 90 If the file does not exist, ask if it should be created. |
91 If file is being visited, the message is appended to the Emacs | |
92 buffer visiting that file. | |
19961
be32396bfb04
(rmail-output-to-rmail-file): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
17631
diff
changeset
|
93 If the file exists and is not an Rmail file, the message is |
be32396bfb04
(rmail-output-to-rmail-file): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
17631
diff
changeset
|
94 appended in inbox format, the same way `rmail-output' does it. |
4056
419e92a78e6f
(rmail-output): If file is an Rmail file,
Richard M. Stallman <rms@gnu.org>
parents:
3832
diff
changeset
|
95 |
7332
e30a34bfc536
(rmail-output-menu): Set rmail-default-rmail-file.
Richard M. Stallman <rms@gnu.org>
parents:
7320
diff
changeset
|
96 The default file name comes from `rmail-default-rmail-file', |
5592 | 97 which is updated to the name you use in this command. |
98 | |
88155 | 99 A prefix argument COUNT says to output that many consecutive messages, |
29160
998506bd35f3
1999-01-23 Eric M. Ludlam <zappo@ultranet.com>
Dave Love <fx@gnu.org>
parents:
24838
diff
changeset
|
100 starting with the current one. Deleted messages are skipped and don't count. |
998506bd35f3
1999-01-23 Eric M. Ludlam <zappo@ultranet.com>
Dave Love <fx@gnu.org>
parents:
24838
diff
changeset
|
101 |
88155 | 102 If the optional argument STAY is non-nil, then leave the last filed |
103 message up instead of moving forward to the next non-deleted message." | |
88177
cf8100a82c36
(rmail-output-read-file-name): Make sure search in executed in `rmail-buffer'.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88155
diff
changeset
|
104 (interactive (list (rmail-output-read-file-name) |
cf8100a82c36
(rmail-output-read-file-name): Make sure search in executed in `rmail-buffer'.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88155
diff
changeset
|
105 (prefix-numeric-value current-prefix-arg))) |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
106 ;; Use the 'rmail-output function to perform the output. |
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
107 (rmail-output file-name count nil nil) |
88155 | 108 ;; Deal with the next message |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
109 (if rmail-delete-after-output |
88177
cf8100a82c36
(rmail-output-read-file-name): Make sure search in executed in `rmail-buffer'.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88155
diff
changeset
|
110 (unless (if (and (= count 0) stay) |
cf8100a82c36
(rmail-output-read-file-name): Make sure search in executed in `rmail-buffer'.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88155
diff
changeset
|
111 (rmail-delete-message) |
cf8100a82c36
(rmail-output-read-file-name): Make sure search in executed in `rmail-buffer'.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88155
diff
changeset
|
112 (rmail-delete-forward)) |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
113 (setq count 0)) |
88219
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
114 (when (> count 0) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
115 (unless (when (not stay) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
116 (rmail-next-undeleted-message 1)) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
117 (setq count 0))))) |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
118 |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
119 (defun rmail-delete-unwanted-fields () |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
120 "Delete from the buffer header fields we don't want output." |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
121 (when rmail-fields-not-to-output |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
122 (save-excursion |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
123 (let ((limit (rmail-header-get-limit)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
124 (inhibit-point-motion-hooks t) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
125 start) |
9993
26f63d276d89
(rmail-fields-not-to-output): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8910
diff
changeset
|
126 (goto-char (point-min)) |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
127 (while (re-search-forward rmail-fields-not-to-output limit t) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
128 (forward-line 0) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
129 (setq start (point)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
130 (while (progn (forward-line 1) (looking-at "[ \t]+")) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
131 (goto-char (line-end-position))) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
132 (delete-region start (point))))))) |
9993
26f63d276d89
(rmail-fields-not-to-output): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
8910
diff
changeset
|
133 |
23042
4404e3d66e80
(rmail-output): Always preserve MIME-Version field,
Richard M. Stallman <rms@gnu.org>
parents:
22740
diff
changeset
|
134 ;;; There are functions elsewhere in Emacs that use this function; |
4404e3d66e80
(rmail-output): Always preserve MIME-Version field,
Richard M. Stallman <rms@gnu.org>
parents:
22740
diff
changeset
|
135 ;;; look at them before you change the calling method. |
16343
e2b0e3d63822
(rmail-fields-not-to-output): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
16188
diff
changeset
|
136 ;;;###autoload |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
137 (defun rmail-output (file-name &optional count noattribute from-gnus) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
138 "Append this message to system-inbox-format mail file named FILE-NAME. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
139 A prefix argument COUNT says to output that many consecutive messages, |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
140 starting with the current one. Deleted messages are skipped and don't count. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
141 When called from lisp code, COUNT may be omitted and defaults to 1. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
142 |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
143 If the pruned message header is shown on the current message, then |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
144 messages will be appended with pruned headers; otherwise, messages |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
145 will be appended with their original headers. |
4836
38a0f0209707
(rmail-output): If message was shown with full headers,
Richard M. Stallman <rms@gnu.org>
parents:
4265
diff
changeset
|
146 |
7561
22a4985ddad3
(rmail-output): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
7332
diff
changeset
|
147 The default file name comes from `rmail-default-file', |
5592 | 148 which is updated to the name you use in this command. |
149 | |
4265
2812d8619305
(rmail-output): New arg NOATTRIBUTE.
Richard M. Stallman <rms@gnu.org>
parents:
4264
diff
changeset
|
150 The optional third argument NOATTRIBUTE, if non-nil, says not |
5011
22c7b341d536
(rmail-output): New argument FROM-GNUS.
Richard M. Stallman <rms@gnu.org>
parents:
4851
diff
changeset
|
151 to set the `filed' attribute, and not to display a message. |
22c7b341d536
(rmail-output): New argument FROM-GNUS.
Richard M. Stallman <rms@gnu.org>
parents:
4851
diff
changeset
|
152 |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
153 The optional fourth argument FROM-GNUS is set when called from GNUS." |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
154 (interactive |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
155 (list (rmail-output-read-file-name) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
156 (prefix-numeric-value current-prefix-arg))) |
1866
a712cff3b6e7
* rmailout.el (rmail-output, rmail-output-to-mail-file): Reverse
Jim Blandy <jimb@redhat.com>
parents:
1460
diff
changeset
|
157 (or count (setq count 1)) |
202 | 158 (setq file-name |
159 (expand-file-name file-name | |
5590
1d9fabec8bec
Use new names rmail-default-file and rmail-default-rmail-file.
Richard M. Stallman <rms@gnu.org>
parents:
5399
diff
changeset
|
160 (and rmail-default-file |
1d9fabec8bec
Use new names rmail-default-file and rmail-default-rmail-file.
Richard M. Stallman <rms@gnu.org>
parents:
5399
diff
changeset
|
161 (file-name-directory rmail-default-file)))) |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
162 (if (and (file-readable-p file-name) (mail-file-babyl-p file-name)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
163 (error "BABYL output not supported.") |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
164 (with-current-buffer rmail-buffer |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
165 (let ((orig-count count) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
166 (rmailbuf (current-buffer)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
167 (destbuf (find-buffer-visiting file-name)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
168 (case-fold-search t)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
169 (while (> count 0) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
170 (with-temp-buffer |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
171 (insert-buffer-substring rmailbuf) |
88345
4fd331e58549
(rmail-output): Bind buffer-file-coding-system even when rmail-enable-mime is nil.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88339
diff
changeset
|
172 ;; ensure we can write without barfing on exotic characters |
4fd331e58549
(rmail-output): Bind buffer-file-coding-system even when rmail-enable-mime is nil.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88339
diff
changeset
|
173 (setq buffer-file-coding-system |
4fd331e58549
(rmail-output): Bind buffer-file-coding-system even when rmail-enable-mime is nil.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88339
diff
changeset
|
174 (or rmail-file-coding-system 'raw-text)) |
4fd331e58549
(rmail-output): Bind buffer-file-coding-system even when rmail-enable-mime is nil.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88339
diff
changeset
|
175 ;; prune junk headers |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
176 (rmail-delete-unwanted-fields) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
177 (if (not destbuf) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
178 ;; The destination file is not being visited, just write |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
179 ;; out the processed message. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
180 (write-region (point-min) (point-max) file-name |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
181 t (when noattribute 'nomsg)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
182 ;; The destination file is being visited. Update it. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
183 (let ((msg-string (buffer-string))) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
184 (with-current-buffer destbuf |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
185 ;; Determine if the destination file is an Rmail file. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
186 (let ((buffer-read-only nil) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
187 (dest-current-message |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
188 (and (boundp 'rmail-current-message) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
189 rmail-current-message))) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
190 (if dest-current-message |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
191 ;; The buffer is an Rmail buffer. Append the |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
192 ;; message. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
193 (progn |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
194 (widen) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
195 (narrow-to-region (point-max) (point-max)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
196 (insert msg-string) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
197 (insert "\n") |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
198 (rmail-process-new-messages) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
199 (rmail-show-message dest-current-message)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
200 ;; The destination file is not an Rmail file, just |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
201 ;; insert at the end. |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
202 (goto-char (point-max)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
203 (insert msg-string))))))) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
204 (unless noattribute |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
205 (when (equal major-mode 'rmail-mode) |
88295
d8903e2bde16
(rmail-output): Make sure headers are properly
Henrik Enberg <henrik.enberg@telia.com>
parents:
88293
diff
changeset
|
206 (rmail-set-attribute "filed" t) |
d8903e2bde16
(rmail-output): Make sure headers are properly
Henrik Enberg <henrik.enberg@telia.com>
parents:
88293
diff
changeset
|
207 (rmail-header-hide-headers))) |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
208 (setq count (1- count)) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
209 (unless from-gnus |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
210 (let ((next-message-p |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
211 (if rmail-delete-after-output |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
212 (rmail-delete-forward) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
213 (when (> count 0) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
214 (rmail-next-undeleted-message 1)))) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
215 (num-appended (- orig-count count))) |
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
216 (when (and (> count 0) (not next-message-p)) |
88295
d8903e2bde16
(rmail-output): Make sure headers are properly
Henrik Enberg <henrik.enberg@telia.com>
parents:
88293
diff
changeset
|
217 (error (format "Only %d message%s appended" num-appended |
d8903e2bde16
(rmail-output): Make sure headers are properly
Henrik Enberg <henrik.enberg@telia.com>
parents:
88293
diff
changeset
|
218 (if (= num-appended 1) "" "s"))) |
88293
93ee62702af5
(rmail-delete-unwanted-fields): Handle mbox format.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88219
diff
changeset
|
219 (setq count 0))))))))) |
88128
b621daa96824
Attempt to minimize byte compilation warnings.
Paul Reilly <pmr@pajato.com>
parents:
49587
diff
changeset
|
220 |
17267
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
221 ;;;###autoload |
17305
7a3eb2b72749
(rmail-output-body-to-file): Query if file exists.
Richard M. Stallman <rms@gnu.org>
parents:
17268
diff
changeset
|
222 (defun rmail-output-body-to-file (file-name) |
17267
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
223 "Write this message body to the file FILE-NAME. |
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
224 FILE-NAME defaults, interactively, from the Subject field of the message." |
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
225 (interactive |
88219
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
226 (let ((default-file (or (mail-fetch-field "Subject") |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
227 rmail-default-body-file))) |
22202
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
228 (list (setq rmail-default-body-file |
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
229 (read-file-name |
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
230 "Output message body to file: " |
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
231 (and default-file (file-name-directory default-file)) |
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
232 default-file |
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
233 nil default-file))))) |
cca4f78e5e2a
(rmail-output-body-to-file): Avoid error if message has no subject.
Richard M. Stallman <rms@gnu.org>
parents:
19961
diff
changeset
|
234 (setq file-name |
88219
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
235 (expand-file-name |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
236 file-name |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
237 (and rmail-default-body-file |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
238 (file-name-directory rmail-default-body-file)))) |
17267
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
239 (save-excursion |
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
240 (goto-char (point-min)) |
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
241 (search-forward "\n\n") |
17305
7a3eb2b72749
(rmail-output-body-to-file): Query if file exists.
Richard M. Stallman <rms@gnu.org>
parents:
17268
diff
changeset
|
242 (and (file-exists-p file-name) |
7a3eb2b72749
(rmail-output-body-to-file): Query if file exists.
Richard M. Stallman <rms@gnu.org>
parents:
17268
diff
changeset
|
243 (not (y-or-n-p (message "File %s exists; overwrite? " file-name))) |
7a3eb2b72749
(rmail-output-body-to-file): Query if file exists.
Richard M. Stallman <rms@gnu.org>
parents:
17268
diff
changeset
|
244 (error "Operation aborted")) |
17267
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
245 (write-region (point) (point-max) file-name) |
88219
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
246 (when (equal major-mode 'rmail-mode) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
247 (rmail-desc-set-attribute rmail-desc-stored-index |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
248 t rmail-current-message))) |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
249 (when rmail-delete-after-output |
1044c364f41f
(rmail-output-read-file-name): Simplify.
Henrik Enberg <henrik.enberg@telia.com>
parents:
88177
diff
changeset
|
250 (rmail-delete-forward))) |
17267
958340c8db5e
(rmail-output-body): New command.
Richard M. Stallman <rms@gnu.org>
parents:
16343
diff
changeset
|
251 |
88155 | 252 ;;; arch-tag: 447117c6-1a9a-4b88-aa43-3101b043e3a4 |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
202
diff
changeset
|
253 ;;; rmailout.el ends here |