Commit | Line | Data |
---|---|---|
5a4aad03 | 1 | ;;; mh-inc.el --- MH-E "inc" and separate mail spool handling |
dda00b2c | 2 | |
73b0cd50 | 3 | ;; Copyright (C) 2003-2004, 2006-2011 |
dcf71371 | 4 | ;; Free Software Foundation, Inc. |
924df208 BW |
5 | |
6 | ;; Author: Peter S. Galbraith <psg@debian.org> | |
7 | ;; Maintainer: Bill Wohler <wohler@newt.com> | |
8 | ;; Keywords: mail | |
9 | ;; See: mh-e.el | |
10 | ||
11 | ;; This file is part of GNU Emacs. | |
12 | ||
5e809f55 | 13 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
924df208 | 14 | ;; it under the terms of the GNU General Public License as published by |
5e809f55 GM |
15 | ;; the Free Software Foundation, either version 3 of the License, or |
16 | ;; (at your option) any later version. | |
924df208 BW |
17 | |
18 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
19 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 | ;; GNU General Public License for more details. | |
22 | ||
23 | ;; You should have received a copy of the GNU General Public License | |
5e809f55 | 24 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
924df208 BW |
25 | |
26 | ;;; Commentary: | |
27 | ||
dda00b2c BW |
28 | ;; Support for inc. In addition to reading from the system mailbox, |
29 | ;; inc can also be used to incorporate mail from multiple spool files | |
30 | ;; into separate folders. See "C-h v mh-inc-spool-list". | |
924df208 BW |
31 | |
32 | ;;; Change Log: | |
33 | ||
34 | ;;; Code: | |
35 | ||
dda00b2c | 36 | (require 'mh-e) |
f0d73c14 | 37 | (mh-require-cl) |
924df208 BW |
38 | |
39 | (defvar mh-inc-spool-map-help nil | |
dda00b2c | 40 | "Help text for `mh-inc-spool-map'.") |
924df208 BW |
41 | |
42 | (define-key mh-inc-spool-map "?" | |
43 | '(lambda () | |
44 | (interactive) | |
45 | (if mh-inc-spool-map-help | |
dda00b2c | 46 | (mh-help mh-inc-spool-map-help) |
924df208 | 47 | (mh-ephem-message |
dda00b2c BW |
48 | "There are no keys defined yet; customize `mh-inc-spool-list'")))) |
49 | ||
50 | ;;;###mh-autoload | |
51 | (defun mh-inc-spool-make () | |
52 | "Make all commands and defines keys for contents of `mh-inc-spool-list'." | |
53 | (setq mh-inc-spool-map-help nil) | |
54 | (when mh-inc-spool-list | |
55 | (loop for elem in mh-inc-spool-list | |
56 | do (let ((spool (nth 0 elem)) | |
57 | (folder (nth 1 elem)) | |
58 | (key (nth 2 elem))) | |
59 | (progn | |
60 | (mh-inc-spool-generator folder spool) | |
61 | (mh-inc-spool-def-key key folder)))))) | |
62 | ||
63 | (defalias 'mh-inc-spool-make-no-autoload 'mh-inc-spool-make) | |
924df208 BW |
64 | |
65 | (defun mh-inc-spool-generator (folder spool) | |
66 | "Create a command to inc into FOLDER from SPOOL file." | |
67 | (let ((folder1 (make-symbol "folder")) | |
68 | (spool1 (make-symbol "spool"))) | |
69 | (set folder1 folder) | |
70 | (set spool1 spool) | |
71 | (setf (symbol-function (intern (concat "mh-inc-spool-" folder))) | |
72 | `(lambda () | |
dda00b2c | 73 | ,(format "Inc spool file %s into folder %s." spool folder) |
924df208 BW |
74 | (interactive) |
75 | (mh-inc-folder ,spool1 (concat "+" ,folder1)))))) | |
76 | ||
77 | (defun mh-inc-spool-def-key (key folder) | |
78 | "Define a KEY in `mh-inc-spool-map' to inc FOLDER and collect help string." | |
79 | (when (not (= 0 key)) | |
80 | (define-key mh-inc-spool-map (format "%c" key) | |
81 | (intern (concat "mh-inc-spool-" folder))) | |
dda00b2c BW |
82 | (add-to-list 'mh-inc-spool-map-help |
83 | (concat "[" (char-to-string key) "] inc " folder " folder\n") | |
84 | t))) | |
924df208 BW |
85 | |
86 | (provide 'mh-inc) | |
87 | ||
cee9f5c6 BW |
88 | ;; Local Variables: |
89 | ;; indent-tabs-mode: nil | |
90 | ;; sentence-end-double-space: nil | |
91 | ;; End: | |
924df208 BW |
92 | |
93 | ;;; mh-inc.el ends here |