Commit | Line | Data |
---|---|---|
8548041d | 1 | ;;; unrmail.el --- convert Rmail files to mailbox files. |
76550a57 | 2 | |
8548041d RS |
3 | ;;; Copyright (C) 1992 Free Software Foundation, Inc. |
4 | ||
e9571d2a ER |
5 | ;; Keywords: mail |
6 | ||
8548041d RS |
7 | ;; This file is part of GNU Emacs. |
8 | ||
9 | ;; GNU Emacs is free software; you can redistribute it and/or modify | |
10 | ;; it under the terms of the GNU General Public License as published by | |
11 | ;; the Free Software Foundation; either version 2, or (at your option) | |
12 | ;; any later version. | |
13 | ||
14 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | ;; GNU General Public License for more details. | |
18 | ||
19 | ;; You should have received a copy of the GNU General Public License | |
b578f267 EN |
20 | ;; along with GNU Emacs; see the file COPYING. If not, write to the |
21 | ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
22 | ;; Boston, MA 02111-1307, USA. | |
8548041d | 23 | |
76550a57 ER |
24 | ;;; Code: |
25 | ||
8548041d RS |
26 | (defvar command-line-args-left) ;Avoid 'free variable' warning |
27 | ||
28 | ;;;###autoload | |
29 | (defun batch-unrmail () | |
28925d74 | 30 | "Convert Rmail files to system inbox format. |
8548041d RS |
31 | Specify the input Rmail file names as command line arguments. |
32 | For each Rmail file, the corresponding output file name | |
33 | is made by adding `.mail' at the end. | |
34 | For example, invoke `emacs -batch -f batch-unrmail RMAIL'." | |
35 | ;; command-line-args-left is what is left of the command line (from startup.el) | |
36 | (if (not noninteractive) | |
37 | (error "`batch-unrmail' is to be used only with -batch")) | |
38 | (let ((error nil)) | |
39 | (while command-line-args-left | |
40 | (or (unrmail (car command-line-args-left) | |
41 | (concat (car command-line-args-left) ".mail")) | |
42 | (setq error t)) | |
43 | (setq command-line-args-left (cdr command-line-args-left))) | |
44 | (message "Done") | |
45 | (kill-emacs (if error 1 0)))) | |
46 | ||
47 | ;;;###autoload | |
48 | (defun unrmail (file to-file) | |
28925d74 | 49 | "Convert Rmail file FILE to system inbox format file TO-FILE." |
4eb5bf46 RS |
50 | (interactive "fUnrmail (rmail file): \nFUnrmail into (new mailbox file): ") |
51 | (let ((message-count 0) | |
efde1132 RS |
52 | ;; Prevent rmail from making, or switching to, a summary buffer. |
53 | (rmail-display-summary nil) | |
4eb5bf46 | 54 | (rmail-delete-after-output nil)) |
8548041d | 55 | (rmail file) |
a538e583 KH |
56 | ;; Default the directory of TO-FILE based on where FILE is. |
57 | (setq to-file (expand-file-name to-file default-directory)) | |
4eb5bf46 RS |
58 | (message "Writing messages to %s..." to-file) |
59 | (while (< message-count rmail-total-messages) | |
60 | (rmail-show-message | |
61 | (setq message-count (1+ message-count))) | |
318ab851 | 62 | (rmail-toggle-header) |
4eb5bf46 RS |
63 | (rmail-output to-file 1 t)) |
64 | (message "Writing messages to %s...done" to-file))) | |
76550a57 | 65 | |
896546cd RS |
66 | (provide 'unrmail) |
67 | ||
76550a57 | 68 | ;;; unrmail.el ends here |