Mercurial > emacs
annotate lisp/mh-e/mh-utils.el @ 88309:14a21dca4b07
*** empty log message ***
author | Henrik Enberg <henrik.enberg@telia.com> |
---|---|
date | Wed, 01 Feb 2006 17:25:07 +0000 |
parents | d7ddb3e565de |
children |
rev | line source |
---|---|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1 ;;; mh-utils.el --- MH-E code needed for both sending and reading |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2 |
88155 | 3 ;; Copyright (C) 1993, 1995, 1997, |
4 ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
5 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
6 ;; Author: Bill Wohler <wohler@newt.com> |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
7 ;; Maintainer: Bill Wohler <wohler@newt.com> |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
8 ;; Keywords: mail |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
9 ;; See: mh-e.el |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
10 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
11 ;; This file is part of GNU Emacs. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
12 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
13 ;; GNU Emacs is free software; you can redistribute it and/or modify |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
14 ;; it under the terms of the GNU General Public License as published by |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
15 ;; the Free Software Foundation; either version 2, or (at your option) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
16 ;; any later version. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
17 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
18 ;; GNU Emacs is distributed in the hope that it will be useful, |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
21 ;; GNU General Public License for more details. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
22 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
23 ;; You should have received a copy of the GNU General Public License |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
24 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
88155 | 25 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
26 ;; Boston, MA 02110-1301, USA. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
27 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
28 ;;; Commentary: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
29 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
30 ;; Internal support for MH-E package. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
31 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
32 ;;; Change Log: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
33 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
34 ;;; Code: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
35 |
88155 | 36 ;;(message "> mh-utils") |
37 (eval-and-compile | |
38 (defvar recursive-load-depth-limit) | |
39 (if (and (boundp 'recursive-load-depth-limit) | |
40 (integerp recursive-load-depth-limit) | |
41 (< recursive-load-depth-limit 50)) | |
42 (setq recursive-load-depth-limit 50))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
43 |
88155 | 44 (eval-when-compile (require 'mh-acros)) |
45 (mh-require-cl) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
46 |
88155 | 47 (require 'font-lock) |
48 (require 'gnus-util) | |
49 (require 'mh-buffers) | |
50 (require 'mh-customize) | |
51 (require 'mh-inc) | |
52 (require 'mouse) | |
53 (require 'sendmail) | |
54 ;;(message "< mh-utils") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
55 |
88155 | 56 ;; Non-fatal dependencies |
57 (load "hl-line" t t) | |
58 (load "mm-decode" t t) | |
59 (load "mm-view" t t) | |
60 (load "tool-bar" t t) | |
61 (load "vcard" t t) | |
62 | |
63 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
64 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
65 ;;; Autoloads |
88155 | 66 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
67 (autoload 'gnus-article-highlight-citation "gnus-cite") |
88155 | 68 (autoload 'message-fetch-field "message") |
69 (autoload 'message-tokenize-header "message") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
70 (unless (fboundp 'make-hash-table) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
71 (autoload 'make-hash-table "cl")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
72 |
88155 | 73 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
74 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
75 ;;; CL Replacements |
88155 | 76 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
77 (defun mh-search-from-end (char string) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
78 "Return the position of last occurrence of CHAR in STRING. |
88155 | 79 If CHAR is not present in STRING then return nil. The function is |
80 used in lieu of `search' in the CL package." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
81 (loop for index from (1- (length string)) downto 0 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
82 when (equal (aref string index) char) return index |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
83 finally return nil)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
84 |
88155 | 85 ;; Additional header fields that might someday be added: |
86 ;; "Sender: " "Reply-to: " | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
87 |
88155 | 88 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
89 |
88155 | 90 ;;; Scan Line Formats |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
91 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
92 (defvar mh-scan-msg-number-regexp "^ *\\([0-9]+\\)" |
88155 | 93 "This regular expression extracts the message number. |
94 | |
95 It must match from the beginning of the line. Note that the | |
96 message number must be placed in a parenthesized expression as in | |
97 the default of \"^ *\\\\([0-9]+\\\\)\".") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
98 |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
99 (defvar mh-scan-msg-overflow-regexp "^[?0-9][0-9]" |
88155 | 100 "This regular expression matches overflowed message numbers.") |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
101 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
102 (defvar mh-scan-msg-format-regexp "%\\([0-9]*\\)(msg)" |
88155 | 103 "This regular expression finds the message number width in a scan format. |
104 | |
105 Note that the message number must be placed in a parenthesized | |
106 expression as in the default of \"%\\\\([0-9]*\\\\)(msg)\". This | |
107 variable is only consulted if `mh-scan-format-file' is set to | |
108 \"Use MH-E scan Format\".") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
109 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
110 (defvar mh-scan-msg-format-string "%d" |
88155 | 111 "This is a format string for width of the message number in a scan format. |
112 | |
113 Use \"0%d\" for zero-filled message numbers. This variable is only | |
114 consulted if `mh-scan-format-file' is set to \"Use MH-E scan | |
115 Format\".") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
116 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
117 (defvar mh-scan-msg-search-regexp "^[^0-9]*%d[^0-9]" |
88155 | 118 "This regular expression matches a particular message. |
119 | |
120 It is a format string; use \"%d\" to represent the location of the | |
121 message number within the expression as in the default of | |
122 \"^[^0-9]*%d[^0-9]\".") | |
123 | |
124 (defvar mh-cmd-note 4 | |
125 "Column for notations. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
126 |
88155 | 127 This variable should be set with the function `mh-set-cmd-note'. |
128 This variable may be updated dynamically if | |
129 `mh-adaptive-cmd-note-flag' is on. | |
130 | |
131 Note that columns in Emacs start with 0.") | |
132 (make-variable-buffer-local 'mh-cmd-note) | |
133 | |
134 (defvar mh-note-seq ?% | |
135 "Messages in a user-defined sequence are marked by this character. | |
136 | |
137 Messages in the \"search\" sequence are marked by this character as | |
138 well.") | |
139 | |
140 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
141 |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
142 (defvar mh-show-buffer-mode-line-buffer-id " {show-%s} %d" |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
143 "Format string to produce `mode-line-buffer-identification' for show buffers. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
144 |
88155 | 145 First argument is folder name. Second is message number.") |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
146 |
88155 | 147 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
148 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
149 (defvar mh-mail-header-separator "--------" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
150 "*Line used by MH to separate headers from text in messages being composed. |
88155 | 151 |
152 This variable should not be used directly in programs. Programs | |
153 should use `mail-header-separator' instead. | |
154 `mail-header-separator' is initialized to | |
155 `mh-mail-header-separator' in `mh-letter-mode'; in other | |
156 contexts, you may have to perform this initialization yourself. | |
157 | |
158 Do not make this a regular expression as it may be the argument | |
159 to `insert' and it is passed through `regexp-quote' before being | |
160 used by functions like `re-search-forward'.") | |
161 | |
162 (defvar mh-signature-separator-regexp "^-- $" | |
163 "This regular expression matches the signature separator. | |
164 See `mh-signature-separator'.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
165 |
88155 | 166 (defvar mh-signature-separator "-- \n" |
167 "Text of a signature separator. | |
168 | |
169 A signature separator is used to separate the body of a message | |
170 from the signature. This can be used by user agents such as MH-E | |
171 to render the signature differently or to suppress the inclusion | |
172 of the signature in a reply. Use `mh-signature-separator-regexp' | |
173 when searching for a separator.") | |
174 | |
175 (defun mh-signature-separator-p () | |
176 "Return non-nil if buffer includes \"^-- $\"." | |
177 (save-excursion | |
178 (goto-char (point-min)) | |
179 (re-search-forward mh-signature-separator-regexp nil t))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
180 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
181 ;; Variables for MIME display |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
182 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
183 ;; Structure to keep track of MIME handles on a per buffer basis. |
88155 | 184 (mh-defstruct (mh-buffer-data (:conc-name mh-mime-) |
185 (:constructor mh-make-buffer-data)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
186 (handles ()) ; List of MIME handles |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
187 (handles-cache (make-hash-table)) ; Cache to avoid multiple decodes of |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
188 ; nested messages |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
189 (parts-count 0) ; The button number is generated from |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
190 ; this number |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
191 (part-index-hash (make-hash-table))) ; Avoid incrementing the part number |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
192 ; for nested messages |
88155 | 193 |
194 ;; This has to be a macro, since we do: (setf (mh-buffer-data) ...) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
195 (defmacro mh-buffer-data () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
196 "Convenience macro to get the MIME data structures of the current buffer." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
197 `(gethash (current-buffer) mh-globals-hash)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
198 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
199 (defvar mh-globals-hash (make-hash-table) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
200 "Keeps track of MIME data on a per buffer basis.") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
201 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
202 (defvar mh-mm-inline-media-tests |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
203 `(("image/jpeg" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
204 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
205 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
206 (mm-valid-and-fit-image-p 'jpeg handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
207 ("image/png" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
208 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
209 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
210 (mm-valid-and-fit-image-p 'png handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
211 ("image/gif" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
212 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
213 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
214 (mm-valid-and-fit-image-p 'gif handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
215 ("image/tiff" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
216 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
217 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
218 (mm-valid-and-fit-image-p 'tiff handle)) ) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
219 ("image/xbm" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
220 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
221 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
222 (mm-valid-and-fit-image-p 'xbm handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
223 ("image/x-xbitmap" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
224 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
225 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
226 (mm-valid-and-fit-image-p 'xbm handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
227 ("image/xpm" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
228 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
229 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
230 (mm-valid-and-fit-image-p 'xpm handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
231 ("image/x-pixmap" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
232 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
233 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
234 (mm-valid-and-fit-image-p 'xpm handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
235 ("image/bmp" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
236 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
237 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
238 (mm-valid-and-fit-image-p 'bmp handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
239 ("image/x-portable-bitmap" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
240 mm-inline-image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
241 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
242 (mm-valid-and-fit-image-p 'pbm handle))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
243 ("text/plain" mm-inline-text identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
244 ("text/enriched" mm-inline-text identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
245 ("text/richtext" mm-inline-text identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
246 ("text/x-patch" mm-display-patch-inline |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
247 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
248 (locate-library "diff-mode"))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
249 ("application/emacs-lisp" mm-display-elisp-inline identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
250 ("application/x-emacs-lisp" mm-display-elisp-inline identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
251 ("text/html" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
252 ,(if (fboundp 'mm-inline-text-html) 'mm-inline-text-html 'mm-inline-text) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
253 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
254 (or (and (boundp 'mm-inline-text-html-renderer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
255 mm-inline-text-html-renderer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
256 (and (boundp 'mm-text-html-renderer) mm-text-html-renderer)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
257 ("text/x-vcard" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
258 mm-inline-text-vcard |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
259 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
260 (or (featurep 'vcard) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
261 (locate-library "vcard")))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
262 ("message/delivery-status" mm-inline-text identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
263 ("message/rfc822" mh-mm-inline-message identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
264 ;;("message/partial" mm-inline-partial identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
265 ;;("message/external-body" mm-inline-external-body identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
266 ("text/.*" mm-inline-text identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
267 ("audio/wav" mm-inline-audio |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
268 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
269 (and (or (featurep 'nas-sound) (featurep 'native-sound)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
270 (device-sound-enabled-p)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
271 ("audio/au" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
272 mm-inline-audio |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
273 (lambda (handle) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
274 (and (or (featurep 'nas-sound) (featurep 'native-sound)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
275 (device-sound-enabled-p)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
276 ("application/pgp-signature" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
277 ("application/x-pkcs7-signature" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
278 ("application/pkcs7-signature" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
279 ("application/x-pkcs7-mime" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
280 ("application/pkcs7-mime" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
281 ("multipart/alternative" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
282 ("multipart/mixed" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
283 ("multipart/related" ignore identity) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
284 ;; Disable audio and image |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
285 ("audio/.*" ignore ignore) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
286 ("image/.*" ignore ignore) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
287 ;; Default to displaying as text |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
288 (".*" mm-inline-text mm-readable-p)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
289 "Alist of media types/tests saying whether types can be displayed inline.") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
290 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
291 ;; Copy of `goto-address-mail-regexp' |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
292 (defvar mh-address-mail-regexp |
88155 | 293 "[-a-zA-Z0-9._]+@\\([-a-zA-z0-9_]+\\.\\)+[a-zA-Z0-9]+" |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
294 "A regular expression probably matching an e-mail address.") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
295 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
296 ;; From goto-addr.el, which we don't want to force-load on users. |
88155 | 297 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
298 (defun mh-goto-address-find-address-at-point () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
299 "Find e-mail address around or before point. |
88155 | 300 |
301 Then search backwards to beginning of line for the start of an | |
302 e-mail address. If no e-mail address found, return nil." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
303 (re-search-backward "[^-_A-z0-9.@]" (line-beginning-position) 'lim) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
304 (if (or (looking-at mh-address-mail-regexp) ; already at start |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
305 (and (re-search-forward mh-address-mail-regexp |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
306 (line-end-position) 'lim) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
307 (goto-char (match-beginning 0)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
308 (match-string-no-properties 0))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
309 |
88155 | 310 (defun mh-mail-header-end () |
311 "Substitute for `mail-header-end' that doesn't widen the buffer. | |
312 | |
313 In MH-E we frequently need to find the end of headers in nested | |
314 messages, where the buffer has been narrowed. This function works | |
315 in this situation." | |
316 (save-excursion | |
317 ;; XXX: The following replaces a call to rfc822-goto-eoh. Occasionally, | |
318 ;; mail headers that MH-E has to read contains lines of the form: | |
319 ;; From xxx@yyy Mon May 10 11:48:07 2004 | |
320 ;; In this situation, rfc822-goto-eoh doesn't go to the end of the | |
321 ;; header. The replacement allows From_ lines in the mail header. | |
322 (goto-char (point-min)) | |
323 (loop for p = (re-search-forward | |
324 "^\\([:\n]\\|[^: \t\n]+[ \t\n]\\)" nil 'move) | |
325 do (cond ((null p) (return)) | |
326 (t (goto-char (match-beginning 0)) | |
327 (unless (looking-at "From ") (return)) | |
328 (goto-char p)))) | |
329 (point))) | |
330 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
331 (defun mh-in-header-p () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
332 "Return non-nil if the point is in the header of a draft message." |
88155 | 333 (< (point) (mh-mail-header-end))) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
334 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
335 (defun mh-header-field-beginning () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
336 "Move to the beginning of the current header field. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
337 Handles RFC 822 continuation lines." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
338 (beginning-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
339 (while (looking-at "^[ \t]") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
340 (forward-line -1))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
341 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
342 (defun mh-header-field-end () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
343 "Move to the end of the current header field. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
344 Handles RFC 822 continuation lines." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
345 (forward-line 1) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
346 (while (looking-at "^[ \t]") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
347 (forward-line 1)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
348 (backward-char 1)) ;to end of previous line |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
349 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
350 (defun mh-letter-header-font-lock (limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
351 "Return the entire mail header to font-lock. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
352 Argument LIMIT limits search." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
353 (if (= (point) limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
354 nil |
88155 | 355 (let* ((mail-header-end (save-match-data (mh-mail-header-end))) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
356 (lesser-limit (if (< mail-header-end limit) mail-header-end limit))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
357 (when (mh-in-header-p) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
358 (set-match-data (list 1 lesser-limit)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
359 (goto-char lesser-limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
360 t)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
361 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
362 (defun mh-header-field-font-lock (field limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
363 "Return the value of a header field FIELD to font-lock. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
364 Argument LIMIT limits search." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
365 (if (= (point) limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
366 nil |
88155 | 367 (let* ((mail-header-end (mh-mail-header-end)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
368 (lesser-limit (if (< mail-header-end limit) mail-header-end limit)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
369 (case-fold-search t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
370 (when (and (< (point) mail-header-end) ;Only within header |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
371 (re-search-forward (format "^%s" field) lesser-limit t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
372 (let ((match-one-b (match-beginning 0)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
373 (match-one-e (match-end 0))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
374 (mh-header-field-end) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
375 (if (> (point) limit) ;Don't search for end beyond limit |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
376 (goto-char limit)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
377 (set-match-data (list match-one-b match-one-e |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
378 (1+ match-one-e) (point))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
379 t))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
380 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
381 (defun mh-header-to-font-lock (limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
382 "Return the value of a header field To to font-lock. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
383 Argument LIMIT limits search." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
384 (mh-header-field-font-lock "To:" limit)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
385 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
386 (defun mh-header-cc-font-lock (limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
387 "Return the value of a header field cc to font-lock. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
388 Argument LIMIT limits search." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
389 (mh-header-field-font-lock "cc:" limit)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
390 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
391 (defun mh-header-subject-font-lock (limit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
392 "Return the value of a header field Subject to font-lock. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
393 Argument LIMIT limits search." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
394 (mh-header-field-font-lock "Subject:" limit)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
395 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
396 (eval-and-compile |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
397 ;; Otherwise byte-compilation fails on `mh-show-font-lock-keywords-with-cite' |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
398 (defvar mh-show-font-lock-keywords |
88155 | 399 '(("^\\(From:\\|Sender:\\)\\(.*\\)" |
400 (1 'default) | |
401 (2 'mh-show-from)) | |
402 (mh-header-to-font-lock | |
403 (0 'default) | |
404 (1 'mh-show-to)) | |
405 (mh-header-cc-font-lock | |
406 (0 'default) | |
407 (1 'mh-show-cc)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
408 ("^\\(Reply-To:\\|Return-Path:\\)\\(.*\\)$" |
88155 | 409 (1 'default) |
410 (2 'mh-show-from)) | |
411 (mh-header-subject-font-lock | |
412 (0 'default) | |
413 (1 'mh-show-subject)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
414 ("^\\(Apparently-To:\\|Newsgroups:\\)\\(.*\\)" |
88155 | 415 (1 'default) |
416 (2 'mh-show-cc)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
417 ("^\\(In-reply-to\\|Date\\):\\(.*\\)$" |
88155 | 418 (1 'default) |
419 (2 'mh-show-date)) | |
420 (mh-letter-header-font-lock | |
421 (0 'mh-show-header append t))) | |
422 "Additional expressions to highlight in MH-Show buffers.")) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
423 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
424 (defvar mh-show-font-lock-keywords-with-cite |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
425 (eval-when-compile |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
426 (let* ((cite-chars "[>|}]") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
427 (cite-prefix "A-Za-z") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
428 (cite-suffix (concat cite-prefix "0-9_.@-`'\""))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
429 (append |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
430 mh-show-font-lock-keywords |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
431 (list |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
432 ;; Use MATCH-ANCHORED to effectively anchor the regexp left side. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
433 `(,cite-chars |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
434 (,(concat "\\=[ \t]*" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
435 "\\(\\([" cite-prefix "]+[" cite-suffix "]*\\)?" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
436 "\\(" cite-chars "[ \t]*\\)\\)+" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
437 "\\(.*\\)") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
438 (beginning-of-line) (end-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
439 (2 font-lock-constant-face nil t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
440 (4 font-lock-comment-face nil t))))))) |
88155 | 441 "Additional expressions to highlight in MH-Show buffers.") |
442 | |
443 (defvar mh-letter-font-lock-keywords | |
444 `(,@mh-show-font-lock-keywords-with-cite | |
445 (mh-font-lock-field-data | |
446 (1 'mh-letter-header-field prepend t))) | |
447 "Additional expressions to highlight in MH-Letter buffers.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
448 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
449 (defun mh-show-font-lock-fontify-region (beg end loudly) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
450 "Limit font-lock in `mh-show-mode' to the header. |
88155 | 451 |
452 Used when the option `mh-highlight-citation-style' is set to | |
453 \"Gnus\", leaving the body to be dealt with by Gnus highlighting. | |
454 The region between BEG and END is given over to be fontified and | |
455 LOUDLY controls if a user sees a message about the fontification | |
456 operation." | |
457 (let ((header-end (mh-mail-header-end))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
458 (cond |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
459 ((and (< beg header-end)(< end header-end)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
460 (font-lock-default-fontify-region beg end loudly)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
461 ((and (< beg header-end)(>= end header-end)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
462 (font-lock-default-fontify-region beg header-end loudly)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
463 (t |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
464 nil)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
465 |
88155 | 466 ;; Shush compiler. |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
467 (if mh-xemacs-flag |
88155 | 468 (eval-and-compile |
469 (require 'gnus) | |
470 (require 'gnus-art) | |
471 (require 'gnus-cite))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
472 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
473 (defun mh-gnus-article-highlight-citation () |
88155 | 474 "Highlight cited text in current buffer using Gnus." |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
475 (interactive) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
476 ;; Requiring gnus-cite should have been sufficient. However for Emacs21.1, |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
477 ;; recursive-load-depth-limit is only 10, so an error occurs. Also it may be |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
478 ;; better to have an autoload at top-level (though that won't work because |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
479 ;; of recursive-load-depth-limit). That gets rid of a compiler warning as |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
480 ;; well. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
481 (unless mh-xemacs-flag |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
482 (require 'gnus-art) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
483 (require 'gnus-cite)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
484 ;; Don't allow Gnus to create buttons while highlighting, maybe this is bad |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
485 ;; style? |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
486 (flet ((gnus-article-add-button (&rest args) nil)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
487 (let* ((modified (buffer-modified-p)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
488 (gnus-article-buffer (buffer-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
489 (gnus-cite-face-list `(,@(cdr gnus-cite-face-list) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
490 ,(car gnus-cite-face-list)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
491 (gnus-article-highlight-citation t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
492 (set-buffer-modified-p modified)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
493 |
88155 | 494 |
495 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
496 ;;; Internal bookkeeping variables: |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
497 |
88155 | 498 (defvar mh-user-path nil |
499 "Cached value of the \"Path:\" MH profile component. | |
500 User's mail folder directory.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
501 |
88155 | 502 (defvar mh-draft-folder nil |
503 "Cached value of the \"Draft-Folder:\" MH profile component. | |
504 Name of folder containing draft messages. | |
505 Nil means do not use a draft folder.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
506 |
88155 | 507 (defvar mh-unseen-seq nil |
508 "Cached value of the \"Unseen-Sequence:\" MH profile component. | |
509 Name of the Unseen sequence.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
510 |
88155 | 511 (defvar mh-previous-seq nil |
512 "Cached value of the \"Previous-Sequence:\" MH profile component. | |
513 Name of the Previous sequence.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
514 |
88155 | 515 (defvar mh-inbox nil |
516 "Cached value of the \"Inbox:\" MH profile component. | |
517 Set to \"+inbox\" if no such component. | |
518 Name of the Inbox folder.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
519 |
88155 | 520 (defvar mh-previous-window-config nil |
521 "Window configuration before MH-E command.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
522 |
88155 | 523 (defvar mh-page-to-next-msg-flag nil |
524 "Non-nil means next SPC or whatever goes to next undeleted message.") | |
525 | |
526 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
527 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
528 ;;; Internal variables local to a folder. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
529 |
88155 | 530 (defvar mh-current-folder nil |
531 "Name of current folder, a string.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
532 |
88155 | 533 (defvar mh-show-buffer nil |
534 "Buffer that displays message for this folder.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
535 |
88155 | 536 (defvar mh-folder-filename nil |
537 "Full path of directory for this folder.") | |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49578
diff
changeset
|
538 |
88155 | 539 (defvar mh-msg-count nil |
540 "Number of msgs in buffer.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
541 |
88155 | 542 (defvar mh-showing-mode nil |
543 "If non-nil, show the message in a separate window.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
544 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
545 (defvar mh-show-mode-map (make-sparse-keymap) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
546 "Keymap used by the show buffer.") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
547 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
548 (defvar mh-show-folder-buffer nil |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
549 "Keeps track of folder whose message is being displayed.") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
550 |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
551 (defvar mh-logo-cache nil) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
552 |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
553 (defun mh-logo-display () |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
554 "Modify mode line to display MH-E logo." |
88155 | 555 (mh-do-in-gnu-emacs |
556 (add-text-properties | |
557 0 2 | |
558 `(display ,(or mh-logo-cache | |
559 (setq mh-logo-cache | |
560 (mh-funcall-if-exists | |
561 find-image '((:type xpm :ascent center | |
562 :file "mh-logo.xpm")))))) | |
563 (car mode-line-buffer-identification))) | |
564 (mh-do-in-xemacs | |
565 (setq modeline-buffer-identification | |
566 (list | |
567 (if mh-modeline-glyph | |
568 (cons modeline-buffer-id-left-extent mh-modeline-glyph) | |
569 (cons modeline-buffer-id-left-extent "XEmacs%N:")) | |
570 (cons modeline-buffer-id-right-extent " %17b"))))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
571 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
572 (defun mh-showing-mode (&optional arg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
573 "Change whether messages should be displayed. |
88155 | 574 |
575 With ARG, display messages iff ARG is positive." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
576 (setq mh-showing-mode |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
577 (if (null arg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
578 (not mh-showing-mode) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
579 (> (prefix-numeric-value arg) 0)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
580 |
88155 | 581 (defvar mh-seq-list nil |
582 "Alist of this folder's sequences. | |
583 Elements have the form (SEQUENCE . MESSAGES).") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
584 |
88155 | 585 (defvar mh-seen-list nil |
586 "List of displayed messages to be removed from the \"Unseen\" sequence.") | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
587 |
88155 | 588 (defvar mh-showing-with-headers nil |
589 "If non-nil, MH-Show buffer contains message with all header fields. | |
590 If nil, MH-Show buffer contains message processed normally.") | |
591 | |
592 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
593 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
594 ;;; MH-E macros |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
595 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
596 (defmacro with-mh-folder-updating (save-modification-flag &rest body) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
597 "Format is (with-mh-folder-updating (SAVE-MODIFICATION-FLAG) &body BODY). |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
598 Execute BODY, which can modify the folder buffer without having to |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
599 worry about file locking or the read-only flag, and return its result. |
88155 | 600 If SAVE-MODIFICATION-FLAG is non-nil, the buffer's modification flag |
601 is unchanged, otherwise it is cleared." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
602 (setq save-modification-flag (car save-modification-flag)) ; CL style |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
603 `(prog1 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
604 (let ((mh-folder-updating-mod-flag (buffer-modified-p)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
605 (buffer-read-only nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
606 (buffer-file-name nil)) ;don't let the buffer get locked |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
607 (prog1 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
608 (progn |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
609 ,@body) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
610 (mh-set-folder-modified-p mh-folder-updating-mod-flag))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
611 ,@(if (not save-modification-flag) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
612 '((mh-set-folder-modified-p nil))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
613 |
88155 | 614 (put 'with-mh-folder-updating 'lisp-indent-hook 'defun) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
615 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
616 (defmacro mh-in-show-buffer (show-buffer &rest body) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
617 "Format is (mh-in-show-buffer (SHOW-BUFFER) &body BODY). |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
618 Display buffer SHOW-BUFFER in other window and execute BODY in it. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
619 Stronger than `save-excursion', weaker than `save-window-excursion'." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
620 (setq show-buffer (car show-buffer)) ; CL style |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
621 `(let ((mh-in-show-buffer-saved-window (selected-window))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
622 (switch-to-buffer-other-window ,show-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
623 (if mh-bury-show-buffer-flag (bury-buffer (current-buffer))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
624 (unwind-protect |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
625 (progn |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
626 ,@body) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
627 (select-window mh-in-show-buffer-saved-window)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
628 |
88155 | 629 (put 'mh-in-show-buffer 'lisp-indent-hook 'defun) |
630 | |
631 (defmacro mh-do-at-event-location (event &rest body) | |
632 "Switch to the location of EVENT and execute BODY. | |
633 After BODY has been executed return to original window. The | |
634 modification flag of the buffer in the event window is | |
635 preserved." | |
636 (let ((event-window (make-symbol "event-window")) | |
637 (event-position (make-symbol "event-position")) | |
638 (original-window (make-symbol "original-window")) | |
639 (original-position (make-symbol "original-position")) | |
640 (modified-flag (make-symbol "modified-flag"))) | |
641 `(save-excursion | |
642 (let* ((,event-window | |
643 (or (mh-funcall-if-exists posn-window (event-start ,event)) | |
644 (mh-funcall-if-exists event-window ,event))) | |
645 (,event-position | |
646 (or (mh-funcall-if-exists posn-point (event-start ,event)) | |
647 (mh-funcall-if-exists event-closest-point ,event))) | |
648 (,original-window (selected-window)) | |
649 (,original-position (progn | |
650 (set-buffer (window-buffer ,event-window)) | |
651 (set-marker (make-marker) (point)))) | |
652 (,modified-flag (buffer-modified-p)) | |
653 (buffer-read-only nil)) | |
654 (unwind-protect (progn | |
655 (select-window ,event-window) | |
656 (goto-char ,event-position) | |
657 ,@body) | |
658 (set-buffer-modified-p ,modified-flag) | |
659 (goto-char ,original-position) | |
660 (set-marker ,original-position nil) | |
661 (select-window ,original-window)))))) | |
662 | |
663 (put 'mh-do-at-event-location 'lisp-indent-hook 'defun) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
664 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
665 (defmacro mh-make-seq (name msgs) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
666 "Create sequence NAME with the given MSGS." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
667 (list 'cons name msgs)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
668 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
669 (defmacro mh-seq-name (sequence) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
670 "Extract sequence name from the given SEQUENCE." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
671 (list 'car sequence)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
672 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
673 (defmacro mh-seq-msgs (sequence) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
674 "Extract messages from the given SEQUENCE." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
675 (list 'cdr sequence)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
676 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
677 (defun mh-recenter (arg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
678 "Like recenter but with three improvements: |
88155 | 679 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
680 - At the end of the buffer it tries to show fewer empty lines. |
88155 | 681 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
682 - operates only if the current buffer is in the selected window. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
683 (Commands like `save-some-buffers' can make this false.) |
88155 | 684 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
685 - nil ARG means recenter as if prefix argument had been given." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
686 (cond ((not (eq (get-buffer-window (current-buffer)) (selected-window))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
687 nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
688 ((= (point-max) (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
689 (forward-line (- (/ (window-height) 2) 2)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
690 (point))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
691 (let ((lines-from-end 2)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
692 (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
693 (while (> (point-max) (progn (forward-line) (point))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
694 (incf lines-from-end))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
695 (recenter (- lines-from-end)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
696 ;; '(4) is the same as C-u prefix argument. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
697 (t (recenter (or arg '(4)))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
698 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
699 (defun mh-start-of-uncleaned-message () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
700 "Position uninteresting headers off the top of the window." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
701 (let ((case-fold-search t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
702 (re-search-forward |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
703 "^To:\\|^Cc:\\|^From:\\|^Subject:\\|^Date:" nil t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
704 (beginning-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
705 (mh-recenter 0))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
706 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
707 (defun mh-invalidate-show-buffer () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
708 "Invalidate the show buffer so we must update it to use it." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
709 (if (get-buffer mh-show-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
710 (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
711 (set-buffer mh-show-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
712 (mh-unvisit-file)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
713 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
714 (defun mh-unvisit-file () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
715 "Separate current buffer from the message file it was visiting." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
716 (or (not (buffer-modified-p)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
717 (null buffer-file-name) ;we've been here before |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
718 (yes-or-no-p (format "Message %s modified; flush changes? " |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
719 (file-name-nondirectory buffer-file-name))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
720 (error "Flushing changes not confirmed")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
721 (clear-visited-file-modtime) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
722 (unlock-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
723 (setq buffer-file-name nil)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49578
diff
changeset
|
724 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
725 (defun mh-get-msg-num (error-if-no-message) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
726 "Return the message number of the displayed message. |
88155 | 727 If the argument ERROR-IF-NO-MESSAGE is non-nil, then complain if |
728 the cursor is not pointing to a message." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
729 (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
730 (beginning-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
731 (cond ((looking-at mh-scan-msg-number-regexp) |
88155 | 732 (string-to-number (buffer-substring (match-beginning 1) |
733 (match-end 1)))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
734 (error-if-no-message |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
735 (error "Cursor not pointing to message")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
736 (t nil)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
737 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
738 (defun mh-folder-name-p (name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
739 "Return non-nil if NAME is the name of a folder. |
88155 | 740 A name (a string or symbol) can be a folder name if it begins |
741 with \"+\"." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
742 (if (symbolp name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
743 (eq (aref (symbol-name name) 0) ?+) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
744 (and (> (length name) 0) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
745 (eq (aref name 0) ?+)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
746 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
747 (defun mh-expand-file-name (filename &optional default) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
748 "Expand FILENAME like `expand-file-name', but also handle MH folder names. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
749 Any filename that starts with '+' is treated as a folder name. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
750 See `expand-file-name' for description of DEFAULT." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
751 (if (mh-folder-name-p filename) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
752 (expand-file-name (substring filename 1) mh-user-path) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
753 (expand-file-name filename default))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
754 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
755 (defun mh-msg-filename (msg &optional folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
756 "Return the file name of MSG in FOLDER (default current folder)." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
757 (expand-file-name (int-to-string msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
758 (if folder |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
759 (mh-expand-file-name folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
760 mh-folder-filename))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
761 |
88155 | 762 ;; Infrastructure to generate show-buffer functions from folder functions |
763 ;; XEmacs does not have deactivate-mark? What is the equivalent of | |
764 ;; transient-mark-mode for XEmacs? Should we be restoring the mark in the | |
765 ;; folder buffer after the operation has been carried out. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
766 (defmacro mh-defun-show-buffer (function original-function |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
767 &optional dont-return) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
768 "Define FUNCTION to run ORIGINAL-FUNCTION in folder buffer. |
88155 | 769 If the buffer we start in is still visible and DONT-RETURN is nil |
770 then switch to it after that." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
771 `(defun ,function () |
88155 | 772 ,(format "Calls %s from the message's folder.\n%s\nSee \"%s\" for more info.\n" |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
773 original-function |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
774 (if dont-return "" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
775 "When function completes, returns to the show buffer if it is |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
776 still visible.\n") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
777 original-function) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
778 (interactive) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
779 (when (buffer-live-p (get-buffer mh-show-folder-buffer)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
780 (let ((config (current-window-configuration)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
781 (folder-buffer mh-show-folder-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
782 (normal-exit nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
783 ,@(if dont-return () '((cur-buffer-name (buffer-name))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
784 (pop-to-buffer mh-show-folder-buffer nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
785 (unless (equal (buffer-name |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
786 (window-buffer (frame-first-window (selected-frame)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
787 folder-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
788 (delete-other-windows)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
789 (mh-goto-cur-msg t) |
88155 | 790 (mh-funcall-if-exists deactivate-mark) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
791 (unwind-protect |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
792 (prog1 (call-interactively (function ,original-function)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
793 (setq normal-exit t)) |
88155 | 794 (mh-funcall-if-exists deactivate-mark) |
795 (when (eq major-mode 'mh-folder-mode) | |
796 (mh-funcall-if-exists hl-line-highlight)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
797 (cond ((not normal-exit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
798 (set-window-configuration config)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
799 ,(if dont-return |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
800 `(t (setq mh-previous-window-config config)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
801 `((and (get-buffer cur-buffer-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
802 (window-live-p (get-buffer-window |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
803 (get-buffer cur-buffer-name)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
804 (pop-to-buffer (get-buffer cur-buffer-name) nil))))))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
805 |
88155 | 806 ;; Generate interactive functions for the show buffer from the corresponding |
807 ;; folder functions. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
808 (mh-defun-show-buffer mh-show-previous-undeleted-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
809 mh-previous-undeleted-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
810 (mh-defun-show-buffer mh-show-next-undeleted-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
811 mh-next-undeleted-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
812 (mh-defun-show-buffer mh-show-quit mh-quit) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
813 (mh-defun-show-buffer mh-show-delete-msg mh-delete-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
814 (mh-defun-show-buffer mh-show-refile-msg mh-refile-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
815 (mh-defun-show-buffer mh-show-undo mh-undo) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
816 (mh-defun-show-buffer mh-show-execute-commands mh-execute-commands) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
817 (mh-defun-show-buffer mh-show-reply mh-reply t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
818 (mh-defun-show-buffer mh-show-redistribute mh-redistribute) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
819 (mh-defun-show-buffer mh-show-forward mh-forward t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
820 (mh-defun-show-buffer mh-show-header-display mh-header-display) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
821 (mh-defun-show-buffer mh-show-refile-or-write-again |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
822 mh-refile-or-write-again) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
823 (mh-defun-show-buffer mh-show-show mh-show) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
824 (mh-defun-show-buffer mh-show-write-message-to-file |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
825 mh-write-msg-to-file) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
826 (mh-defun-show-buffer mh-show-extract-rejected-mail |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
827 mh-extract-rejected-mail t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
828 (mh-defun-show-buffer mh-show-delete-msg-no-motion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
829 mh-delete-msg-no-motion) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
830 (mh-defun-show-buffer mh-show-first-msg mh-first-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
831 (mh-defun-show-buffer mh-show-last-msg mh-last-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
832 (mh-defun-show-buffer mh-show-copy-msg mh-copy-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
833 (mh-defun-show-buffer mh-show-edit-again mh-edit-again t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
834 (mh-defun-show-buffer mh-show-goto-msg mh-goto-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
835 (mh-defun-show-buffer mh-show-inc-folder mh-inc-folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
836 (mh-defun-show-buffer mh-show-delete-subject-or-thread |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
837 mh-delete-subject-or-thread) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
838 (mh-defun-show-buffer mh-show-delete-subject mh-delete-subject) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
839 (mh-defun-show-buffer mh-show-print-msg mh-print-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
840 (mh-defun-show-buffer mh-show-send mh-send t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
841 (mh-defun-show-buffer mh-show-toggle-showing mh-toggle-showing t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
842 (mh-defun-show-buffer mh-show-pipe-msg mh-pipe-msg t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
843 (mh-defun-show-buffer mh-show-sort-folder mh-sort-folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
844 (mh-defun-show-buffer mh-show-visit-folder mh-visit-folder t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
845 (mh-defun-show-buffer mh-show-rescan-folder mh-rescan-folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
846 (mh-defun-show-buffer mh-show-pack-folder mh-pack-folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
847 (mh-defun-show-buffer mh-show-kill-folder mh-kill-folder t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
848 (mh-defun-show-buffer mh-show-list-folders mh-list-folders t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
849 (mh-defun-show-buffer mh-show-undo-folder mh-undo-folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
850 (mh-defun-show-buffer mh-show-delete-msg-from-seq |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
851 mh-delete-msg-from-seq) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
852 (mh-defun-show-buffer mh-show-delete-seq mh-delete-seq) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
853 (mh-defun-show-buffer mh-show-list-sequences mh-list-sequences) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
854 (mh-defun-show-buffer mh-show-narrow-to-seq mh-narrow-to-seq) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
855 (mh-defun-show-buffer mh-show-put-msg-in-seq mh-put-msg-in-seq) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
856 (mh-defun-show-buffer mh-show-msg-is-in-seq mh-msg-is-in-seq) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
857 (mh-defun-show-buffer mh-show-widen mh-widen) |
88155 | 858 (mh-defun-show-buffer mh-show-narrow-to-subject mh-narrow-to-subject) |
859 (mh-defun-show-buffer mh-show-narrow-to-from mh-narrow-to-from) | |
860 (mh-defun-show-buffer mh-show-narrow-to-cc mh-narrow-to-cc) | |
861 (mh-defun-show-buffer mh-show-narrow-to-range mh-narrow-to-range) | |
862 (mh-defun-show-buffer mh-show-narrow-to-to mh-narrow-to-to) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
863 (mh-defun-show-buffer mh-show-store-msg mh-store-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
864 (mh-defun-show-buffer mh-show-page-digest mh-page-digest) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
865 (mh-defun-show-buffer mh-show-page-digest-backwards |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
866 mh-page-digest-backwards) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
867 (mh-defun-show-buffer mh-show-burst-digest mh-burst-digest) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
868 (mh-defun-show-buffer mh-show-page-msg mh-page-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
869 (mh-defun-show-buffer mh-show-previous-page mh-previous-page) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
870 (mh-defun-show-buffer mh-show-modify mh-modify t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
871 (mh-defun-show-buffer mh-show-next-button mh-next-button) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
872 (mh-defun-show-buffer mh-show-prev-button mh-prev-button) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
873 (mh-defun-show-buffer mh-show-toggle-mime-part mh-folder-toggle-mime-part) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
874 (mh-defun-show-buffer mh-show-save-mime-part mh-folder-save-mime-part) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
875 (mh-defun-show-buffer mh-show-inline-mime-part mh-folder-inline-mime-part) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
876 (mh-defun-show-buffer mh-show-toggle-threads mh-toggle-threads) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
877 (mh-defun-show-buffer mh-show-thread-delete mh-thread-delete) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
878 (mh-defun-show-buffer mh-show-thread-refile mh-thread-refile) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
879 (mh-defun-show-buffer mh-show-update-sequences mh-update-sequences) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
880 (mh-defun-show-buffer mh-show-next-unread-msg mh-next-unread-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
881 (mh-defun-show-buffer mh-show-previous-unread-msg mh-previous-unread-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
882 (mh-defun-show-buffer mh-show-thread-ancestor mh-thread-ancestor) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
883 (mh-defun-show-buffer mh-show-thread-next-sibling mh-thread-next-sibling) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
884 (mh-defun-show-buffer mh-show-thread-previous-sibling |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
885 mh-thread-previous-sibling) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
886 (mh-defun-show-buffer mh-show-index-visit-folder mh-index-visit-folder t) |
88155 | 887 (mh-defun-show-buffer mh-show-toggle-tick mh-toggle-tick) |
888 (mh-defun-show-buffer mh-show-narrow-to-tick mh-narrow-to-tick) | |
889 (mh-defun-show-buffer mh-show-junk-blacklist mh-junk-blacklist) | |
890 (mh-defun-show-buffer mh-show-junk-whitelist mh-junk-whitelist) | |
891 (mh-defun-show-buffer mh-show-index-new-messages mh-index-new-messages) | |
892 (mh-defun-show-buffer mh-show-index-ticked-messages mh-index-ticked-messages) | |
893 (mh-defun-show-buffer mh-show-index-sequenced-messages | |
894 mh-index-sequenced-messages) | |
895 (mh-defun-show-buffer mh-show-catchup mh-catchup) | |
896 (mh-defun-show-buffer mh-show-ps-print-toggle-color mh-ps-print-toggle-color) | |
897 (mh-defun-show-buffer mh-show-ps-print-toggle-faces mh-ps-print-toggle-faces) | |
898 (mh-defun-show-buffer mh-show-ps-print-msg-file mh-ps-print-msg-file) | |
899 (mh-defun-show-buffer mh-show-ps-print-msg mh-ps-print-msg) | |
900 (mh-defun-show-buffer mh-show-toggle-mime-buttons mh-toggle-mime-buttons) | |
901 (mh-defun-show-buffer mh-show-display-with-external-viewer | |
902 mh-display-with-external-viewer) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
903 |
88155 | 904 |
905 | |
906 ;;; Build mh-show-mode keymaps | |
907 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
908 (gnus-define-keys mh-show-mode-map |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
909 " " mh-show-page-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
910 "!" mh-show-refile-or-write-again |
88155 | 911 "'" mh-show-toggle-tick |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
912 "," mh-show-header-display |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
913 "." mh-show-show |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
914 ">" mh-show-write-message-to-file |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
915 "?" mh-help |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
916 "E" mh-show-extract-rejected-mail |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
917 "M" mh-show-modify |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
918 "\177" mh-show-previous-page |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
919 "\C-d" mh-show-delete-msg-no-motion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
920 "\t" mh-show-next-button |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
921 [backtab] mh-show-prev-button |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
922 "\M-\t" mh-show-prev-button |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
923 "\ed" mh-show-redistribute |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
924 "^" mh-show-refile-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
925 "c" mh-show-copy-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
926 "d" mh-show-delete-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
927 "e" mh-show-edit-again |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
928 "f" mh-show-forward |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
929 "g" mh-show-goto-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
930 "i" mh-show-inc-folder |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
931 "k" mh-show-delete-subject-or-thread |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
932 "m" mh-show-send |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
933 "n" mh-show-next-undeleted-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
934 "\M-n" mh-show-next-unread-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
935 "o" mh-show-refile-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
936 "p" mh-show-previous-undeleted-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
937 "\M-p" mh-show-previous-unread-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
938 "q" mh-show-quit |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
939 "r" mh-show-reply |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
940 "s" mh-show-send |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
941 "t" mh-show-toggle-showing |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
942 "u" mh-show-undo |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
943 "x" mh-show-execute-commands |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
944 "v" mh-show-index-visit-folder |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
945 "|" mh-show-pipe-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
946 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
947 (gnus-define-keys (mh-show-folder-map "F" mh-show-mode-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
948 "?" mh-prefix-help |
88155 | 949 "'" mh-index-ticked-messages |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
950 "S" mh-show-sort-folder |
88155 | 951 "c" mh-show-catchup |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
952 "f" mh-show-visit-folder |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
953 "k" mh-show-kill-folder |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
954 "l" mh-show-list-folders |
88155 | 955 "n" mh-index-new-messages |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
956 "o" mh-show-visit-folder |
88155 | 957 "q" mh-show-index-sequenced-messages |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
958 "r" mh-show-rescan-folder |
88155 | 959 "s" mh-search |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
960 "t" mh-show-toggle-threads |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
961 "u" mh-show-undo-folder |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
962 "v" mh-show-visit-folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
963 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
964 (gnus-define-keys (mh-show-sequence-map "S" mh-show-mode-map) |
88155 | 965 "'" mh-show-narrow-to-tick |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
966 "?" mh-prefix-help |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
967 "d" mh-show-delete-msg-from-seq |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
968 "k" mh-show-delete-seq |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
969 "l" mh-show-list-sequences |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
970 "n" mh-show-narrow-to-seq |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
971 "p" mh-show-put-msg-in-seq |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
972 "s" mh-show-msg-is-in-seq |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
973 "w" mh-show-widen) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
974 |
88155 | 975 (define-key mh-show-mode-map "I" mh-inc-spool-map) |
976 | |
977 (gnus-define-keys (mh-show-junk-map "J" mh-show-mode-map) | |
978 "?" mh-prefix-help | |
979 "b" mh-show-junk-blacklist | |
980 "w" mh-show-junk-whitelist) | |
981 | |
982 (gnus-define-keys (mh-show-ps-print-map "P" mh-show-mode-map) | |
983 "?" mh-prefix-help | |
984 "C" mh-show-ps-print-toggle-color | |
985 "F" mh-show-ps-print-toggle-faces | |
986 "f" mh-show-ps-print-msg-file | |
987 "l" mh-show-print-msg | |
988 "p" mh-show-ps-print-msg) | |
989 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
990 (gnus-define-keys (mh-show-thread-map "T" mh-show-mode-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
991 "?" mh-prefix-help |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
992 "u" mh-show-thread-ancestor |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
993 "p" mh-show-thread-previous-sibling |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
994 "n" mh-show-thread-next-sibling |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
995 "t" mh-show-toggle-threads |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
996 "d" mh-show-thread-delete |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
997 "o" mh-show-thread-refile) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
998 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
999 (gnus-define-keys (mh-show-limit-map "/" mh-show-mode-map) |
88155 | 1000 "'" mh-show-narrow-to-tick |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1001 "?" mh-prefix-help |
88155 | 1002 "c" mh-show-narrow-to-cc |
1003 "f" mh-show-narrow-to-from | |
1004 "r" mh-show-narrow-to-range | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1005 "s" mh-show-narrow-to-subject |
88155 | 1006 "t" mh-show-narrow-to-to |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1007 "w" mh-show-widen) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1008 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1009 (gnus-define-keys (mh-show-extract-map "X" mh-show-mode-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1010 "?" mh-prefix-help |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1011 "s" mh-show-store-msg |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1012 "u" mh-show-store-msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1013 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1014 ;; Untested... |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1015 (gnus-define-keys (mh-show-digest-map "D" mh-show-mode-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1016 "?" mh-prefix-help |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1017 " " mh-show-page-digest |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1018 "\177" mh-show-page-digest-backwards |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1019 "b" mh-show-burst-digest) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1020 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1021 (gnus-define-keys (mh-show-mime-map "K" mh-show-mode-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1022 "?" mh-prefix-help |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1023 "a" mh-mime-save-parts |
88155 | 1024 "e" mh-show-display-with-external-viewer |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1025 "v" mh-show-toggle-mime-part |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1026 "o" mh-show-save-mime-part |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1027 "i" mh-show-inline-mime-part |
88155 | 1028 "t" mh-show-toggle-mime-buttons |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1029 "\t" mh-show-next-button |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1030 [backtab] mh-show-prev-button |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1031 "\M-\t" mh-show-prev-button) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1032 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1033 (easy-menu-define |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1034 mh-show-sequence-menu mh-show-mode-map "Menu for MH-E folder-sequence." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1035 '("Sequence" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1036 ["Add Message to Sequence..." mh-show-put-msg-in-seq t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1037 ["List Sequences for Message" mh-show-msg-is-in-seq t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1038 ["Delete Message from Sequence..." mh-show-delete-msg-from-seq t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1039 ["List Sequences in Folder..." mh-show-list-sequences t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1040 ["Delete Sequence..." mh-show-delete-seq t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1041 ["Narrow to Sequence..." mh-show-narrow-to-seq t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1042 ["Widen from Sequence" mh-show-widen t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1043 "--" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1044 ["Narrow to Subject Sequence" mh-show-narrow-to-subject t] |
88155 | 1045 ["Narrow to Tick Sequence" mh-show-narrow-to-tick |
1046 (save-excursion | |
1047 (set-buffer mh-show-folder-buffer) | |
1048 (and mh-tick-seq (mh-seq-msgs (mh-find-seq mh-tick-seq))))] | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1049 ["Delete Rest of Same Subject" mh-show-delete-subject t] |
88155 | 1050 ["Toggle Tick Mark" mh-show-toggle-tick t] |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1051 "--" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1052 ["Push State Out to MH" mh-show-update-sequences t])) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1053 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1054 (easy-menu-define |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1055 mh-show-message-menu mh-show-mode-map "Menu for MH-E folder-message." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1056 '("Message" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1057 ["Show Message" mh-show-show t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1058 ["Show Message with Header" mh-show-header-display t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1059 ["Next Message" mh-show-next-undeleted-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1060 ["Previous Message" mh-show-previous-undeleted-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1061 ["Go to First Message" mh-show-first-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1062 ["Go to Last Message" mh-show-last-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1063 ["Go to Message by Number..." mh-show-goto-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1064 ["Modify Message" mh-show-modify t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1065 ["Delete Message" mh-show-delete-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1066 ["Refile Message" mh-show-refile-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1067 ["Undo Delete/Refile" mh-show-undo t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1068 ["Process Delete/Refile" mh-show-execute-commands t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1069 "--" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1070 ["Compose a New Message" mh-send t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1071 ["Reply to Message..." mh-show-reply t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1072 ["Forward Message..." mh-show-forward t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1073 ["Redistribute Message..." mh-show-redistribute t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1074 ["Edit Message Again" mh-show-edit-again t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1075 ["Re-edit a Bounced Message" mh-show-extract-rejected-mail t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1076 "--" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1077 ["Copy Message to Folder..." mh-show-copy-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1078 ["Print Message" mh-show-print-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1079 ["Write Message to File..." mh-show-write-msg-to-file t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1080 ["Pipe Message to Command..." mh-show-pipe-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1081 ["Unpack Uuencoded Message..." mh-show-store-msg t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1082 ["Burst Digest Message" mh-show-burst-digest t])) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1083 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1084 (easy-menu-define |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1085 mh-show-folder-menu mh-show-mode-map "Menu for MH-E folder." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1086 '("Folder" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1087 ["Incorporate New Mail" mh-show-inc-folder t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1088 ["Toggle Show/Folder" mh-show-toggle-showing t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1089 ["Execute Delete/Refile" mh-show-execute-commands t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1090 ["Rescan Folder" mh-show-rescan-folder t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1091 ["Thread Folder" mh-show-toggle-threads t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1092 ["Pack Folder" mh-show-pack-folder t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1093 ["Sort Folder" mh-show-sort-folder t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1094 "--" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1095 ["List Folders" mh-show-list-folders t] |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1096 ["Visit a Folder..." mh-show-visit-folder t] |
88155 | 1097 ["View New Messages" mh-show-index-new-messages t] |
1098 ["Search..." mh-search t] | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1099 "--" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1100 ["Quit MH-E" mh-quit t])) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1101 |
88155 | 1102 ;; Ensure new buffers won't get this mode if default-major-mode is nil. |
1103 (put 'mh-show-mode 'mode-class 'special) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1104 |
88155 | 1105 ;; Shush compiler. |
1106 (eval-when-compile (defvar font-lock-auto-fontify)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1107 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1108 (define-derived-mode mh-show-mode text-mode "MH-Show" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1109 "Major mode for showing messages in MH-E.\\<mh-show-mode-map> |
88155 | 1110 |
1111 The hook `mh-show-mode-hook' is called upon entry to this mode. | |
1112 | |
1113 See also `mh-folder-mode'. | |
1114 | |
1115 \\{mh-show-mode-map}" | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1116 (set (make-local-variable 'mail-header-separator) mh-mail-header-separator) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1117 (setq paragraph-start (default-value 'paragraph-start)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1118 (mh-show-unquote-From) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1119 (mh-show-xface) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1120 (mh-show-addr) |
88155 | 1121 (setq buffer-invisibility-spec '((vanish . t) t)) |
1122 (set (make-local-variable 'line-move-ignore-invisible) t) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1123 (make-local-variable 'font-lock-defaults) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1124 ;;(set (make-local-variable 'font-lock-support-mode) nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1125 (cond |
88155 | 1126 ((equal mh-highlight-citation-style 'font-lock) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1127 (setq font-lock-defaults '(mh-show-font-lock-keywords-with-cite t))) |
88155 | 1128 ((equal mh-highlight-citation-style 'gnus) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1129 (setq font-lock-defaults '((mh-show-font-lock-keywords) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1130 t nil nil nil |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1131 (font-lock-fontify-region-function |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1132 . mh-show-font-lock-fontify-region))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1133 (mh-gnus-article-highlight-citation)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1134 (t |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1135 (setq font-lock-defaults '(mh-show-font-lock-keywords t)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1136 (if (and mh-xemacs-flag |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1137 font-lock-auto-fontify) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1138 (turn-on-font-lock)) |
88155 | 1139 (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map) |
1140 (mh-funcall-if-exists mh-tool-bar-init :show) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1141 (when mh-decode-mime-flag |
88155 | 1142 (mh-make-local-hook 'kill-buffer-hook) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1143 (add-hook 'kill-buffer-hook 'mh-mime-cleanup nil t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1144 (easy-menu-add mh-show-sequence-menu) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1145 (easy-menu-add mh-show-message-menu) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1146 (easy-menu-add mh-show-folder-menu) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1147 (make-local-variable 'mh-show-folder-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1148 (buffer-disable-undo) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1149 (setq buffer-read-only t) |
88155 | 1150 (use-local-map mh-show-mode-map)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1151 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1152 (defun mh-show-addr () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1153 "Use `goto-address'." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1154 (when mh-show-use-goto-addr-flag |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1155 (if (not (featurep 'goto-addr)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1156 (load "goto-addr" t t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1157 (if (fboundp 'goto-address) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1158 (goto-address)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1159 |
88155 | 1160 |
1161 | |
1162 ;; X-Face and Face display | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1163 (defvar mh-show-xface-function |
88155 | 1164 (cond ((and mh-xemacs-flag (locate-library "x-face") (not (featurep 'xface))) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1165 (load "x-face" t t) |
88155 | 1166 #'mh-face-display-function) |
1167 ((>= emacs-major-version 21) | |
1168 #'mh-face-display-function) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1169 (t #'ignore)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1170 "Determine at run time what function should be called to display X-Face.") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1171 |
88155 | 1172 (defvar mh-uncompface-executable |
1173 (and (fboundp 'executable-find) (executable-find "uncompface"))) | |
1174 | |
1175 (defun mh-face-to-png (data) | |
1176 "Convert base64 encoded DATA to png image." | |
1177 (with-temp-buffer | |
1178 (insert data) | |
1179 (ignore-errors (base64-decode-region (point-min) (point-max))) | |
1180 (buffer-string))) | |
1181 | |
1182 (defun mh-uncompface (data) | |
1183 "Run DATA through `uncompface' to generate bitmap." | |
1184 (with-temp-buffer | |
1185 (insert data) | |
1186 (when (and mh-uncompface-executable | |
1187 (equal (call-process-region (point-min) (point-max) | |
1188 mh-uncompface-executable t '(t nil)) | |
1189 0)) | |
1190 (mh-icontopbm) | |
1191 (buffer-string)))) | |
1192 | |
1193 (defun mh-icontopbm () | |
1194 "Elisp substitute for `icontopbm'." | |
1195 (goto-char (point-min)) | |
1196 (let ((end (point-max))) | |
1197 (while (re-search-forward "0x\\(..\\)\\(..\\)," nil t) | |
1198 (save-excursion | |
1199 (goto-char (point-max)) | |
1200 (insert (string-to-number (match-string 1) 16)) | |
1201 (insert (string-to-number (match-string 2) 16)))) | |
1202 (delete-region (point-min) end) | |
1203 (goto-char (point-min)) | |
1204 (insert "P4\n48 48\n"))) | |
1205 | |
1206 (mh-do-in-xemacs (defvar default-enable-multibyte-characters)) | |
1207 | |
1208 (defmacro mh-face-foreground-compat (face &optional frame inherit) | |
1209 "Return the foreground color name of FACE, or nil if unspecified. | |
1210 See documentation for `face-foreground' for a description of the | |
1211 arguments FACE, FRAME, and INHERIT. | |
1212 | |
1213 Calls `face-foreground' correctly in older environments. Versions | |
1214 of Emacs prior to version 22 lacked an INHERIT argument which | |
1215 when t tells `face-foreground' to consider an inherited value for | |
1216 the foreground if the face does not define one itself." | |
1217 (if (>= emacs-major-version 22) | |
1218 `(face-foreground ,face ,frame ,inherit) | |
1219 `(face-foreground ,face ,frame))) | |
1220 | |
1221 (defmacro mh-face-background-compat (face &optional frame inherit) | |
1222 "Return the background color name of face, or nil if unspecified. | |
1223 See documentation for `back-foreground' for a description of the | |
1224 arguments FACE, FRAME, and INHERIT. | |
1225 | |
1226 Calls `face-background' correctly in older environments. Versions | |
1227 of Emacs prior to version 22 lacked an INHERIT argument which | |
1228 when t tells `face-background' to consider an inherited value for | |
1229 the background if the face does not define one itself." | |
1230 (if (>= emacs-major-version 22) | |
1231 `(face-background ,face ,frame ,inherit) | |
1232 `(face-background ,face ,frame))) | |
1233 | |
1234 (defun mh-face-display-function () | |
1235 "Display a Face, X-Face, or X-Image-URL header field. | |
1236 If more than one of these are present, then the first one found | |
1237 in this order is used." | |
1238 (save-restriction | |
1239 (goto-char (point-min)) | |
1240 (re-search-forward "\n\n" (point-max) t) | |
1241 (narrow-to-region (point-min) (point)) | |
1242 (let* ((case-fold-search t) | |
1243 (default-enable-multibyte-characters nil) | |
1244 (face (message-fetch-field "face" t)) | |
1245 (x-face (message-fetch-field "x-face" t)) | |
1246 (url (message-fetch-field "x-image-url" t)) | |
1247 raw type) | |
1248 (cond (face (setq raw (mh-face-to-png face) | |
1249 type 'png)) | |
1250 (x-face (setq raw (mh-uncompface x-face) | |
1251 type 'pbm)) | |
1252 (url (setq type 'url)) | |
1253 (t (multiple-value-setq (type raw) (mh-picon-get-image)))) | |
1254 (when type | |
1255 (goto-char (point-min)) | |
1256 (when (re-search-forward "^from:" (point-max) t) | |
1257 ;; GNU Emacs | |
1258 (mh-do-in-gnu-emacs | |
1259 (if (eq type 'url) | |
1260 (mh-x-image-url-display url) | |
1261 (mh-funcall-if-exists | |
1262 insert-image (create-image | |
1263 raw type t | |
1264 :foreground | |
1265 (mh-face-foreground-compat 'mh-show-xface nil t) | |
1266 :background | |
1267 (mh-face-background-compat 'mh-show-xface nil t)) | |
1268 " "))) | |
1269 ;; XEmacs | |
1270 (mh-do-in-xemacs | |
1271 (cond | |
1272 ((eq type 'url) | |
1273 (mh-x-image-url-display url)) | |
1274 ((eq type 'png) | |
1275 (when (featurep 'png) | |
1276 (set-extent-begin-glyph | |
1277 (make-extent (point) (point)) | |
1278 (make-glyph (vector 'png ':data (mh-face-to-png face)))))) | |
1279 ;; Try internal xface support if available... | |
1280 ((and (eq type 'pbm) (featurep 'xface)) | |
1281 (set-glyph-face | |
1282 (set-extent-begin-glyph | |
1283 (make-extent (point) (point)) | |
1284 (make-glyph (vector 'xface ':data (concat "X-Face: " x-face)))) | |
1285 'mh-show-xface)) | |
1286 ;; Otherwise try external support with x-face... | |
1287 ((and (eq type 'pbm) | |
1288 (fboundp 'x-face-xmas-wl-display-x-face) | |
1289 (fboundp 'executable-find) (executable-find "uncompface")) | |
1290 (mh-funcall-if-exists x-face-xmas-wl-display-x-face)) | |
1291 ;; Picon display | |
1292 ((and raw (member type '(xpm xbm gif))) | |
1293 (when (featurep type) | |
1294 (set-extent-begin-glyph | |
1295 (make-extent (point) (point)) | |
1296 (make-glyph (vector type ':data raw)))))) | |
1297 (when raw (insert " ")))))))) | |
1298 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1299 (defun mh-show-xface () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1300 "Display X-Face." |
88155 | 1301 (when (and window-system mh-show-use-xface-flag |
1302 (or mh-decode-mime-flag mh-mhl-format-file | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1303 mh-clean-message-header-flag)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1304 (funcall mh-show-xface-function))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1305 |
88155 | 1306 |
1307 | |
1308 ;;; Picon display | |
1309 | |
1310 ;; XXX: This should be customizable. As a side-effect of setting this | |
1311 ;; variable, arrange to reset mh-picon-existing-directory-list to 'unset. | |
1312 (defvar mh-picon-directory-list | |
1313 '("~/.picons" "~/.picons/users" "~/.picons/usenix" "~/.picons/news" | |
1314 "~/.picons/domains" "~/.picons/misc" | |
1315 "/usr/share/picons/" "/usr/share/picons/users" "/usr/share/picons/usenix" | |
1316 "/usr/share/picons/news" "/usr/share/picons/domains" | |
1317 "/usr/share/picons/misc") | |
1318 "List of directories where picons reside. | |
1319 The directories are searched for in the order they appear in the list.") | |
1320 | |
1321 (defvar mh-picon-existing-directory-list 'unset | |
1322 "List of directories to search in.") | |
1323 | |
1324 (defvar mh-picon-cache (make-hash-table :test #'equal)) | |
1325 | |
1326 (defvar mh-picon-image-types | |
1327 (loop for type in '(xpm xbm gif) | |
1328 when (or (mh-do-in-gnu-emacs | |
1329 (ignore-errors | |
1330 (mh-funcall-if-exists image-type-available-p type))) | |
1331 (mh-do-in-xemacs (featurep type))) | |
1332 collect type)) | |
1333 | |
1334 (defun mh-picon-set-directory-list () | |
1335 "Update `mh-picon-existing-directory-list' if needed." | |
1336 (when (eq mh-picon-existing-directory-list 'unset) | |
1337 (setq mh-picon-existing-directory-list | |
1338 (loop for x in mh-picon-directory-list | |
1339 when (file-directory-p x) collect x)))) | |
1340 | |
1341 (defun* mh-picon-get-image () | |
1342 "Find the best possible match and return contents." | |
1343 (mh-picon-set-directory-list) | |
1344 (save-restriction | |
1345 (let* ((from-field (ignore-errors (car (message-tokenize-header | |
1346 (mh-get-header-field "from:"))))) | |
1347 (from (car (ignore-errors | |
1348 (mh-funcall-if-exists ietf-drums-parse-address | |
1349 from-field)))) | |
1350 (host (and from | |
1351 (string-match "\\([^+]*\\)\\(+.*\\)?@\\(.*\\)" from) | |
1352 (downcase (match-string 3 from)))) | |
1353 (user (and host (downcase (match-string 1 from)))) | |
1354 (canonical-address (format "%s@%s" user host)) | |
1355 (cached-value (gethash canonical-address mh-picon-cache)) | |
1356 (host-list (and host (delete "" (split-string host "\\.")))) | |
1357 (match nil)) | |
1358 (cond (cached-value (return-from mh-picon-get-image cached-value)) | |
1359 ((not host-list) (return-from mh-picon-get-image nil))) | |
1360 (setq match | |
1361 (block 'loop | |
1362 ;; u@h search | |
1363 (loop for dir in mh-picon-existing-directory-list | |
1364 do (loop for type in mh-picon-image-types | |
1365 ;; [path]user@host | |
1366 for file1 = (format "%s/%s.%s" | |
1367 dir canonical-address type) | |
1368 when (file-exists-p file1) | |
1369 do (return-from 'loop file1) | |
1370 ;; [path]user | |
1371 for file2 = (format "%s/%s.%s" dir user type) | |
1372 when (file-exists-p file2) | |
1373 do (return-from 'loop file2) | |
1374 ;; [path]host | |
1375 for file3 = (format "%s/%s.%s" dir host type) | |
1376 when (file-exists-p file3) | |
1377 do (return-from 'loop file3))) | |
1378 ;; facedb search | |
1379 ;; Search order for user@foo.net: | |
1380 ;; [path]net/foo/user | |
1381 ;; [path]net/foo/user/face | |
1382 ;; [path]net/user | |
1383 ;; [path]net/user/face | |
1384 ;; [path]net/foo/unknown | |
1385 ;; [path]net/foo/unknown/face | |
1386 ;; [path]net/unknown | |
1387 ;; [path]net/unknown/face | |
1388 (loop for u in (list user "unknown") | |
1389 do (loop for dir in mh-picon-existing-directory-list | |
1390 do (loop for x on host-list by #'cdr | |
1391 for y = (mh-picon-generate-path x u dir) | |
1392 do (loop for type in mh-picon-image-types | |
1393 for z1 = (format "%s.%s" y type) | |
1394 when (file-exists-p z1) | |
1395 do (return-from 'loop z1) | |
1396 for z2 = (format "%s/face.%s" | |
1397 y type) | |
1398 when (file-exists-p z2) | |
1399 do (return-from 'loop z2))))))) | |
1400 (setf (gethash canonical-address mh-picon-cache) | |
1401 (mh-picon-file-contents match))))) | |
1402 | |
1403 (defun mh-picon-file-contents (file) | |
1404 "Return details about FILE. | |
1405 A list of consisting of a symbol for the type of the file and the | |
1406 file contents as a string is returned. If FILE is nil, then both | |
1407 elements of the list are nil." | |
1408 (if (stringp file) | |
1409 (with-temp-buffer | |
1410 (let ((type (and (string-match ".*\\.\\(...\\)$" file) | |
1411 (intern (match-string 1 file))))) | |
1412 (insert-file-contents-literally file) | |
1413 (values type (buffer-string)))) | |
1414 (values nil nil))) | |
1415 | |
1416 (defun mh-picon-generate-path (host-list user directory) | |
1417 "Generate the image file path. | |
1418 HOST-LIST is the parsed host address of the email address, USER | |
1419 the username and DIRECTORY is the directory relative to which the | |
1420 path is generated." | |
1421 (loop with acc = "" | |
1422 for elem in host-list | |
1423 do (setq acc (format "%s/%s" elem acc)) | |
1424 finally return (format "%s/%s%s" directory acc user))) | |
1425 | |
1426 | |
1427 | |
1428 ;; X-Image-URL display | |
1429 | |
1430 (defvar mh-x-image-cache-directory nil | |
1431 "Directory where X-Image-URL images are cached.") | |
1432 (defvar mh-x-image-scaling-function | |
1433 (cond ((executable-find "convert") | |
1434 'mh-x-image-scale-with-convert) | |
1435 ((and (executable-find "anytopnm") (executable-find "pnmscale") | |
1436 (executable-find "pnmtopng")) | |
1437 'mh-x-image-scale-with-pnm) | |
1438 (t 'ignore)) | |
1439 "Function to use to scale image to proper size.") | |
1440 (defvar mh-wget-executable nil) | |
1441 (defvar mh-wget-choice | |
1442 (or (and (setq mh-wget-executable (executable-find "wget")) 'wget) | |
1443 (and (setq mh-wget-executable (executable-find "fetch")) 'fetch) | |
1444 (and (setq mh-wget-executable (executable-find "curl")) 'curl))) | |
1445 (defvar mh-wget-option | |
1446 (cdr (assoc mh-wget-choice '((curl . "-o") (fetch . "-o") (wget . "-O"))))) | |
1447 (defvar mh-x-image-temp-file nil) | |
1448 (defvar mh-x-image-url nil) | |
1449 (defvar mh-x-image-marker nil) | |
1450 (defvar mh-x-image-url-cache-file nil) | |
1451 | |
1452 ;; Functions to scale image to proper size | |
1453 (defun mh-x-image-scale-with-pnm (input output) | |
1454 "Scale image in INPUT file and write to OUTPUT file using pnm tools." | |
1455 (let ((res (shell-command-to-string | |
1456 (format "anytopnm < %s | pnmscale -xysize 96 48 | pnmtopng > %s" | |
1457 input output)))) | |
1458 (unless (equal res "") | |
1459 (delete-file output)))) | |
1460 | |
1461 (defun mh-x-image-scale-with-convert (input output) | |
1462 "Scale image in INPUT file and write to OUTPUT file using ImageMagick." | |
1463 (call-process "convert" nil nil nil "-geometry" "96x48" input output)) | |
1464 | |
1465 ;; Copy of constant from url-util.el in Emacs 22; needed by Emacs 21. | |
1466 (if (not (boundp 'url-unreserved-chars)) | |
1467 (defconst url-unreserved-chars | |
1468 '( | |
1469 ?a ?b ?c ?d ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n ?o ?p ?q ?r ?s ?t ?u ?v ?w ?x ?y ?z | |
1470 ?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y ?Z | |
1471 ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 | |
1472 ?- ?_ ?. ?! ?~ ?* ?' ?\( ?\)) | |
1473 "A list of characters that are _NOT_ reserved in the URL spec. | |
1474 This is taken from RFC 2396.")) | |
1475 | |
1476 ;; Copy of function from url-util.el in Emacs 22; needed by Emacs 21. | |
1477 (mh-defun-compat url-hexify-string (str) | |
1478 "Escape characters in a string." | |
1479 (mapconcat | |
1480 (lambda (char) | |
1481 ;; Fixme: use a char table instead. | |
1482 (if (not (memq char url-unreserved-chars)) | |
1483 (if (> char 255) | |
1484 (error "Hexifying multibyte character %s" str) | |
1485 (format "%%%02X" char)) | |
1486 (char-to-string char))) | |
1487 str "")) | |
1488 | |
1489 (defun mh-x-image-url-cache-canonicalize (url) | |
1490 "Canonicalize URL. | |
1491 Replace the ?/ character with a ?! character and append .png. | |
1492 Also replaces special characters with `url-hexify-string' since | |
1493 not all characters, such as :, are legal within Windows | |
1494 filenames. See URL `http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp'." | |
1495 (format "%s/%s.png" mh-x-image-cache-directory | |
1496 (url-hexify-string | |
1497 (with-temp-buffer | |
1498 (insert url) | |
1499 (mh-replace-string "/" "!") | |
1500 (buffer-string))))) | |
1501 | |
1502 (defun mh-x-image-set-download-state (file data) | |
1503 "Setup a symbolic link from FILE to DATA." | |
1504 (if data | |
1505 (make-symbolic-link (symbol-name data) file t) | |
1506 (delete-file file))) | |
1507 | |
1508 (defun mh-x-image-get-download-state (file) | |
1509 "Check the state of FILE by following any symbolic links." | |
1510 (unless (file-exists-p mh-x-image-cache-directory) | |
1511 (call-process "mkdir" nil nil nil mh-x-image-cache-directory)) | |
1512 (cond ((file-symlink-p file) | |
1513 (intern (file-name-nondirectory (file-chase-links file)))) | |
1514 ((not (file-exists-p file)) nil) | |
1515 (t 'ok))) | |
1516 | |
1517 (defun mh-x-image-url-fetch-image (url cache-file marker sentinel) | |
1518 "Fetch and display the image specified by URL. | |
1519 After the image is fetched, it is stored in CACHE-FILE. It will | |
1520 be displayed in a buffer and position specified by MARKER. The | |
1521 actual display is carried out by the SENTINEL function." | |
1522 (if mh-wget-executable | |
1523 (let ((buffer (get-buffer-create (generate-new-buffer-name | |
1524 mh-temp-fetch-buffer))) | |
1525 (filename (or (mh-funcall-if-exists make-temp-file "mhe-fetch") | |
1526 (expand-file-name (make-temp-name "~/mhe-fetch"))))) | |
1527 (save-excursion | |
1528 (set-buffer buffer) | |
1529 (set (make-local-variable 'mh-x-image-url-cache-file) cache-file) | |
1530 (set (make-local-variable 'mh-x-image-marker) marker) | |
1531 (set (make-local-variable 'mh-x-image-temp-file) filename)) | |
1532 (set-process-sentinel | |
1533 (start-process "*mh-x-image-url-fetch*" buffer | |
1534 mh-wget-executable mh-wget-option filename url) | |
1535 sentinel)) | |
1536 ;; Temporary failure | |
1537 (mh-x-image-set-download-state cache-file 'try-again))) | |
1538 | |
1539 (defun mh-x-image-display (image marker) | |
1540 "Display IMAGE at MARKER." | |
1541 (save-excursion | |
1542 (set-buffer (marker-buffer marker)) | |
1543 (let ((buffer-read-only nil) | |
1544 (default-enable-multibyte-characters nil) | |
1545 (buffer-modified-flag (buffer-modified-p))) | |
1546 (unwind-protect | |
1547 (when (and (file-readable-p image) (not (file-symlink-p image)) | |
1548 (eq marker mh-x-image-marker)) | |
1549 (goto-char marker) | |
1550 (mh-do-in-gnu-emacs | |
1551 (mh-funcall-if-exists insert-image (create-image image 'png))) | |
1552 (mh-do-in-xemacs | |
1553 (when (featurep 'png) | |
1554 (set-extent-begin-glyph | |
1555 (make-extent (point) (point)) | |
1556 (make-glyph | |
1557 (vector 'png ':data (with-temp-buffer | |
1558 (insert-file-contents-literally image) | |
1559 (buffer-string)))))))) | |
1560 (set-buffer-modified-p buffer-modified-flag))))) | |
1561 | |
1562 (defun mh-x-image-scale-and-display (process change) | |
1563 "When the wget PROCESS terminates scale and display image. | |
1564 The argument CHANGE is ignored." | |
1565 (when (eq (process-status process) 'exit) | |
1566 (let (marker temp-file cache-filename wget-buffer) | |
1567 (save-excursion | |
1568 (set-buffer (setq wget-buffer (process-buffer process))) | |
1569 (setq marker mh-x-image-marker | |
1570 cache-filename mh-x-image-url-cache-file | |
1571 temp-file mh-x-image-temp-file)) | |
1572 (cond | |
1573 ;; Check if we have `convert' | |
1574 ((eq mh-x-image-scaling-function 'ignore) | |
1575 (message "The \"convert\" program is needed to display X-Image-URL") | |
1576 (mh-x-image-set-download-state cache-filename 'try-again)) | |
1577 ;; Scale fetched image | |
1578 ((and (funcall mh-x-image-scaling-function temp-file cache-filename) | |
1579 nil)) | |
1580 ;; Attempt to display image if we have it | |
1581 ((file-exists-p cache-filename) | |
1582 (mh-x-image-display cache-filename marker)) | |
1583 ;; We didn't find the image. Should we try to display it the next time? | |
1584 (t (mh-x-image-set-download-state cache-filename 'try-again))) | |
1585 (ignore-errors | |
1586 (set-marker marker nil) | |
1587 (delete-process process) | |
1588 (kill-buffer wget-buffer) | |
1589 (delete-file temp-file))))) | |
1590 | |
1591 (defun mh-x-image-url-sane-p (url) | |
1592 "Check if URL is something sensible." | |
1593 (let ((len (length url))) | |
1594 (cond ((< len 5) nil) | |
1595 ((not (equal (substring url 0 5) "http:")) nil) | |
1596 ((> len 100) nil) | |
1597 (t t)))) | |
1598 | |
1599 (defun mh-x-image-url-display (url) | |
1600 "Display image from location URL. | |
1601 If the URL isn't present in the cache then it is fetched with wget." | |
1602 (let* ((cache-filename (mh-x-image-url-cache-canonicalize url)) | |
1603 (state (mh-x-image-get-download-state cache-filename)) | |
1604 (marker (set-marker (make-marker) (point)))) | |
1605 (set (make-local-variable 'mh-x-image-marker) marker) | |
1606 (cond ((not (mh-x-image-url-sane-p url))) | |
1607 ((eq state 'ok) | |
1608 (mh-x-image-display cache-filename marker)) | |
1609 ((or (not mh-wget-executable) | |
1610 (eq mh-x-image-scaling-function 'ignore))) | |
1611 ((eq state 'never)) | |
1612 ((not mh-fetch-x-image-url) | |
1613 (set-marker marker nil)) | |
1614 ((eq state 'try-again) | |
1615 (mh-x-image-set-download-state cache-filename nil) | |
1616 (mh-x-image-url-fetch-image url cache-filename marker | |
1617 'mh-x-image-scale-and-display)) | |
1618 ((and (eq mh-fetch-x-image-url 'ask) | |
1619 (not (y-or-n-p (format "Fetch %s? " url)))) | |
1620 (mh-x-image-set-download-state cache-filename 'never)) | |
1621 ((eq state nil) | |
1622 (mh-x-image-url-fetch-image url cache-filename marker | |
1623 'mh-x-image-scale-and-display))))) | |
1624 | |
1625 | |
1626 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1627 (defun mh-maybe-show (&optional msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1628 "Display message at cursor, but only if in show mode. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1629 If optional arg MSG is non-nil, display that message instead." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1630 (if mh-showing-mode (mh-show msg))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1631 |
88155 | 1632 (defun mh-show (&optional message redisplay-flag) |
1633 "Display message\\<mh-folder-mode-map>. | |
1634 | |
1635 If the message under the cursor is already displayed, this command | |
1636 scrolls to the beginning of the message. MH-E normally hides a lot of | |
1637 the superfluous header fields that mailers add to a message, but if | |
1638 you wish to see all of them, use the command \\[mh-header-display]. | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1639 |
88155 | 1640 Two hooks can be used to control how messages are displayed. The |
1641 first hook, `mh-show-mode-hook', is called early on in the | |
1642 process of the message display. It is usually used to perform | |
1643 some action on the message's content. The second hook, | |
1644 `mh-show-hook', is the last thing called after messages are | |
1645 displayed. It's used to affect the behavior of MH-E in general or | |
1646 when `mh-show-mode-hook' is too early. | |
1647 | |
1648 From a program, optional argument MESSAGE can be used to display an | |
1649 alternative message. The optional argument REDISPLAY-FLAG forces the | |
1650 redisplay of the message even if the show buffer was already | |
1651 displaying the correct message. | |
1652 | |
1653 See the \"mh-show\" customization group for a litany of options that | |
1654 control what displayed messages look like." | |
1655 (interactive (list nil t)) | |
1656 (when (or redisplay-flag | |
1657 (and mh-showing-with-headers | |
1658 (or mh-mhl-format-file mh-clean-message-header-flag))) | |
1659 (mh-invalidate-show-buffer)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1660 (mh-show-msg message)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1661 |
88155 | 1662 (defun mh-show-mouse (event) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1663 "Move point to mouse EVENT and show message." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1664 (interactive "e") |
88155 | 1665 (mouse-set-point event) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1666 (mh-show)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1667 |
88155 | 1668 (defun mh-summary-height () |
1669 "Return ideal value for the variable `mh-summary-height'. | |
1670 The current frame height is taken into consideration." | |
1671 (or (and (fboundp 'frame-height) | |
1672 (> (frame-height) 24) | |
1673 (min 10 (/ (frame-height) 6))) | |
1674 4)) | |
1675 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1676 (defun mh-show-msg (msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1677 "Show MSG. |
88155 | 1678 |
1679 The hook `mh-show-hook' is called after the message has been | |
1680 displayed." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1681 (if (not msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1682 (setq msg (mh-get-msg-num t))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1683 (mh-showing-mode t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1684 (setq mh-page-to-next-msg-flag nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1685 (let ((folder mh-current-folder) |
88155 | 1686 (folders (list mh-current-folder)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1687 (clean-message-header mh-clean-message-header-flag) |
88155 | 1688 (show-window (get-buffer-window mh-show-buffer)) |
1689 (display-mime-buttons-flag mh-display-buttons-for-inline-parts-flag)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1690 (if (not (eq (next-window (minibuffer-window)) (selected-window))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1691 (delete-other-windows)) ; force ourself to the top window |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1692 (mh-in-show-buffer (mh-show-buffer) |
88155 | 1693 (setq mh-display-buttons-for-inline-parts-flag display-mime-buttons-flag) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1694 (if (and show-window |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1695 (equal (mh-msg-filename msg folder) buffer-file-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1696 (progn ;just back up to start |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1697 (goto-char (point-min)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1698 (if (not clean-message-header) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1699 (mh-start-of-uncleaned-message))) |
88155 | 1700 (mh-display-msg msg folder))) |
1701 (if (not (= (1+ (window-height)) (frame-height))) ;not horizontally split | |
1702 (shrink-window (- (window-height) (or mh-summary-height | |
1703 (mh-summary-height))))) | |
1704 (mh-recenter nil) | |
1705 ;; The following line is a nop which forces update of the scan line so | |
1706 ;; that font-lock will update it (if needed)... | |
1707 (mh-notate nil nil mh-cmd-note) | |
1708 (if (not (memq msg mh-seen-list)) | |
1709 (setq mh-seen-list (cons msg mh-seen-list))) | |
1710 (when mh-update-sequences-after-mh-show-flag | |
1711 (mh-update-sequences) | |
1712 (when mh-index-data | |
1713 (setq folders | |
1714 (append (mh-index-delete-from-sequence mh-unseen-seq (list msg)) | |
1715 folders))) | |
1716 (when (mh-speed-flists-active-p) | |
1717 (apply #'mh-speed-flists t folders))) | |
1718 (run-hooks 'mh-show-hook))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1719 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1720 (defun mh-modify (&optional message) |
88155 | 1721 "Edit message. |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1722 |
88155 | 1723 There are times when you need to edit a message. For example, you |
1724 may need to fix a broken Content-Type header field. You can do | |
1725 this with this command. It displays the raw message in an | |
1726 editable buffer. When you are done editing, save and kill the | |
1727 buffer as you would any other. | |
1728 | |
1729 From a program, edit MESSAGE; nil means edit current message." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1730 (interactive) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1731 (let* ((message (or message (mh-get-msg-num t))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1732 (msg-filename (mh-msg-filename message)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1733 edit-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1734 (when (not (file-exists-p msg-filename)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1735 (error "Message %d does not exist" message)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1736 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1737 ;; Invalidate the show buffer if it is showing the same message that is |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1738 ;; to be edited. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1739 (when (and (buffer-live-p (get-buffer mh-show-buffer)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1740 (equal (save-excursion (set-buffer mh-show-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1741 buffer-file-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1742 msg-filename)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1743 (mh-invalidate-show-buffer)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1744 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1745 ;; Edit message |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1746 (find-file msg-filename) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1747 (setq edit-buffer (current-buffer)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1748 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1749 ;; Set buffer properties |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1750 (mh-letter-mode) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1751 (use-local-map text-mode-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1752 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1753 ;; Just show the edit buffer... |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1754 (delete-other-windows) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1755 (switch-to-buffer edit-buffer))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1756 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1757 (defun mh-show-unquote-From () |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1758 "Decode >From at beginning of lines for `mh-show-mode'." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1759 (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1760 (let ((modified (buffer-modified-p)) |
88155 | 1761 (case-fold-search nil) |
1762 (buffer-read-only nil)) | |
1763 (goto-char (mh-mail-header-end)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1764 (while (re-search-forward "^>From" nil t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1765 (replace-match "From")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1766 (set-buffer-modified-p modified)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1767 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1768 (defun mh-msg-folder (folder-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1769 "Return the name of the buffer for FOLDER-NAME." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1770 folder-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1771 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1772 (defun mh-display-msg (msg-num folder-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1773 "Display MSG-NUM of FOLDER-NAME. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1774 Sets the current buffer to the show buffer." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1775 (let ((folder (mh-msg-folder folder-name))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1776 (set-buffer folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1777 ;; When Gnus uses external displayers it has to keep handles longer. So |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1778 ;; we will delete these handles when mh-quit is called on the folder. It |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1779 ;; would be nicer if there are weak pointers in emacs lisp, then we could |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1780 ;; get the garbage collector to do this for us. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1781 (unless (mh-buffer-data) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1782 (setf (mh-buffer-data) (mh-make-buffer-data))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1783 ;; Bind variables in folder buffer in case they are local |
88155 | 1784 (let ((formfile mh-mhl-format-file) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1785 (clean-message-header mh-clean-message-header-flag) |
88155 | 1786 (invisible-headers mh-invisible-header-fields-compiled) |
1787 (visible-headers nil) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1788 (msg-filename (mh-msg-filename msg-num folder-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1789 (show-buffer mh-show-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1790 (mm-inline-media-tests mh-mm-inline-media-tests)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1791 (if (not (file-exists-p msg-filename)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1792 (error "Message %d does not exist" msg-num)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1793 (if (and (> mh-show-maximum-size 0) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1794 (> (elt (file-attributes msg-filename) 7) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1795 mh-show-maximum-size) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1796 (not (y-or-n-p |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1797 (format |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1798 "Message %d (%d bytes) exceeds %d bytes. Display it? " |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1799 msg-num (elt (file-attributes msg-filename) 7) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1800 mh-show-maximum-size)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1801 (error "Message %d not displayed" msg-num)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1802 (set-buffer show-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1803 (cond ((not (equal msg-filename buffer-file-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1804 (mh-unvisit-file) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1805 (setq buffer-read-only nil) |
88155 | 1806 ;; Cleanup old mime handles |
1807 (mh-mime-cleanup) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1808 (erase-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1809 ;; Changing contents, so this hook needs to be reinitialized. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1810 ;; pgp.el uses this. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1811 (if (boundp 'write-contents-hooks) ;Emacs 19 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1812 (kill-local-variable 'write-contents-hooks)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1813 (if formfile |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1814 (mh-exec-lib-cmd-output "mhl" "-nobell" "-noclear" |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1815 (if (stringp formfile) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1816 (list "-form" formfile)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1817 msg-filename) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
1818 (insert-file-contents-literally msg-filename)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1819 ;; Use mm to display buffer |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1820 (when (and mh-decode-mime-flag (not formfile)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1821 (mh-add-missing-mime-version-header) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1822 (setf (mh-buffer-data) (mh-make-buffer-data)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1823 (mh-mime-display)) |
88155 | 1824 (mh-show-mode) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1825 ;; Header cleanup |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1826 (goto-char (point-min)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1827 (cond (clean-message-header |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1828 (mh-clean-msg-header (point-min) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1829 invisible-headers |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1830 visible-headers) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1831 (goto-char (point-min))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1832 (t |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1833 (mh-start-of-uncleaned-message))) |
88155 | 1834 (mh-decode-message-header) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1835 ;; the parts of visiting we want to do (no locking) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1836 (or (eq buffer-undo-list t) ;don't save undo info for prev msgs |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1837 (setq buffer-undo-list nil)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1838 (set-buffer-auto-saved) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1839 ;; the parts of set-visited-file-name we want to do (no locking) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1840 (setq buffer-file-name msg-filename) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1841 (setq buffer-backed-up nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1842 (auto-save-mode 1) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1843 (set-mark nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1844 (unwind-protect |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1845 (when (and mh-decode-mime-flag (not formfile)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1846 (setq buffer-read-only nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1847 (mh-display-smileys) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1848 (mh-display-emphasis)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1849 (setq buffer-read-only t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1850 (set-buffer-modified-p nil) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1851 (setq mh-show-folder-buffer folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1852 (setq mode-line-buffer-identification |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1853 (list (format mh-show-buffer-mode-line-buffer-id |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1854 folder-name msg-num))) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
1855 (mh-logo-display) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1856 (set-buffer folder) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1857 (setq mh-showing-with-headers nil)))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1858 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1859 (defun mh-clean-msg-header (start invisible-headers visible-headers) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1860 "Flush extraneous lines in message header. |
88155 | 1861 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1862 Header is cleaned from START to the end of the message header. |
88155 | 1863 INVISIBLE-HEADERS contains a regular expression specifying lines |
1864 to delete from the header. VISIBLE-HEADERS contains a regular | |
1865 expression specifying the lines to display. INVISIBLE-HEADERS is | |
1866 ignored if VISIBLE-HEADERS is non-nil." | |
1867 ;; XXX Note that MH-E no longer supports the `mh-visible-headers' | |
1868 ;; variable, so this function could be trimmed of this feature too." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1869 (let ((case-fold-search t) |
88155 | 1870 (buffer-read-only nil)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1871 (save-restriction |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1872 (goto-char start) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1873 (if (search-forward "\n\n" nil 'move) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1874 (backward-char 1)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1875 (narrow-to-region start (point)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1876 (goto-char (point-min)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1877 (if visible-headers |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1878 (while (< (point) (point-max)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1879 (cond ((looking-at visible-headers) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1880 (forward-line 1) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1881 (while (looking-at "[ \t]") (forward-line 1))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1882 (t |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1883 (mh-delete-line 1) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1884 (while (looking-at "[ \t]") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1885 (mh-delete-line 1))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1886 (while (re-search-forward invisible-headers nil t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1887 (beginning-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1888 (mh-delete-line 1) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1889 (while (looking-at "[ \t]") |
88155 | 1890 (mh-delete-line 1))))) |
1891 (let ((mh-compose-skipped-header-fields ())) | |
1892 (mh-letter-hide-all-skipped-fields)) | |
1893 (unlock-buffer))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1894 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1895 (defun mh-delete-line (lines) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1896 "Delete the next LINES lines." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1897 (delete-region (point) (progn (forward-line lines) (point)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1898 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1899 (defun mh-notate (msg notation offset) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1900 "Mark MSG with the character NOTATION at position OFFSET. |
88155 | 1901 Null MSG means the message at cursor. |
1902 If NOTATION is nil then no change in the buffer occurs." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1903 (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1904 (if (or (null msg) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1905 (mh-goto-msg msg t t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1906 (with-mh-folder-updating (t) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1907 (beginning-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1908 (forward-char offset) |
88155 | 1909 (let* ((change-stack-flag |
1910 (and (equal offset | |
1911 (+ mh-cmd-note mh-scan-field-destination-offset)) | |
1912 (not (eq notation mh-note-seq)))) | |
1913 (msg (and change-stack-flag (or msg (mh-get-msg-num nil)))) | |
1914 (stack (and msg (gethash msg mh-sequence-notation-history))) | |
1915 (notation (or notation (char-after)))) | |
1916 (if stack | |
1917 ;; The presence of the stack tells us that we don't need to | |
1918 ;; notate the message, since the notation would be replaced | |
1919 ;; by a sequence notation. So we will just put the notation | |
1920 ;; at the bottom of the stack. If the sequence is deleted, | |
1921 ;; the correct notation will be shown. | |
1922 (setf (gethash msg mh-sequence-notation-history) | |
1923 (reverse (cons notation (cdr (reverse stack))))) | |
1924 ;; Since we don't have any sequence notations in the way, just | |
1925 ;; notate the scan line. | |
1926 (delete-char 1) | |
1927 (insert notation)) | |
1928 (when change-stack-flag | |
1929 (mh-thread-update-scan-line-map msg notation offset))))))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1930 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1931 (defun mh-goto-msg (number &optional no-error-if-no-message dont-show) |
88155 | 1932 "Go to a message\\<mh-folder-mode-map>. |
1933 | |
1934 You can enter the message NUMBER either before or after typing | |
1935 \\[mh-goto-msg]. In the latter case, Emacs prompts you. | |
1936 | |
1937 In a program, optional non-nil second argument NO-ERROR-IF-NO-MESSAGE | |
1938 means return nil instead of signaling an error if message does not | |
1939 exist\; in this case, the cursor is positioned near where the message | |
1940 would have been. Non-nil third argument DONT-SHOW means not to show | |
1941 the message." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1942 (interactive "NGo to message: ") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1943 (setq number (prefix-numeric-value number)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1944 (let ((point (point)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1945 (return-value t)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1946 (goto-char (point-min)) |
88155 | 1947 (unless (re-search-forward (format mh-scan-msg-search-regexp number) nil t) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1948 (goto-char point) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1949 (unless no-error-if-no-message |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1950 (error "No message %d" number)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1951 (setq return-value nil)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1952 (beginning-of-line) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1953 (or dont-show (not return-value) (mh-maybe-show number)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1954 return-value)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1955 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1956 (defun mh-set-folder-modified-p (flag) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1957 "Mark current folder as modified or unmodified according to FLAG." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1958 (set-buffer-modified-p flag)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1959 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1960 (defun mh-find-seq (name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1961 "Return sequence NAME." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1962 (assoc name mh-seq-list)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1963 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1964 (defun mh-seq-to-msgs (seq) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1965 "Return a list of the messages in SEQ." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1966 (mh-seq-msgs (mh-find-seq seq))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1967 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1968 (defun mh-update-scan-format (fmt width) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1969 "Return a scan format with the (msg) width in the FMT replaced with WIDTH. |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1970 |
88155 | 1971 The message number width portion of the format is discovered |
1972 using `mh-scan-msg-format-regexp'. Its replacement is controlled | |
1973 with `mh-scan-msg-format-string'." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1974 (or (and |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1975 (string-match mh-scan-msg-format-regexp fmt) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1976 (let ((begin (match-beginning 1)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1977 (end (match-end 1))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1978 (concat (substring fmt 0 begin) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1979 (format mh-scan-msg-format-string width) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1980 (substring fmt end)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1981 fmt)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49578
diff
changeset
|
1982 |
88155 | 1983 (defun mh-msg-num-width (folder) |
1984 "Return the width of the largest message number in this FOLDER." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1985 (or mh-progs (mh-find-path)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1986 (let ((tmp-buffer (get-buffer-create mh-temp-buffer)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1987 (width 0)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1988 (save-excursion |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1989 (set-buffer tmp-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1990 (erase-buffer) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1991 (apply 'call-process |
88155 | 1992 (expand-file-name mh-scan-prog mh-progs) nil '(t nil) nil |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1993 (list folder "last" "-format" "%(msg)")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1994 (goto-char (point-min)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1995 (if (re-search-forward mh-scan-msg-number-regexp nil 0 1) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1996 (setq width (length (buffer-substring |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1997 (match-beginning 1) (match-end 1)))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1998 width)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1999 |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2000 (defun mh-add-msgs-to-seq (msgs seq &optional internal-flag dont-annotate-flag) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2001 "Add MSGS to SEQ. |
88155 | 2002 |
2003 Remove duplicates and keep sequence sorted. If optional | |
2004 INTERNAL-FLAG is non-nil, do not mark the message in the scan | |
2005 listing or inform MH of the addition. | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2006 |
88155 | 2007 If DONT-ANNOTATE-FLAG is non-nil then the annotations in the |
2008 folder buffer are not updated." | |
2009 (let ((entry (mh-find-seq seq)) | |
2010 (internal-seq-flag (mh-internal-seq seq))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2011 (if (and msgs (atom msgs)) (setq msgs (list msgs))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2012 (if (null entry) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2013 (setq mh-seq-list |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2014 (cons (mh-make-seq seq (mh-canonicalize-sequence msgs)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2015 mh-seq-list)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2016 (if msgs (setcdr entry (mh-canonicalize-sequence |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2017 (append msgs (mh-seq-msgs entry)))))) |
88155 | 2018 (unless internal-flag |
2019 (mh-add-to-sequence seq msgs) | |
2020 (when (not dont-annotate-flag) | |
2021 (mh-iterate-on-range msg msgs | |
2022 (unless (memq msg (cdr entry)) | |
2023 (mh-add-sequence-notation msg internal-seq-flag))))))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2024 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2025 (defun mh-canonicalize-sequence (msgs) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2026 "Sort MSGS in decreasing order and remove duplicates." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2027 (let* ((sorted-msgs (sort (copy-sequence msgs) '>)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2028 (head sorted-msgs)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2029 (while (cdr head) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2030 (if (= (car head) (cadr head)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2031 (setcdr head (cddr head)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2032 (setq head (cdr head)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2033 sorted-msgs)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2034 |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2035 (defvar mh-sub-folders-cache (make-hash-table :test #'equal)) |
88155 | 2036 (defvar mh-current-folder-name nil) |
2037 (defvar mh-flists-partial-line "") | |
2038 (defvar mh-flists-process nil) | |
2039 | |
2040 ;; Initialize mh-sub-folders-cache... | |
2041 (defun mh-collect-folder-names () | |
2042 "Collect folder names by running \"folders\"." | |
2043 (unless mh-flists-process | |
2044 (setq mh-flists-process | |
2045 (mh-exec-cmd-daemon "folders" 'mh-collect-folder-names-filter | |
2046 "-recurse" "-fast")))) | |
2047 | |
2048 (defun mh-collect-folder-names-filter (process output) | |
2049 "Read folder names. | |
2050 PROCESS is the flists process that was run to collect folder | |
2051 names and the function is called when OUTPUT is available." | |
2052 (let ((position 0) | |
2053 (prevailing-match-data (match-data)) | |
2054 line-end folder) | |
2055 (unwind-protect | |
2056 (while (setq line-end (string-match "\n" output position)) | |
2057 (setq folder (format "+%s%s" | |
2058 mh-flists-partial-line | |
2059 (substring output position line-end))) | |
2060 (setq mh-flists-partial-line "") | |
2061 (unless (equal (aref folder 1) ?.) | |
2062 (mh-populate-sub-folders-cache folder)) | |
2063 (setq position (1+ line-end))) | |
2064 (set-match-data prevailing-match-data)) | |
2065 (setq mh-flists-partial-line (substring output position)))) | |
2066 | |
2067 (defun mh-populate-sub-folders-cache (folder) | |
2068 "Tell `mh-sub-folders-cache' about FOLDER." | |
2069 (let* ((last-slash (mh-search-from-end ?/ folder)) | |
2070 (child1 (substring folder (1+ (or last-slash 0)))) | |
2071 (parent (and last-slash (substring folder 0 last-slash))) | |
2072 (parent-slash (and parent (mh-search-from-end ?/ parent))) | |
2073 (child2 (and parent (substring parent (1+ (or parent-slash 0))))) | |
2074 (grand-parent (and parent-slash (substring parent 0 parent-slash))) | |
2075 (cache-entry (gethash parent mh-sub-folders-cache))) | |
2076 (unless (loop for x in cache-entry when (equal (car x) child1) return t | |
2077 finally return nil) | |
2078 (push (list child1) cache-entry) | |
2079 (setf (gethash parent mh-sub-folders-cache) | |
2080 (sort cache-entry (lambda (x y) (string< (car x) (car y))))) | |
2081 (when parent | |
2082 (loop for x in (gethash grand-parent mh-sub-folders-cache) | |
2083 when (equal (car x) child2) | |
2084 do (progn (setf (cdr x) t) (return))))))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2085 |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2086 (defun mh-normalize-folder-name (folder &optional empty-string-okay |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2087 dont-remove-trailing-slash) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2088 "Normalizes FOLDER name. |
88155 | 2089 |
2090 Makes sure that two '/' characters never occur next to each | |
2091 other. Also all occurrences of \"..\" and \".\" are suitably | |
2092 processed. So \"+inbox/../news\" will be normalized to \"+news\". | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2093 |
88155 | 2094 If optional argument EMPTY-STRING-OKAY is nil then a '+' is added |
2095 at the front if FOLDER lacks one. If non-nil and FOLDER is the | |
2096 empty string then nothing is added. | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2097 |
88155 | 2098 If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a |
2099 trailing '/' if present is retained (if present), otherwise it is | |
2100 removed." | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2101 (when (stringp folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2102 ;; Replace two or more consecutive '/' characters with a single '/' |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2103 (while (string-match "//" folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2104 (setq folder (replace-match "/" nil t folder))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2105 (let* ((length (length folder)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2106 (trailing-slash-present (and (> length 0) |
88155 | 2107 (equal (aref folder (1- length)) ?/))) |
2108 (leading-slash-present (and (> length 0) | |
2109 (equal (aref folder 0) ?/)))) | |
2110 (when (and (> length 0) (equal (aref folder 0) ?@) | |
2111 (stringp mh-current-folder-name)) | |
2112 (setq folder (format "%s/%s/" mh-current-folder-name | |
2113 (substring folder 1)))) | |
2114 ;; XXX: Purge empty strings from the list that split-string returns. In | |
2115 ;; XEmacs, (split-string "+foo/" "/") returns ("+foo" "") while in GNU | |
2116 ;; Emacs it returns ("+foo"). In the code it is assumed that the | |
2117 ;; components list has no empty strings. | |
2118 (let ((components (delete "" (split-string folder "/"))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2119 (result ())) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2120 ;; Remove .. and . from the pathname. |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2121 (dolist (component components) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2122 (cond ((and (equal component "..") result) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2123 (pop result)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2124 ((equal component "..")) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2125 ((equal component ".")) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2126 (t (push component result)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2127 (setq folder "") |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2128 (dolist (component result) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2129 (setq folder (concat component "/" folder))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2130 ;; Remove trailing '/' if needed. |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2131 (unless (and trailing-slash-present dont-remove-trailing-slash) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2132 (when (not (equal folder "")) |
88155 | 2133 (setq folder (substring folder 0 (1- (length folder)))))) |
2134 (when leading-slash-present | |
2135 (setq folder (concat "/" folder))))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2136 (cond ((and empty-string-okay (equal folder ""))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2137 ((equal folder "") (setq folder "+")) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2138 ((not (equal (aref folder 0) ?+)) (setq folder (concat "+" folder))))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2139 folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2140 |
88155 | 2141 (defmacro mh-children-p (folder) |
2142 "Return t if FOLDER from sub-folders cache has children. | |
2143 The car of folder is the name, and the cdr is either t or some | |
2144 sort of count that I do not understand. It's too small to be the | |
2145 number of messages in the sub-folders and too large to be the | |
2146 number of sub-folders. XXX" | |
2147 `(if (cdr ,folder) | |
2148 t | |
2149 nil)) | |
2150 | |
2151 (defun mh-folder-list (folder) | |
2152 "Return FOLDER and its descendents. | |
2153 Returns a list of strings. For example, | |
2154 | |
2155 '(\"inbox\" \"lists\" \"lists/mh-e\"). | |
2156 | |
2157 If folder is nil, then all folders are considered. Respects the | |
2158 value of `mh-recursive-folders-flag'. If this flag is nil, and | |
2159 the sub-folders have not been explicitly viewed, then they will | |
2160 not be returned." | |
2161 (let ((folder-list)) | |
2162 ;; Normalize folder. Strip leading +. Add trailing slash. If no | |
2163 ;; folder is specified, ensure it is nil to ensure we get the | |
2164 ;; top-level folders; otherwise mh-sub-folders returns all the | |
2165 ;; files in / if given an empty string or +. | |
2166 (when folder | |
2167 (setq folder (replace-regexp-in-string "^\+" "" folder)) | |
2168 (setq folder (replace-regexp-in-string "/*$" "/" folder)) | |
2169 (if (equal folder "") | |
2170 (setq folder nil))) | |
2171 (loop for f in (mh-sub-folders folder) do | |
2172 (setq folder-list (append folder-list (list (concat folder (car f))))) | |
2173 (if (mh-children-p f) | |
2174 (setq folder-list | |
2175 (append folder-list | |
2176 (mh-folder-list (concat folder (car f))))))) | |
2177 folder-list)) | |
2178 | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2179 (defun mh-sub-folders (folder &optional add-trailing-slash-flag) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2180 "Find the subfolders of FOLDER. |
88155 | 2181 The function avoids running folders unnecessarily by caching the |
2182 results of the actual folders call. | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2183 |
88155 | 2184 If optional argument ADD-TRAILING-SLASH-FLAG is non-nil then a |
2185 slash is added to each of the sub-folder names that may have | |
2186 nested folders within them." | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2187 (let* ((folder (mh-normalize-folder-name folder)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2188 (match (gethash folder mh-sub-folders-cache 'no-result)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2189 (sub-folders (cond ((eq match 'no-result) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2190 (setf (gethash folder mh-sub-folders-cache) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2191 (mh-sub-folders-actual folder))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2192 (t match)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2193 (if add-trailing-slash-flag |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2194 (mapcar #'(lambda (x) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2195 (if (cdr x) (cons (concat (car x) "/") (cdr x)) x)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2196 sub-folders) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2197 sub-folders))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2198 |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2199 (defun mh-sub-folders-actual (folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2200 "Execute the command folders to return the sub-folders of FOLDER. |
88155 | 2201 Filters out the folder names that start with \".\" so that |
2202 directories that aren't usually mail folders are hidden." | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2203 (let ((arg-list `(,(expand-file-name "folders" mh-progs) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2204 nil (t nil) nil "-noheader" "-norecurse" "-nototal" |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2205 ,@(if (stringp folder) (list folder) ()))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2206 (results ()) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2207 (current-folder (concat |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2208 (with-temp-buffer |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2209 (call-process (expand-file-name "folder" mh-progs) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2210 nil '(t nil) nil "-fast") |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2211 (buffer-substring (point-min) (1- (point-max)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2212 "+"))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2213 (with-temp-buffer |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2214 (apply #'call-process arg-list) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2215 (goto-char (point-min)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2216 (while (not (and (eolp) (bolp))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2217 (goto-char (line-end-position)) |
88155 | 2218 (let ((start-pos (line-beginning-position)) |
2219 (has-pos (search-backward " has " (line-beginning-position) t))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2220 (when (integerp has-pos) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2221 (while (equal (char-after has-pos) ? ) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2222 (decf has-pos)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2223 (incf has-pos) |
88155 | 2224 (while (equal (char-after start-pos) ? ) |
2225 (incf start-pos)) | |
2226 (let* ((name (buffer-substring start-pos has-pos)) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2227 (first-char (aref name 0)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2228 (last-char (aref name (1- (length name))))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2229 (unless (member first-char '(?. ?# ?,)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2230 (when (and (equal last-char ?+) (equal name current-folder)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2231 (setq name (substring name 0 (1- (length name))))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2232 (push |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2233 (cons name |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2234 (search-forward "(others)" (line-end-position) t)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2235 results)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2236 (forward-line 1)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2237 (setq results (nreverse results)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2238 (when (stringp folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2239 (setq results (cdr results)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2240 (let ((folder-name-len (length (format "%s/" (substring folder 1))))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2241 (setq results (mapcar (lambda (f) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2242 (cons (substring (car f) folder-name-len) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2243 (cdr f))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2244 results)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2245 results)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2246 |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2247 (defun mh-remove-from-sub-folders-cache (folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2248 "Remove FOLDER and its parent from `mh-sub-folders-cache'. |
88155 | 2249 FOLDER should be unconditionally removed from the cache. Also the |
2250 last ancestor of FOLDER present in the cache must be removed as | |
2251 well. | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2252 |
88155 | 2253 To see why this is needed assume we have a folder +foo which has |
2254 a single sub-folder qux. Now we create the folder +foo/bar/baz. | |
2255 Here we will need to invalidate the cached sub-folders of +foo, | |
2256 otherwise completion on +foo won't tell us about the option | |
2257 +foo/bar!" | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2258 (remhash folder mh-sub-folders-cache) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2259 (block ancestor-found |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2260 (let ((parent folder) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2261 (one-ancestor-found nil) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2262 last-slash) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2263 (while (setq last-slash (mh-search-from-end ?/ parent)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2264 (setq parent (substring parent 0 last-slash)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2265 (unless (eq (gethash parent mh-sub-folders-cache 'none) 'none) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2266 (remhash parent mh-sub-folders-cache) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2267 (if one-ancestor-found |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2268 (return-from ancestor-found) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2269 (setq one-ancestor-found t)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2270 (remhash nil mh-sub-folders-cache)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2271 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2272 (defvar mh-folder-hist nil) |
88155 | 2273 |
2274 ;; Shush compiler. | |
2275 (eval-when-compile | |
2276 (defvar mh-speed-folder-map) | |
2277 (defvar mh-speed-flists-cache)) | |
2278 | |
2279 (defvar mh-allow-root-folder-flag nil | |
2280 "Non-nil means \"+\" is an acceptable folder name. | |
2281 This variable is used to communicate with | |
2282 `mh-folder-completion-function'. That function can have exactly | |
2283 three arguments so we bind this variable to t or nil. | |
2284 | |
2285 This variable should never be set.") | |
2286 | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2287 (defvar mh-folder-completion-map (copy-keymap minibuffer-local-completion-map)) |
88155 | 2288 (define-key mh-folder-completion-map " " 'minibuffer-complete) ;Why??? |
2289 | |
2290 (defvar mh-speed-flists-inhibit-flag nil) | |
2291 | |
2292 (defun mh-speed-flists-active-p () | |
2293 "Check if speedbar is running with message counts enabled." | |
2294 (and (featurep 'mh-speed) | |
2295 (not mh-speed-flists-inhibit-flag) | |
2296 (> (hash-table-count mh-speed-flists-cache) 0))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2297 |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2298 (defun mh-folder-completion-function (name predicate flag) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2299 "Programmable completion for folder names. |
88155 | 2300 NAME is the partial folder name that has been input. PREDICATE if |
2301 non-nil is a function that is used to filter the possible choices | |
2302 and FLAG determines whether the completion is over." | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2303 (let* ((orig-name name) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2304 (name (mh-normalize-folder-name name nil t)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2305 (last-slash (mh-search-from-end ?/ name)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2306 (last-complete (if last-slash (substring name 0 last-slash) nil)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2307 (remainder (cond (last-complete (substring name (1+ last-slash))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2308 ((and (> (length name) 0) (equal (aref name 0) ?+)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2309 (substring name 1)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2310 (t "")))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2311 (cond ((eq flag nil) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2312 (let ((try-res (try-completion |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2313 name |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2314 (mapcar (lambda (x) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2315 (cons (if (not last-complete) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2316 (concat "+" (car x)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2317 (concat last-complete "/" (car x))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2318 (cdr x))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2319 (mh-sub-folders last-complete t)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2320 predicate))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2321 (cond ((eq try-res nil) nil) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2322 ((and (eq try-res t) (equal name orig-name)) t) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2323 ((eq try-res t) name) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2324 (t try-res)))) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2325 ((eq flag t) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2326 (all-completions |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2327 remainder (mh-sub-folders last-complete t) predicate)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2328 ((eq flag 'lambda) |
88155 | 2329 (let ((path (concat mh-user-path |
2330 (substring (mh-normalize-folder-name name) 1)))) | |
2331 (cond (mh-allow-root-folder-flag (file-exists-p path)) | |
2332 ((equal path mh-user-path) nil) | |
2333 (t (file-exists-p path)))))))) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2334 |
88155 | 2335 (defun mh-folder-completing-read (prompt default allow-root-folder-flag) |
2336 "Read folder name with PROMPT and default result DEFAULT. | |
2337 If ALLOW-ROOT-FOLDER-FLAG is non-nil then \"+\" is allowed to be | |
2338 a folder name corresponding to `mh-user-path'." | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2339 (mh-normalize-folder-name |
88155 | 2340 (let ((minibuffer-completing-file-name t) |
2341 (completion-root-regexp "^[+/]") | |
2342 (minibuffer-local-completion-map mh-folder-completion-map) | |
2343 (mh-allow-root-folder-flag allow-root-folder-flag)) | |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2344 (completing-read prompt 'mh-folder-completion-function nil nil nil |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2345 'mh-folder-hist default)) |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2346 t)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2347 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2348 (defun mh-prompt-for-folder (prompt default can-create |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2349 &optional default-string allow-root-folder-flag) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2350 "Prompt for a folder name with PROMPT. |
88155 | 2351 Returns the folder's name as a string. DEFAULT is used if the |
2352 folder exists and the user types return. If the CAN-CREATE flag | |
2353 is t, then a folder is created if it doesn't already exist. If | |
2354 optional argument DEFAULT-STRING is non-nil, use it in the prompt | |
2355 instead of DEFAULT. If ALLOW-ROOT-FOLDER-FLAG is non-nil then the | |
2356 function will accept the folder +, which means all folders when | |
2357 used in searching." | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2358 (if (null default) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2359 (setq default "")) |
88155 | 2360 (let* ((default-string (cond (default-string (format " (default %s)" default-string)) |
2361 ((equal "" default) "") | |
2362 (t (format " (default %s)" default)))) | |
2363 (prompt (format "%s folder%s: " prompt default-string)) | |
2364 (mh-current-folder-name mh-current-folder) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2365 read-name folder-name) |
88155 | 2366 (while (and (setq read-name (mh-folder-completing-read |
2367 prompt default allow-root-folder-flag)) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2368 (equal read-name "") |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2369 (equal default ""))) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2370 (cond ((or (equal read-name "") |
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2371 (and (equal read-name "+") (not allow-root-folder-flag))) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2372 (setq read-name default)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2373 ((not (mh-folder-name-p read-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2374 (setq read-name (format "+%s" read-name)))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2375 (if (or (not read-name) (equal "" read-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2376 (error "No folder specified")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2377 (setq folder-name read-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2378 (cond ((and (> (length folder-name) 0) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2379 (eq (aref folder-name (1- (length folder-name))) ?/)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2380 (setq folder-name (substring folder-name 0 -1)))) |
88155 | 2381 (let* ((last-slash (mh-search-from-end ?/ folder-name)) |
2382 (parent (and last-slash (substring folder-name 0 last-slash))) | |
2383 (child (if last-slash | |
2384 (substring folder-name (1+ last-slash)) | |
2385 (substring folder-name 1)))) | |
2386 (unless (member child | |
2387 (mapcar #'car (gethash parent mh-sub-folders-cache))) | |
2388 (mh-remove-from-sub-folders-cache folder-name))) | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2389 (let ((new-file-flag |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2390 (not (file-exists-p (mh-expand-file-name folder-name))))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2391 (cond ((and new-file-flag |
88155 | 2392 can-create |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2393 (y-or-n-p |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2394 (format "Folder %s does not exist. Create it? " |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2395 folder-name))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2396 (message "Creating %s" folder-name) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2397 (mh-exec-cmd-error nil "folder" folder-name) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2398 (mh-remove-from-sub-folders-cache folder-name) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2399 (when (boundp 'mh-speed-folder-map) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2400 (mh-speed-add-folder folder-name)) |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2401 (message "Creating %s...done" folder-name)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2402 (new-file-flag |
88155 | 2403 (error "Folder %s does not exist" folder-name)) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2404 ((not (file-directory-p (mh-expand-file-name folder-name))) |
88155 | 2405 (error "%s is not a directory" |
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
2406 (mh-expand-file-name folder-name))))) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2407 folder-name)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2408 |
88155 | 2409 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2410 |
88155 | 2411 ;;; List and string manipulation |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2412 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2413 (defun mh-list-to-string (l) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2414 "Flatten the list L and make every element of the new list into a string." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2415 (nreverse (mh-list-to-string-1 l))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2416 |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2417 (defun mh-list-to-string-1 (l) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2418 "Flatten the list L and make every element of the new list into a string." |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2419 (let ((new-list nil)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2420 (while l |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2421 (cond ((null (car l))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2422 ((symbolp (car l)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2423 (setq new-list (cons (symbol-name (car l)) new-list))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2424 ((numberp (car l)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2425 (setq new-list (cons (int-to-string (car l)) new-list))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2426 ((equal (car l) "")) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2427 ((stringp (car l)) (setq new-list (cons (car l) new-list))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2428 ((listp (car l)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2429 (setq new-list (nconc (mh-list-to-string-1 (car l)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2430 new-list))) |
88155 | 2431 (t (error "Bad element in `mh-list-to-string': %s" (car l)))) |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2432 (setq l (cdr l))) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2433 new-list)) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2434 |
88155 | 2435 (defun mh-replace-string (old new) |
2436 "Replace all occurrences of OLD with NEW in the current buffer. | |
2437 Ignores case when searching for OLD." | |
2438 (goto-char (point-min)) | |
2439 (let ((case-fold-search t)) | |
2440 (while (search-forward old nil t) | |
2441 (replace-match new t t)))) | |
2442 | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2443 (provide 'mh-utils) |
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2444 |
88155 | 2445 ;; Local Variables: |
2446 ;; indent-tabs-mode: nil | |
2447 ;; sentence-end-double-space: nil | |
2448 ;; End: | |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2449 |
88155 | 2450 ;; arch-tag: 1af39fdf-f66f-4b06-9b48-18a7656c8e36 |
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2451 ;;; mh-utils.el ends here |