0
|
1 ;;; VM user and internal variable initialization
|
|
2 ;;; Copyright (C) 1989, 1990, 1991, 1993, 1994, 1995 Kyle E. Jones
|
|
3 ;;;
|
|
4 ;;; This program is free software; you can redistribute it and/or modify
|
|
5 ;;; it under the terms of the GNU General Public License as published by
|
|
6 ;;; the Free Software Foundation; either version 1, or (at your option)
|
|
7 ;;; any later version.
|
|
8 ;;;
|
|
9 ;;; This program is distributed in the hope that it will be useful,
|
|
10 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12 ;;; GNU General Public License for more details.
|
|
13 ;;;
|
|
14 ;;; You should have received a copy of the GNU General Public License
|
|
15 ;;; along with this program; if not, write to the Free Software
|
|
16 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
17
|
|
18 (provide 'vm-vars)
|
|
19
|
|
20 (defvar vm-init-file "~/.vm"
|
|
21 "*Startup file for VM that is loaded the first time you run VM
|
|
22 in an Emacs session.")
|
|
23
|
|
24 (defvar vm-options-file "~/.vm.options"
|
|
25 "*Secondary startup file for VM, loaded after vm-init-file.
|
|
26 This file is written and overwritten by VM and is not meant for
|
|
27 users to edit directly. Use the Options menu to change what
|
|
28 appears in this file.")
|
|
29
|
|
30 (defvar vm-primary-inbox "~/INBOX"
|
|
31 "*Mail is moved from the system mailbox to this file for reading.")
|
|
32
|
|
33 (defvar vm-crash-box "~/INBOX.CRASH"
|
|
34 "*File in which to store mail temporarily while it is transferred from
|
|
35 the system mailbox to the primary inbox. If a crash occurs
|
|
36 during this mail transfer, any missing mail will be found in this
|
|
37 file. VM will do crash recovery from this file automatically at
|
|
38 startup, as necessary.")
|
|
39
|
|
40 (defvar vm-keep-crash-boxes nil
|
|
41 "*Non-nil value should be a string specifying a directory where
|
|
42 your crash boxes should be moved after VM has copied new mail
|
|
43 out of them. This is a safety measure. In at least one case a
|
|
44 pointer corruption bug inside Emacs has caused VM to believe that
|
|
45 it had copied information out of the crash box when it in fact
|
|
46 had not. VM then deleted the crash box, losing the batch of
|
|
47 incoming mail. This is an exceedingly rare problem, but if you
|
|
48 want to avoid losing mail if it happens, set vm-keep-crash-boxes
|
|
49 to point to a directory in the same filesystem as all your
|
|
50 crash boxes. Each saved crash box will have a unique name based
|
|
51 on the current date and time the box was saved. You will need to
|
|
52 clean out this directory from time to time; VM does not do so.
|
|
53
|
|
54 A nil value means VM should just delete crash boxes after it
|
|
55 has copied out the mail.")
|
|
56
|
|
57 ;; use this function to access vm-spool-files on the fly. this
|
|
58 ;; allows us to use environmental variables without setting
|
|
59 ;; vm-spool-files at load time and thereby making it hard to dump an
|
|
60 ;; Emacs containing a preloaded VM.
|
|
61 (defun vm-spool-files ()
|
|
62 (or vm-spool-files
|
|
63 (and (setq vm-spool-files (getenv "MAILPATH"))
|
|
64 (setq vm-spool-files
|
|
65 (vm-parse vm-spool-files
|
|
66 "\\([^:%?]+\\)\\([%?][^:]*\\)?\\(:\\|$\\)")))
|
|
67 (and (setq vm-spool-files (getenv "MAIL"))
|
|
68 (setq vm-spool-files (list vm-spool-files)))))
|
|
69
|
|
70 (defvar vm-spool-files nil
|
|
71 "*If non-nil this variable's value should be a list of strings
|
|
72 or a list of lists.
|
|
73
|
|
74 If the value is a list of strings, the strings should name files
|
|
75 that VM will check for incoming mail instead of the default place
|
|
76 VM thinks your system mailbox is. Mail will be moved from these
|
|
77 mailboxes to your primary inbox as specified by vm-primary-inbox,
|
|
78 using vm-crash-box as a waystation.
|
|
79
|
|
80 If the value is a list of lists, each sublist should be of the form
|
|
81
|
|
82 (INBOX SPOOLNAME CRASHBOX)
|
|
83
|
|
84 INBOX, SPOOLNAME and CRASHBOX are all strings.
|
|
85
|
|
86 INBOX is the folder where you want your new mail to be moved when
|
|
87 you type 'g' (running vm-get-new-mail) in VM. It is where you
|
|
88 will read the mail.
|
|
89
|
|
90 SPOOLNAME is where the mail system leaves your incoming mail,
|
|
91 e.g. /var/spool/mail/kyle. It can also be a POP maildrop,
|
|
92 provided it can be matched by the value of vm-recognize-pop-maildrops.
|
|
93
|
|
94 A POP maildrop specification has the following format:
|
|
95
|
|
96 \"HOST:PORT:AUTH:USER:PASSWORD\"
|
|
97
|
|
98 HOST is the host name of the POP server
|
|
99 PORT is the TCP port number to connect to (should normally be 110).
|
|
100 USER is the user name sent to the server.
|
|
101 PASSWORD is the secret shared by you and the server for
|
|
102 authentication purposes. How is it used depends on the value of
|
|
103 the AUTH parameter. If the PASSWORD is \"*\", VM will prompt
|
|
104 you for the password the first time you try to retrieve mail from
|
|
105 maildrop. If the password is valid, VM will not ask you for the
|
|
106 password again during this Emacs session.
|
|
107
|
|
108 AUTH is the authentication method used to convince the server you
|
|
109 should have access to the maildrop. Acceptable values are
|
|
110 \"pass\", \"rpop\" and \"apop\". For \"pass\", the PASSWORD is sent to
|
|
111 the server with the POP PASS command. For \"rpop\", the PASSWORD
|
|
112 should be the string to be sent to the server via the RPOP
|
|
113 command. In this case the string is not really a secret;
|
|
114 authentication is done by other means. For \"apop\", an MD5 digest
|
|
115 of the PASSWORD appended to the server timestamp will be sent to
|
|
116 the server with the APOP command. In order to use \"apop\" you
|
|
117 will have to set the value of vm-pop-md5-program appropriately to
|
|
118 point at the program that will generate the MD5 digest that VM
|
|
119 needs.
|
|
120
|
|
121 CRASHBOX is the temporary file that VM uses to store mail in
|
|
122 between the SPOOLNAME and the INBOX. If the system crashes or
|
|
123 Emacs dies while mail is being moved, and the new mail is not in
|
|
124 the SPOOLNAME or the INBOX, then it will be in the CRASHBOX.
|
|
125
|
|
126 There can be multiple entries with the same INBOX value, but a
|
|
127 particular SPOOLNAME should appear only once. CRASHBOXes should
|
|
128 not be shared among different INBOXes, but you can use the same
|
|
129 CRASHBOX/INBOX pair with a different SPOOLNAME.
|
|
130
|
|
131 NOTE: The values of vm-primary-inbox and vm-crash-box are ignored
|
|
132 when getting new mail if vm-spool-files is a list of lists.
|
|
133
|
|
134 vm-spool-files will default to the value of the shell
|
|
135 environmental variables MAILPATH or MAIL if either of these
|
|
136 variables are defined and no particular value for vm-spool-files
|
|
137 has been specified.")
|
|
138
|
|
139 (defvar vm-pop-md5-program "md5"
|
|
140 "*Program that reads a message on its standard input and writes an
|
|
141 MD5 digest on its output.")
|
|
142
|
|
143 (defvar vm-recognize-pop-maildrops "^[^:]+:[^:]+:[^:]+:[^:]+:[^:]+"
|
|
144 "*Value if non-nil should be a regular expression that matches
|
|
145 spool names found in vm-spool-files that should be considered POP
|
|
146 maildrops. A nil value tells VM that all the spool names are to
|
|
147 be considered files.")
|
|
148
|
|
149 (defvar vm-auto-get-new-mail t
|
|
150 "*Non-nil value causes VM to automatically move mail from spool files
|
|
151 to a mail folder when the folder is first visited. Nil means
|
|
152 you must always use vm-get-new-mail to pull in newly arrived messages.
|
|
153
|
|
154 If the value is a number, then it specifies how often (in
|
|
155 seconds) VM should check for new mail and try to retrieve it.
|
|
156 This is done asynchronously and may occur while you are editing
|
|
157 other files. It should not disturb your editing, except perhaps
|
|
158 for a pause while the work is being done. The `itimer' package
|
|
159 must be installed for this to work. Otherwise a numeric value is
|
|
160 the same as a value of t.")
|
|
161
|
|
162 (defvar vm-default-folder-type
|
|
163 (cond ((not (boundp 'system-configuration))
|
|
164 'From_)
|
|
165 ((or (string-match "-solaris" system-configuration)
|
|
166 (string-match "usg-unix-v" system-configuration)
|
|
167 (string-match "-ibm-aix" system-configuration))
|
|
168 'From_-with-Content-Length)
|
|
169 ((string-match "-sco" system-configuration)
|
|
170 'mmdf)
|
|
171 (t 'From_))
|
|
172 "*Default folder type for empty folders.
|
|
173 If VM has to add messages that have no specific folder type to an
|
|
174 empty folder, the folder will become this default type.
|
|
175 Allowed types are:
|
|
176
|
|
177 From_
|
|
178 From_-with-Content-Length
|
|
179 mmdf
|
|
180 babyl
|
|
181
|
|
182 Value must be a symbol, not a string. i.e. write
|
|
183
|
|
184 (setq vm-default-folder-type 'From_)
|
|
185
|
|
186 in your .emacs or .vm file.
|
|
187
|
|
188 If you set this variable's value to From_-with-Content-Length you
|
|
189 must set vm-trust-From_-with-Content-Length non-nil.")
|
|
190
|
|
191 (defvar vm-check-folder-types t
|
|
192 "*Non-nil value causes VM to check folder and message types for
|
|
193 compatibility before it performs certain operations.
|
|
194
|
|
195 Before saving a message to a folder, VM will check that the destination folder
|
|
196 is of the same type as the message to be saved.
|
|
197
|
|
198 Before incorporating message into a visited folder, VM will check that the
|
|
199 messages are of the same type as that folder.
|
|
200
|
|
201 A nil value means don't do the checks.
|
|
202
|
|
203 Depending on the value of vm-convert-folder-types VM will either
|
|
204 convert the messages to the appropriate type before saving or
|
|
205 incorporating them, or it will signal an error.")
|
|
206
|
|
207 (defvar vm-convert-folder-types t
|
|
208 "*Non-nil value means that when VM checks folder types and finds
|
|
209 a mismatch (see vm-check-folder-types), it will convert the
|
|
210 source messages to the type of the destination folder, if it can.
|
|
211
|
|
212 If vm-check-folder-types is nil, then this variable isn't
|
|
213 consulted.")
|
|
214
|
|
215 (defvar vm-trust-From_-with-Content-Length
|
|
216 (eq vm-default-folder-type 'From_-with-Content-Length)
|
|
217 "*Non-nil value means that if the first message in a folder contains
|
|
218 a Content-Length header and begins with \"From \" VM can safely
|
|
219 assume that all messages in the folder have Content-Length headers
|
|
220 that specify the length of the text section of each message. VM
|
|
221 will then use these headers to determine message boundaries
|
|
222 instead of the usual way of searching for two newlines followed by a
|
|
223 line that begins with \"From \".
|
|
224
|
|
225 If you set vm-default-folder-type to From_-with-Content-Length you
|
|
226 must set this variable non-nil.")
|
|
227
|
|
228 (defvar vm-visible-headers
|
|
229 '("Resent-"
|
|
230 "From:" "Sender:"
|
|
231 "To:" "Apparently-To:" "Cc:"
|
|
232 "Subject:"
|
|
233 "Date:")
|
|
234 "*List of headers that should be visible when VM first displays a message.
|
|
235 These should be listed in the order you wish them presented.
|
|
236 Regular expressions are allowed. There's no need to anchor
|
|
237 patterns with \"^\", as searches always start at the beginning of
|
|
238 a line. Put a colon at the end of patterns to get exact matches.
|
|
239 For example, \"Date\" matches \"Date\" and \"Date-Sent\". Header names
|
|
240 are always matched case insensitively.
|
|
241
|
|
242 If the value of vm-invisible-header-regexp is nil, only the
|
|
243 headers matched by vm-visible-headers will be displayed.
|
|
244 Otherwise all headers are displayed except those matched by
|
|
245 vm-invisible-header-regexp. In this case vm-visible-headers
|
|
246 specifies the order in which headers are displayed. Headers not
|
|
247 matching vm-visible-headers are display last.")
|
|
248
|
|
249 (defvar vm-invisible-header-regexp nil
|
|
250 "*Non-nil value should be a regular expression that tells what headers
|
|
251 VM should NOT normally display when presenting a message. All other
|
|
252 headers will be displayed. The variable vm-visible-headers specifies
|
|
253 the presentation order of headers; headers not matched by
|
|
254 vm-visible-headers are displayed last.
|
|
255
|
|
256 Nil value causes VM to display ONLY those headers specified in
|
|
257 vm-visible-headers.")
|
|
258
|
|
259 (defvar vm-highlighted-header-regexp nil
|
|
260 "*Value specifies which headers to highlight.
|
|
261 This is a regular expression that matches the names of headers that should
|
|
262 be highlighted when a message is first presented. For example setting
|
|
263 this variable to \"From:\\\\|Subject:\" causes the From and Subject
|
|
264 headers to be highlighted.
|
|
265
|
|
266 This does not work under version 18 Emacs.
|
|
267
|
|
268 If you're using XEmacs, you might want to use the builtin
|
|
269 `highlight-headers' package instead. If so, then you should set
|
|
270 the variable vm-use-lucid-highlighting non-nil. You'll need to
|
|
271 set the various variables used by the highlight-headers package
|
|
272 to customize highlighting. vm-highlighted-header-regexp is
|
|
273 ignored in this case.")
|
|
274
|
|
275 (defvar vm-use-lucid-highlighting
|
|
276 ;; (not (not ...)) to avoid the confusing value of 6.
|
|
277 (not (not (string-match "XEmacs" emacs-version)))
|
|
278 "*Non-nil means to use the `highlight-headers' package in XEmacs.
|
|
279 Nil means just use VM's builtin header highlighting code.
|
|
280
|
|
281 FSF Emacs always uses VM's builtin highlighting code.")
|
|
282
|
|
283 (defvar vm-highlighted-header-face 'bold
|
|
284 "*Face to be used to highlight headers.
|
|
285 This variable is ignored under Lucid Emacs.
|
|
286 See the documentation for the function `highlight-headers'
|
|
287 to find out how to customize header highlighting under Lucid Emacs.")
|
|
288
|
|
289 (defvar vm-preview-lines 0
|
|
290 "*Non-nil value N causes VM to display the visible headers + N lines of text
|
|
291 of a message when it is first presented. The message is not actually
|
|
292 flagged as read until it is exposed in its entirety.
|
|
293
|
|
294 A value of t causes VM to display as much of the message as will
|
|
295 fit in the window associated with the folder buffer.
|
|
296
|
|
297 A nil value causes VM not to preview messages; no text lines are hidden and
|
|
298 messages are immediately flagged as read.")
|
|
299
|
|
300 (defvar vm-preview-read-messages nil
|
|
301 "*Non-nil value means to preview messages even if they've already been read.
|
|
302 A nil value causes VM to preview messages only if new or unread.")
|
|
303
|
|
304 (defvar vm-auto-next-message t
|
|
305 "*Non-nil value causes VM to use vm-next-message to advance to the next
|
|
306 message in the folder if the user attempts to scroll past the end of the
|
|
307 current messages. A nil value disables this behavior.")
|
|
308
|
|
309 (defvar vm-honor-page-delimiters nil
|
|
310 "*Non-nil value causes VM to honor page delimiters (as specified by the
|
|
311 Emacs page-delimiter variable) when scrolling through a message.")
|
|
312
|
|
313 (defvar vm-default-window-configuration
|
|
314 ;; startup = full screan summary
|
|
315 ;; quitting = full screen folder
|
|
316 ;; reading-message = folder on bottom, summary on top
|
|
317 ;; composing-message = full screen composition
|
|
318 ;; editing-message = full screen edit
|
|
319 ;; vm-summarize = folder on bottom, summary on top
|
|
320 '(
|
|
321 (startup
|
|
322 ((((top . 70) (left . 70)))
|
|
323 (((- (0 0 80 10) (0 10 80 40))
|
|
324 ((nil summary) (nil message))
|
|
325 ((nil nil nil t) (nil nil nil nil))))))
|
|
326 (quitting
|
|
327 ((((top . 70) (left . 70)))
|
|
328 (((0 0 80 40)
|
|
329 ((nil message))
|
|
330 ((nil nil nil t))))))
|
|
331 (reading-message
|
|
332 ((((top . 70) (left . 70)))
|
|
333 (((- (0 0 80 10) (0 10 80 40))
|
|
334 ((nil summary) (nil message))
|
|
335 ((nil nil nil t) (nil nil nil nil))))))
|
|
336 (composing-message
|
|
337 ((((top . 70) (left . 70)))
|
|
338 (((0 0 80 40)
|
|
339 ((nil composition))
|
|
340 ((nil nil nil t))))))
|
|
341 (editing-message
|
|
342 ((((top . 70) (left . 70)))
|
|
343 (((0 0 80 40)
|
|
344 ((nil edit))
|
|
345 ((nil nil nil t))))))
|
|
346 (vm-summarize
|
|
347 ((((top . 70) (left . 70)))
|
|
348 (((- (0 0 80 10) (0 10 80 40))
|
|
349 ((nil summary) (nil message))
|
|
350 ((nil nil nil t) (nil nil nil nil))))))
|
|
351 )
|
|
352 "Default window configuration for VM if the user does not specify one.
|
|
353 If you want to completely turn off VM's window configuration
|
|
354 feature, set this variable and vm-window-configuration-file to
|
|
355 nil in your .vm file.
|
|
356
|
|
357 If you want to have a different window configuration setup than
|
|
358 this, you should not set this variable directly. Rather you
|
|
359 should set the variable vm-window-configuration-file to point at
|
|
360 a file, and use the command vm-save-window-configuration
|
|
361 (normally bound to `WS') to modify part of this configuration to
|
|
362 your liking.
|
|
363
|
|
364 WARNING: Don't point vm-window-configuration-file at your .vm or
|
|
365 .emacs file. Your window configuration file should start out as
|
|
366 an empty or nonexistent file. VM will repeatedly overwrite this
|
|
367 file as you update your window configuration settings, so
|
|
368 anything else you put into this file will go away.")
|
|
369
|
|
370 (defvar vm-window-configuration-file "~/.vm.windows"
|
|
371 "*Non-nil value should be a string that tells VM where to load
|
|
372 and save your window configuration settings. Your window
|
|
373 configuration settings are loaded automatically the first time
|
|
374 you run VM in an Emacs session, and tells VM how to set up
|
|
375 windows depending on what you are doing inside VM.
|
|
376
|
|
377 The commands vm-save-window-configuration (normally bound to `WS') and
|
|
378 vm-delete-window-configuration (bound to `WD') let you update this
|
|
379 information; see their documentation for more information.
|
|
380
|
|
381 You cannot change your window configuration setup without giving
|
|
382 vm-window-configuration-file a non-nil value. A nil value causes
|
|
383 VM to use the default window setup specified by the value of
|
|
384 vm-default-window-configuration.
|
|
385
|
|
386 WARNING: Don't point vm-window-configuration-file at your .vm or
|
|
387 .emacs file. Your window configuration file should start out as
|
|
388 an empty or nonexistent file. VM will repeatedly overwrite this
|
|
389 file as you update your window configuration settings, so
|
|
390 anything else you put into this file will go away.")
|
|
391
|
|
392 (defvar vm-confirm-quit 0
|
|
393 "*Value of t causes VM to always ask for confirmation before quitting
|
|
394 a VM visit of a folder. A nil value means VM will ask only when messages
|
|
395 will be lost unwittingly by quitting, i.e. not removed by intentional
|
|
396 delete and expunge. A value that is not nil and not t causes VM to ask
|
|
397 only when there are unsaved changes to message attributes, or when messages
|
|
398 will be unwittingly lost.")
|
|
399
|
|
400 (defvar vm-folder-directory nil
|
|
401 "*Directory where folders of mail are kept.")
|
|
402
|
|
403 (defvar vm-confirm-new-folders nil
|
|
404 "*Non-nil value causes interactive calls to vm-save-message
|
|
405 to ask for confirmation before creating a new folder.")
|
|
406
|
|
407 (defvar vm-delete-empty-folders t
|
|
408 "*Non-nil value means remove empty (zero length) folders after saving
|
|
409 A value of t means always remove the folders.
|
|
410 A value of nil means never remove empty folders.
|
|
411 A value that's not t or nil means ask before removing empty folders.")
|
|
412
|
|
413 (defvar vm-flush-interval t
|
|
414 "*Non-nil value specifies how often VM flushes its cached internal
|
|
415 data. A numeric value gives the number of seconds between
|
|
416 flushes. A value of t means flush every time there is a change.
|
|
417 Nil means don't do flushing until a message or folder is saved.
|
|
418
|
|
419 Normally when a message attribute is changed. VM keeps the record
|
|
420 of the change in its internal memory and doesn't insert the
|
|
421 changed data into the folder buffer until a particular message or
|
|
422 the whole folder is saved to disk. This makes normal Emacs
|
|
423 auto-saving useless for VM folder buffers because the information
|
|
424 you'd want to auto-save, i.e. the attribute changes, isn't in
|
|
425 the buffer when it is auto-saved.
|
|
426
|
|
427 Setting vm-flush-interval to a numeric value will cause the VM's
|
|
428 internal memory caches to be periodically flushed to the folder
|
|
429 buffer. This is done non-obtrusively, so that if you type
|
|
430 something while flushing is occurring, the flush will abort
|
|
431 cleanly and Emacs will respond to your keystrokes as usual.")
|
|
432
|
|
433 (defvar vm-visit-when-saving 0
|
|
434 "*Value determines whether VM will visit folders when saving messages.
|
|
435 `Visiting' means that VM will read the folder into Emacs and append the
|
|
436 message to the buffer instead of appending to the folder file directly.
|
|
437 This behavior is ideal when folders are encrypted or compressed since
|
|
438 appending plaintext directly to such folders is a ghastly mistake.
|
|
439
|
|
440 A value of t means VM will always visit folders when saving.
|
|
441
|
|
442 A nil value means VM will never visit folders before saving to them, and
|
|
443 VM will generate an error if you attempt to save messages to a folder
|
|
444 that is being visited. The latter restriction is necessary to insure
|
|
445 that the buffer and disk copies of the folder being visited remain
|
|
446 consistent.
|
|
447
|
|
448 A value that is not nil and not t means VM will save to a folder's
|
|
449 buffer if that folder is being visited, otherwise VM saves to the folder
|
|
450 file itself.")
|
|
451
|
|
452 (defvar vm-auto-folder-alist nil
|
|
453 "*Non-nil value should be an alist that VM will use to choose a default
|
|
454 folder name when messages are saved. The alist should be of the form
|
|
455 \((HEADER-NAME-REGEXP
|
|
456 (REGEXP . FOLDER-NAME) ...
|
|
457 ...))
|
|
458 where HEADER-NAME-REGEXP and REGEXP are strings, and FOLDER-NAME
|
|
459 is a string or an s-expression that evaluates to a string.
|
|
460
|
|
461 If any part of the contents of the message header whose name is
|
|
462 matched by HEADER-NAME-REGEXP is matched by the regular
|
|
463 expression REGEXP, VM will evaluate the corresponding FOLDER-NAME
|
|
464 and use the result as the default when prompting for a folder to
|
|
465 save the message in. If the resulting folder name is a relative
|
|
466 pathname, then it will be rooted in the directory named by
|
|
467 vm-folder-directory, or the default-directory of the currently
|
|
468 visited folder if vm-folder-directory is nil.
|
|
469
|
|
470 When FOLDER-NAME is evaluated, the current buffer will contain
|
|
471 only the contents of the header matched by HEADER-NAME-REGEXP.
|
|
472 It is safe to modify this buffer. You can use the match data
|
|
473 from any \\( ... \\) grouping constructs in REGEXP along with the
|
|
474 function buffer-substring to build a folder name based on the
|
|
475 header information. If the result of evaluating FOLDER-NAME is a
|
|
476 list, then the list will be treated as another auto-folder-alist
|
|
477 and will be descended recursively.
|
|
478
|
|
479 Whether REGEXP is matched case sensitively depends on the value
|
|
480 of the variable vm-auto-folder-case-fold-search. Header names
|
|
481 are always matched case insensitively.")
|
|
482
|
|
483 (defvar vm-auto-folder-case-fold-search nil
|
|
484 "*Non-nil value means VM will ignore case when matching header
|
|
485 contents while doing automatic folder selection via the variable
|
|
486 vm-auto-folder-alist.")
|
|
487
|
|
488 (defvar vm-virtual-folder-alist nil
|
|
489 "*Non-nil value should be a list of virtual folder definitions.
|
|
490
|
|
491 A virtual folder is a mapping of messages from one or more real folders
|
|
492 into what appears to be a single folder. A virtual folder definition
|
|
493 specifies which real folders should be searched for prospective messages
|
|
494 and what the inclusion criteria are.
|
|
495
|
|
496 Each virtual folder definition should have the following form:
|
|
497
|
|
498 (VIRTUAL-FOLDER-NAME
|
|
499 ( (FOLDER-NAME ...)
|
|
500 (SELECTOR [ARG ...]) ... )
|
|
501 ... )
|
|
502
|
|
503 VIRTUAL-FOLDER-NAME is the name of the virtual folder being defined.
|
|
504 This is the name by which you and VM will refer to this folder.
|
|
505
|
|
506 FOLDER-NAME should be the name of a real folder. There may be more than
|
|
507 one FOLDER-NAME listed, the SELECTORs within that sublist will apply to
|
|
508 them all. If FOLDER-NAME is a directory, VM will assume this to mean that
|
|
509 all the folders in that directory should be searched.
|
|
510
|
|
511 The SELECTOR is a Lisp symbol that tells VM how to decide whether a message
|
|
512 from one of the folders specified by the FOLDER-NAMEs should be included
|
|
513 in the virtual folder. Some SELECTORs require an argument ARG; unless
|
|
514 otherwise noted ARG may be omitted.
|
|
515
|
|
516 The recognized SELECTORs are:
|
|
517
|
|
518 author - matches message if ARG matches the author; ARG should be a
|
|
519 regular expression.
|
|
520 and - matches the message if all its argument
|
|
521 selectors match the message. Example:
|
|
522 (and (author \"Derek McGinty\") (new))
|
|
523 matches all new messages from Derek McGinty.
|
|
524 `and' takes any number of arguments.
|
|
525 any - matches any message.
|
|
526 deleted - matches message if it is flagged for deletion.
|
|
527 edited - matches message if it has been edited.
|
|
528 filed - matched message if it has been saved with its headers.
|
|
529 forwarded - matches message if it has been forwarded.
|
|
530 header - matches message if ARG matches any part of the header
|
|
531 portion of the message; ARG should be a
|
|
532 regular expression.
|
|
533 label - matches message if message has a label named ARG.
|
|
534 less-chars-than - matches message if message has less than ARG
|
|
535 characters. ARG should be a number.
|
|
536 less-lines-than - matches message if message has less than ARG
|
|
537 lines. ARG should be a number.
|
|
538 more-chars-than - matches message if message has more than ARG
|
|
539 characters. ARG should be a number.
|
|
540 more-lines-than - matches message if message has more than ARG
|
|
541 lines. ARG should be a number.
|
|
542 marked - matches message if it is marked, as with vm-mark-message.
|
|
543 new - matches message if it is new.
|
|
544 not - matches message only if its selector argument
|
|
545 does NOT match the message. Example:
|
|
546 (not (deleted))
|
|
547 matches messages that are not deleted.
|
|
548 or - matches the message if any of its argument
|
|
549 selectors match the message. Example:
|
|
550 (or (author \"Dave Weckl\") (subject \"drum\"))
|
|
551 matches messages from Dave Weckl or messages
|
|
552 with the word \"drum\" in their Subject header.
|
|
553 `or' takes any number of arguments.
|
|
554 read - matches message if it is neither new nor unread.
|
|
555 recipient - matches message if ARG matches any part of the recipient
|
|
556 list of the message. ARG should be a regular expression.
|
|
557 replied - matches message if it has been replied to.
|
|
558 sent-after - matches message if it was sent after the date ARG.
|
|
559 A fully specified date looks like this:
|
|
560 \"31 Dec 1999 23:59:59 GMT\"
|
|
561 although the parts can appear in any order.
|
|
562 You can leave out any part and it will
|
|
563 default to the current date's value for that
|
|
564 part, with the exception of the hh:mm:ss
|
|
565 part which defaults to midnight.
|
|
566 sent-before - matches message if it was sent before the date ARG.
|
|
567 A fully specified date looks like this:
|
|
568 \"31 Dec 1999 23:59:59 GMT\"
|
|
569 although the parts can appear in any order.
|
|
570 You can leave out any part and it will
|
|
571 default to the current date's value for that
|
|
572 part, with the exception of the hh:mm:ss
|
|
573 part which defaults to midnight.
|
|
574 subject - matches message if ARG matches any part of the message's
|
|
575 subject; ARG should be a regular expression.
|
|
576 text - matches message if ARG matches any part of the text
|
|
577 portion of the message; ARG should be a
|
|
578 regular expression.
|
|
579 unread - matches message if it is old but unread.
|
|
580 written - matches message if it has been saved without its headers.
|
|
581 ")
|
|
582
|
|
583 (defvar vm-virtual-mirror t
|
|
584 "*Non-nil value causes the attributes of messages in virtual folders
|
|
585 to mirror the changes in the attributes of the underlying real messages.
|
|
586 Similarly, changes in the attributes of virtual messages will change the
|
|
587 attributes of the underlying real messages. A nil value causes virtual
|
|
588 messages to have their own distinct set of attributes, apart from the
|
|
589 underlying real message.
|
|
590
|
|
591 This variable automatically becomes buffer-local when set in any
|
|
592 fashion. You should set this variable only in your .vm or .emacs
|
|
593 file. Use setq-default. Once VM has been started, you should not
|
|
594 set this variable directly, rather you should use the command
|
|
595 vm-toggle-virtual-mirror, normally bound to `V M'.")
|
|
596 (make-variable-buffer-local 'vm-virtual-mirror)
|
|
597
|
|
598 (defvar vm-folder-read-only nil
|
|
599 "*Non-nil value causes a folder to be considered unmodifiable by VM.
|
|
600 Commands that modify message attributes or messages themselves are disallowed.
|
|
601 Commands that add or delete messages from the folder are disallowed.
|
|
602 Commands that scan or allow the reading of messages are allowed but the
|
|
603 `new' and `unread' message flags are not changed by them.
|
|
604
|
|
605 This variable automatically becomes buffer-local when set in any
|
|
606 fashion. You should set this variable only in your .vm or .emacs
|
|
607 file. Use setq-default. Once VM has been started, you should not
|
|
608 set this variable directly, rather you should use the command
|
|
609 vm-toggle-read-only, normally bound to C-x C-q.")
|
|
610 (make-variable-buffer-local 'vm-folder-read-only)
|
|
611
|
|
612 (defvar vm-included-text-prefix " > "
|
|
613 "*String used to prefix included text in replies.")
|
|
614
|
|
615 (defvar vm-keep-sent-messages 1
|
|
616 "*Non-nil value N causes VM to keep the last N messages sent from within VM.
|
|
617 `Keep' means that VM will not kill the VM mail buffer after you send a message
|
|
618 with C-c C-c (vm-mail-send-and-exit). A value of 0 or nil causes VM never
|
|
619 to keep such buffers. A value of t causes VM never to kill such buffers.
|
|
620
|
|
621 Note that these buffers will vanish once you exit Emacs. To keep a permanent
|
|
622 record of your outgoing mail, use the mail-archive-file-name variable.")
|
|
623
|
|
624 (defvar vm-confirm-mail-send nil
|
|
625 "*Non-nil means ask before sending a mail message.
|
|
626 This affects vm-mail-send and vm-mail-send-and-exit in Mail mode.")
|
|
627
|
|
628 (defvar vm-mail-header-from nil
|
|
629 "*Non-nil value should be a string that will be appear as the body
|
|
630 of the From header in outbound mail messages. A nil value means don't
|
|
631 insert a From header. This variable also controls the inclusion and
|
|
632 format of the Resent-From header, when resending a message with
|
|
633 vm-resend-message.")
|
|
634
|
|
635 (defvar vm-reply-subject-prefix nil
|
|
636 "*Non-nil value should be a string that VM should add to the beginning
|
|
637 of the Subject header in replies, if the string is not already present.
|
|
638 Nil means don't prefix the Subject header.")
|
|
639
|
|
640 (defvar vm-reply-ignored-addresses nil
|
|
641 "*Non-nil value should be a list of regular expressions that match
|
|
642 addresses that VM should automatically remove from the recipient
|
|
643 headers of replies. These addresses are removed from the headers
|
|
644 before you are placed in the message composition buffer. So if
|
|
645 you see an address in the header you don't want you should remove
|
|
646 it yourself.
|
|
647
|
|
648 Case is ignored when matching the addresses.")
|
|
649
|
|
650 (defvar vm-reply-ignored-reply-tos nil
|
|
651 "*Non-nil value should be a list of regular expressions that match
|
|
652 addresses that, if VM finds in a message's Reply-To header, VM
|
|
653 should ignore the Reply-To header and not use it for replies. VM
|
|
654 will use the From header instead.
|
|
655
|
|
656 Case is ignored when matching the addresses.
|
|
657
|
|
658 This variable exists solely to provide a escape chute from
|
|
659 mailing lists that add a Reply-To: mailing list header, thereby
|
|
660 leaving no way to reply to just the author of a message.")
|
|
661
|
|
662 (defvar vm-in-reply-to-format "%i"
|
|
663 "*String which specifies the format of the contents of the In-Reply-To
|
|
664 header that is generated for replies. See the documentation for the
|
|
665 variable vm-summary-format for information on what this string may
|
|
666 contain. The format should *not* end with a newline.
|
|
667 Nil means don't put an In-Reply-To header in replies.")
|
|
668
|
|
669 (defvar vm-included-text-attribution-format "%F writes:\n"
|
|
670 "*String which specifies the format of the attribution that precedes the
|
|
671 included text from a message in a reply. See the documentation for the
|
|
672 variable vm-summary-format for information on what this string may contain.
|
|
673 Nil means don't attribute included text in replies.")
|
|
674
|
|
675 (defvar vm-included-text-headers nil
|
|
676 "*List of headers that should be retained in a message included in
|
|
677 a reply. These should be listed in the order you wish them to
|
|
678 appear in the included text. Regular expressions are allowed.
|
|
679 There's no need to anchor patterns with \"^\", as searches always
|
|
680 start at the beginning of a line. Put a colon at the end of
|
|
681 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
682 and \"Date-Sent\".) Header names are always matched case
|
|
683 insensitively.
|
|
684
|
|
685 If the value of vm-included-text-discard-header-regexp is nil,
|
|
686 the headers matched by vm-included-text-headers are the only
|
|
687 headers that will be retained.
|
|
688
|
|
689 If vm-included-text-discard-header-regexp is non-nil, then only
|
|
690 headers matched by that variable will be omitted; all others will
|
|
691 be included. vm-included-text-headers determines the header
|
|
692 order in that case, with headers not matching any in the
|
|
693 vm-included-text-headers list appearing last in the header
|
|
694 section of the included text.")
|
|
695
|
|
696 (defvar vm-included-text-discard-header-regexp nil
|
|
697 "*Non-nil value should be a regular expression header that tells
|
|
698 what headers should not be retained in a message included in a
|
|
699 reply. This variable along with vm-included-text-headers determines
|
|
700 which headers are retained.
|
|
701
|
|
702 If the value of vm-included-text-discard-header-regexp is nil,
|
|
703 the headers matched by vm-included-text-headers are the only headers
|
|
704 that will be retained.
|
|
705
|
|
706 If vm-included-text-discard-header-regexp is non-nil, then only
|
|
707 headers matched by this variable will not be retained; all
|
|
708 others will be included. vm-included-text-headers determines the
|
|
709 header order in that case, with headers not matching any in
|
|
710 the vm-included-text-headers list appearing last in the header
|
|
711 section of the included text.")
|
|
712
|
|
713 (defvar vm-forwarding-subject-format "forwarded message from %F"
|
|
714 "*String which specifies the format of the contents of the Subject
|
|
715 header that is generated for a forwarded message. See the documentation
|
|
716 for the variable vm-summary-format for information on what this string
|
|
717 may contain. The format should *not* end with nor contain a newline.
|
|
718 Nil means leave the Subject header empty when forwarding.")
|
|
719
|
|
720 (defvar vm-forwarded-headers nil
|
|
721 "*List of headers that should be forwarded by vm-forward-message.
|
|
722 These should be listed in the order you wish them to appear in
|
|
723 the forwarded message. Regular expressions are allowed.
|
|
724 There's no need to anchor patterns with \"^\", as searches always
|
|
725 start at the beginning of a line. Put a colon at the end of
|
|
726 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
727 and \"Date-Sent\".) Header names are always matched case
|
|
728 insensitively.
|
|
729
|
|
730 If the value of vm-unforwarded-header-regexp is nil, the headers
|
|
731 matched by vm-forwarded-headers are the only headers that will be
|
|
732 forwarded.
|
|
733
|
|
734 If vm-unforwarded-header-regexp is non-nil, then only headers
|
|
735 matched by that variable will be omitted; all others will be
|
|
736 forwarded. vm-forwarded-headers determines the forwarding order
|
|
737 in that case, with headers not matching any in the
|
|
738 vm-forwarded-headers list appearing last in the header section of
|
|
739 the forwarded message.")
|
|
740
|
|
741 (defvar vm-unforwarded-header-regexp "only-drop-this-header"
|
|
742 "*Non-nil value should be a regular expression header that tells
|
|
743 what headers should not be forwarded by vm-forward-message. This
|
|
744 variable along with vm-forwarded-headers determines which headers
|
|
745 are forwarded.
|
|
746
|
|
747 If the value of vm-unforwarded-header-regexp is nil, the headers
|
|
748 matched by vm-forwarded-headers are the only headers that will be
|
|
749 forwarded.
|
|
750
|
|
751 If vm-unforwarded-header-regexp is non-nil, then only headers
|
|
752 matched by this variable will not be forwarded; all others will
|
|
753 be forwarded. vm-forwarded-headers determines the forwarding
|
|
754 order in that case, with headers not matching any in the
|
|
755 vm-forwarded-headers list appearing last in the header section of
|
|
756 the forwarded message.")
|
|
757
|
|
758 (defvar vm-forwarding-digest-type "rfc934"
|
|
759 "*Non-nil value should be a string that specifies the type of
|
|
760 message encapsulation format to use when forwarding a message.
|
|
761 Legal values of this variable are:
|
|
762
|
|
763 \"rfc934\"
|
|
764 \"rfc1153\"
|
2
|
765 \"rfc1521\"
|
0
|
766 nil
|
|
767
|
|
768 A nil value means don't use a digest, just mark the beginning and
|
|
769 end of the forwarded message.")
|
|
770
|
|
771 (defvar vm-digest-preamble-format "\"%s\" (%F)"
|
|
772 "*String which specifies the format of the preamble lines generated by
|
|
773 vm-send-digest when it is invoked with a prefix argument. One
|
|
774 line will be generated for each message put into the digest. See the
|
|
775 documentation for the variable vm-summary-format for information
|
|
776 on what this string may contain. The format should *not* end
|
|
777 with nor contain a newline.")
|
|
778
|
|
779 (defvar vm-digest-center-preamble t
|
|
780 "*Non-nil value means VM will center the preamble lines that precede
|
|
781 the start of a digest. How the lines will be centered depends on the
|
|
782 ambient value of fill-column. A nil value suppresses centering.")
|
|
783
|
|
784 (defvar vm-digest-identifier-header-format "X-Digest: %s\n"
|
|
785 "*Header to insert into messages burst from a digest.
|
|
786 Value should be a format string of the same type as vm-summary-format that describes a header to be inserted into each message burst from a digest. The format string must end with a newline.")
|
|
787
|
|
788 (defvar vm-digest-burst-type "rfc934"
|
|
789 "*Value specifies the default digest type offered by vm-burst-digest
|
|
790 when it asks you what type of digest you want to unpack. Allowed
|
|
791 values of this variable are:
|
|
792
|
|
793 \"rfc934\"
|
|
794 \"rfc1153\"
|
2
|
795 \"rfc1521\"
|
0
|
796 \"guess\"
|
|
797
|
|
798 If the value is \"guess\", and you take the default
|
|
799 response when vm-burst-digest queries you, VM will try to guess
|
|
800 the digest type.")
|
|
801
|
2
|
802 (defvar vm-digest-send-type "rfc1521"
|
0
|
803 "*String that specifies the type of digest vm-send-digest will use.
|
|
804 Legal values of this variable are:
|
|
805
|
|
806 \"rfc934\"
|
|
807 \"rfc1153\"
|
2
|
808 \"rfc1521\"
|
0
|
809
|
|
810 ")
|
|
811
|
|
812 (defvar vm-rfc934-digest-headers
|
|
813 '("Resent-"
|
|
814 "From:" "Sender:"
|
|
815 "To:" "Cc:"
|
|
816 "Subject:"
|
|
817 "Date:"
|
|
818 "Message-ID:"
|
|
819 "Keywords:")
|
|
820 "*List of headers that should be appear in RFC 934 digests
|
|
821 created by VM. These should be listed in the order you wish them
|
|
822 to appear in the digest. Regular expressions are allowed.
|
|
823 There's no need to anchor patterns with \"^\", as searches always
|
|
824 start at the beginning of a line. Put a colon at the end of
|
|
825 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
826 and \"Date-Sent\".) Header names are always matched case
|
|
827 insensitively.
|
|
828
|
|
829 If the value of vm-rfc934-digest-discard-header-regexp is nil, the headers
|
|
830 matched by vm-rfc934-digest-headers are the only headers that will be
|
|
831 kept.
|
|
832
|
|
833 If vm-rfc934-digest-discard-header-regexp is non-nil, then only
|
|
834 headers matched by that variable will be discarded; all others
|
|
835 will be kept. vm-rfc934-digest-headers determines the order of
|
|
836 appearance in that case, with headers not matching any in the
|
|
837 vm-rfc934-digest-headers list appearing last in the headers
|
|
838 of the digestified messages.")
|
|
839
|
|
840 (defvar vm-rfc934-digest-discard-header-regexp nil
|
|
841 "*Non-nil value should be a regular expression header that tells
|
|
842 what headers should not appear in RFC 934 digests created by VM. This
|
|
843 variable along with vm-rfc934-digest-headers determines which headers
|
|
844 are kept and which are discarded.
|
|
845
|
|
846 If the value of vm-rfc934-digest-discard-header-regexp is nil, the headers
|
|
847 matched by vm-rfc934-digest-headers are the only headers that will be
|
|
848 kept.
|
|
849
|
|
850 If vm-rfc934-digest-discard-header-regexp is non-nil, then only
|
|
851 headers matched by this variable will be discarded; all others
|
|
852 will be kept. vm-rfc934-digest-headers determines the order of
|
|
853 appearance in that case, with headers not matching any in the
|
|
854 vm-rfc934-digest-headers list appearing last in the headers
|
|
855 of the digestified messages.")
|
|
856
|
|
857 (defvar vm-rfc1153-digest-headers
|
|
858 '("Resent-"
|
|
859 "Date:"
|
|
860 "From:" "Sender:"
|
|
861 "To:" "Cc:"
|
|
862 "Subject:"
|
|
863 "Message-ID:"
|
|
864 "Keywords:")
|
|
865 "*List of headers that should be appear in RFC 1153 digests
|
|
866 created by VM. These should be listed in the order you wish them
|
|
867 to appear in the digest. Regular expressions are allowed.
|
|
868 There is no need to anchor patterns with \"^\", as searches always
|
|
869 start at the beginning of a line. Put a colon at the end of
|
|
870 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
871 and \"Date-Sent\".) Header names are always matched case
|
|
872 insensitively.
|
|
873
|
|
874 If the value of vm-rfc1153-digest-discard-header-regexp is nil, the headers
|
|
875 matched by vm-rfc1153-digest-headers are the only headers that will be
|
|
876 kept.
|
|
877
|
|
878 If vm-rfc1153-digest-discard-header-regexp is non-nil, then only
|
|
879 headers matched by that variable will be discarded; all others
|
|
880 will be kept. vm-rfc1153-digest-headers determines the order of
|
|
881 appearance in that case, with headers not matching any in the
|
|
882 vm-rfc1153-digest-headers list appearing last in the headers of
|
|
883 the digestified messages.")
|
|
884
|
|
885 (defvar vm-rfc1153-digest-discard-header-regexp "\\(X400-\\)?Received:"
|
|
886 "*Non-nil value should be a regular expression header that tells
|
|
887 what headers should not appear in RFC 1153 digests created by VM. This
|
|
888 variable along with vm-rfc1153-digest-headers determines which headers
|
|
889 are kept and which headers are discarded.
|
|
890
|
|
891 If the value of vm-rfc1153-digest-discard-header-regexp is nil, the headers
|
|
892 matched by vm-rfc1153-digest-headers are the only headers that will be
|
|
893 kept.
|
|
894
|
|
895 If vm-rfc1153-digest-discard-header-regexp is non-nil, then only
|
|
896 headers matched by this variable will be discarded; all others
|
|
897 will be kept. vm-rfc1153-digest-headers determines the order of
|
|
898 appearance in that case, with headers not matching any in the
|
|
899 vm-rfc1153-digest-headers list appearing last in the headers of
|
|
900 the digestified messages.")
|
|
901
|
2
|
902 (defvar vm-rfc1521-digest-headers
|
|
903 '()
|
|
904 "*List of headers that should be appear in RFC 1521 digests
|
|
905 created by VM. These should be listed in the order you wish them
|
|
906 to appear in the digest. Regular expressions are allowed.
|
|
907 There is no need to anchor patterns with \"^\", as searches always
|
|
908 start at the beginning of a line. Put a colon at the end of
|
|
909 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
910 and \"Date-Sent\".) Header names are always matched case
|
|
911 insensitively.
|
|
912
|
|
913 If the value of vm-rfc1521-digest-discard-header-regexp is nil, the headers
|
|
914 matched by vm-rfc1521-digest-headers are the only headers that will be
|
|
915 kept.
|
|
916
|
|
917 If vm-rfc1521-digest-discard-header-regexp is non-nil, then only
|
|
918 headers matched by that variable will be discarded; all others
|
|
919 will be kept. vm-rfc1521-digest-headers determines the order of
|
|
920 appearance in that case, with headers not matching any in the
|
|
921 vm-rfc1521-digest-headers list appearing last in the headers of
|
|
922 the digestified messages.")
|
|
923
|
|
924
|
|
925 (defvar vm-rfc1521-digest-discard-header-regexp "\\(X400-\\)?Received:"
|
|
926 "*Non-nil value should be a regular expression header that tells
|
|
927 what headers should not appear in RFC 1521 digests created by VM. This
|
|
928 variable along with vm-rfc1521-digest-headers determines which headers
|
|
929 are kept and which headers are discarded.
|
|
930
|
|
931 If the value of vm-rfc1521-digest-discard-header-regexp is nil, the headers
|
|
932 matched by vm-rfc1521-digest-headers are the only headers that will be
|
|
933 kept.
|
|
934
|
|
935 If vm-rfc1521-digest-discard-header-regexp is non-nil, then only
|
|
936 headers matched by this variable will be discarded; all others
|
|
937 will be kept. vm-rfc1521-digest-headers determines the order of
|
|
938 appearance in that case, with headers not matching any in the
|
|
939 vm-1521-digest-headers list appearing last in the headers of
|
|
940 the digestified messages.")
|
|
941
|
|
942
|
|
943
|
0
|
944 (defvar vm-resend-bounced-headers
|
|
945 '("Resent-"
|
|
946 "From:" "Sender:" "Reply-To:"
|
|
947 "To:" "Cc:"
|
|
948 "Subject:"
|
|
949 "Newsgroups:"
|
|
950 "In-Reply-To:" "References:"
|
|
951 "Keywords:"
|
|
952 "X-")
|
|
953 "*List of headers that should be appear in messages resent with
|
|
954 vm-resend-bounced-message. These should be listed in the order you wish them
|
|
955 to appear in the message. Regular expressions are allowed.
|
|
956 There is no need to anchor patterns with \"^\", as searches always
|
|
957 start at the beginning of a line. Put a colon at the end of
|
|
958 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
959 and \"Date-Sent\".) Header names are always matched case
|
|
960 insensitively.
|
|
961
|
|
962 If the value of vm-resend-bounced-discard-header-regexp is nil, the headers
|
|
963 matched by vm-resend-bounced-headers are the only headers that will be
|
|
964 kept.
|
|
965
|
|
966 If vm-resend-bounced-discard-header-regexp is non-nil, then only
|
|
967 headers matched by that variable will be discarded; all others
|
|
968 will be kept. vm-resend-bounced-headers determines the order of
|
|
969 appearance in that case, with headers not matching any in the
|
|
970 vm-resend-bounced-headers list appearing last in the headers of
|
|
971 the message.")
|
|
972
|
|
973 (defvar vm-resend-bounced-discard-header-regexp nil
|
|
974 "*Non-nil value should be a regular expression that tells
|
|
975 what headers should not appear in a resent bounced message. This
|
|
976 variable along with vm-resend-bounced-headers determines which headers
|
|
977 are kept and which headers are discarded.
|
|
978
|
|
979 If the value of vm-resend-bounced-discard-header-regexp is nil,
|
|
980 the headers matched by vm-resend-bounced-headers are the only
|
|
981 headers that will be kept.
|
|
982
|
|
983 If vm-resend-bounced-discard-header-regexp is non-nil, then only
|
|
984 headers matched by this variable will be discarded; all others
|
|
985 will be kept. vm-resend-bounced-headers determines the order of
|
|
986 appearance in that case, with headers not matching any in the
|
|
987 vm-resend-bounced-headers list appearing last in the headers of
|
|
988 the message.")
|
|
989
|
|
990 (defvar vm-resend-headers nil
|
|
991 "*List of headers that should be appear in messages resent with
|
|
992 vm-resend-message. These should be listed in the order you wish them
|
|
993 to appear in the message. Regular expressions are allowed.
|
|
994 There is no need to anchor patterns with \"^\", as searches always
|
|
995 start at the beginning of a line. Put a colon at the end of
|
|
996 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
997 and \"Date-Sent\".) Header names are always matched case
|
|
998 insensitively.
|
|
999
|
|
1000 If the value of vm-resend-discard-header-regexp is nil, the headers
|
|
1001 matched by vm-resend-headers are the only headers that will be
|
|
1002 kept.
|
|
1003
|
|
1004 If vm-resend-discard-header-regexp is non-nil, then only
|
|
1005 headers matched by that variable will be discarded; all others
|
|
1006 will be kept. vm-resend-headers determines the order of
|
|
1007 appearance in that case, with headers not matching any in the
|
|
1008 vm-resend-headers list appearing last in the headers of
|
|
1009 the message.")
|
|
1010
|
|
1011 (defvar vm-resend-discard-header-regexp "\\(\\(X400-\\)?Received:\\|Resent-\\)"
|
|
1012 "*Non-nil value should be a regular expression that tells
|
|
1013 what headers should not appear in a resent message. This
|
|
1014 variable along with vm-resend-bounced-headers determines which
|
|
1015 headers are kept and which headers are discarded.
|
|
1016
|
|
1017 If the value of vm-resend-discard-header-regexp is nil,
|
|
1018 the headers matched by vm-resend-headers are the only
|
|
1019 headers that will be kept.
|
|
1020
|
|
1021 If vm-resend-discard-header-regexp is non-nil, then only
|
|
1022 headers matched by this variable will be discarded; all others
|
|
1023 will be kept. vm-resend-headers determines the order of
|
|
1024 appearance in that case, with headers not matching any in the
|
|
1025 vm-resend-headers list appearing last in the headers of
|
|
1026 the message.")
|
|
1027
|
|
1028 (defvar vm-summary-format "%n %*%a %-17.17F %-3.3m %2d %4l/%-5c %I\"%s\"\n"
|
|
1029 "*String which specifies the message summary line format.
|
|
1030 The string may contain the printf-like `%' conversion specifiers which
|
|
1031 substitute information about the message into the final summary line.
|
|
1032
|
|
1033 Recognized specifiers are:
|
|
1034 a - attribute indicators (always four characters wide)
|
|
1035 The first char is `D', `N', `U' or ` ' for deleted, new, unread
|
|
1036 and read messages respectively.
|
|
1037 The second char is `F', `W' or ` ' for filed (saved) or written
|
|
1038 messages.
|
|
1039 The third char is `R', `Z' or ` ' for messages replied to,
|
|
1040 and forwarded messages.
|
|
1041 The fourth char is `E' if the message has been edited, ` ' otherwise.
|
|
1042 A - longer version of attributes indicators (seven characters wide)
|
|
1043 The first char is `D', `N', `U' or ` ' for deleted, new, unread
|
|
1044 and read messages respectively.
|
|
1045 The second is `r' or ` ', for message replied to.
|
|
1046 The third is `z' or ` ', for messages forwarded.
|
|
1047 The fourth is `b' or ` ', for messages redistributed.
|
|
1048 The fifth is `f' or ` ', for messages filed.
|
|
1049 The sixth is `w' or ` ', for messages written.
|
|
1050 The seventh is `e' or ` ', for messages that have been edited.
|
|
1051 c - number of characters in message (ignoring headers)
|
|
1052 d - numeric day of month message sent
|
|
1053 f - author's address
|
|
1054 F - author's full name (same as f if full name not found)
|
|
1055 h - hour:min:sec message sent
|
|
1056 H - hour:min message sent
|
|
1057 i - message ID
|
|
1058 I - thread indentation
|
|
1059 l - number of lines in message (ignoring headers)
|
|
1060 L - labels (as a comma list)
|
|
1061 m - month message sent
|
|
1062 M - numeric month message sent (January = 1)
|
|
1063 n - message number
|
|
1064 s - message subject
|
|
1065 t - addresses of the recipients of the message, in a comma-separated list
|
|
1066 T - full names of the recipients of the message, in a comma-separated list
|
|
1067 If a full name cannot be found, the corresponding address is used
|
|
1068 instead.
|
|
1069 U - user defined specifier. The next character in the format
|
|
1070 string should be a letter. VM will call the function
|
|
1071 vm-summary-function-<letter> (e.g. vm-summary-function-A for
|
|
1072 \"%UA\") in the folder buffer with the message being summarized
|
|
1073 bracketed by (point-min) and (point-max). The function
|
|
1074 will be passed a message struct as an argument.
|
|
1075 The function should return a string, which VM will insert into
|
|
1076 the summary as it would for information from any other summary
|
|
1077 specifier.
|
|
1078 w - day of the week message sent
|
|
1079 y - year message sent
|
|
1080 z - timezone of date when the message was sent
|
|
1081 * - `*' if the message is marked, ` ' otherwise
|
|
1082
|
|
1083 Use %% to get a single %.
|
|
1084
|
|
1085 A numeric field width may be given between the `%' and the specifier;
|
|
1086 this causes right justification of the substituted string. A negative field
|
|
1087 width causes left justification.
|
|
1088
|
|
1089 The field width may be followed by a `.' and a number specifying
|
|
1090 the maximum allowed length of the substituted string. If the
|
|
1091 string is longer than this value the right end of the string is
|
|
1092 truncated. If the value is negative, the string is truncated on
|
2
|
1093 the left instead of the right.
|
0
|
1094
|
|
1095 The summary format need not be one line per message but it must end with
|
|
1096 a newline, otherwise the message pointer will not be displayed correctly
|
|
1097 in the summary window.")
|
|
1098
|
|
1099 (defvar vm-summary-arrow "->"
|
|
1100 "*String that is displayed to the left of the summary of the
|
|
1101 message VM consider to be the current message. The value takes
|
|
1102 effect when the summary buffer is created. Changing this
|
|
1103 variable's value has no effect on existing summary buffers.")
|
|
1104
|
|
1105 (defvar vm-summary-highlight-face 'bold
|
|
1106 "*Face to use to highlight the summary entry for the current message.
|
|
1107 Nil means don't highlight the current message's summary entry.")
|
|
1108
|
|
1109 (defvar vm-summary-show-threads nil
|
|
1110 "*Non-nil value means VM should display and maintain
|
|
1111 message thread trees in the summary buffer. This means that
|
|
1112 messages with a common ancestor will be displayed contiguously in
|
|
1113 the summary. (If you have vm-move-messages-physically set
|
|
1114 non-nil the folder itself will be reordered to match the thread
|
|
1115 ordering.) If you use the `%I' summary format specifier in your
|
|
1116 vm-summary-format, indentation will be provided as described in the
|
|
1117 documentation for vm-summary-thread-indent-level (which see).
|
|
1118
|
|
1119 A nil value means don't display thread information. The `%I'
|
|
1120 specifier does nothing in the summary format.
|
|
1121
|
|
1122 This variable automatically becomes buffer-local when set in any
|
|
1123 fashion. You should set this variable only in your .vm or .emacs
|
|
1124 file. Use setq-default. Once VM has been started, you should not
|
|
1125 set this variable directly, rather you should use the command
|
|
1126 vm-toggle-threads-display, normally bound to C-t.")
|
|
1127 (make-variable-buffer-local 'vm-summary-show-threads)
|
|
1128
|
|
1129 (defvar vm-summary-thread-indent-level 2
|
|
1130 "*Value should be a number that specifies how much
|
|
1131 indentation the '%I' summary format specifier should provide per
|
|
1132 thread level. A message's `thread level' refers to the number of
|
|
1133 direct ancestors from the message to the oldest ancestor the
|
|
1134 message has that is in the current folder. For example, the
|
|
1135 first message of a thread is generally a message about a new
|
|
1136 topic, e.g. a message that is not a reply to some other message.
|
|
1137 Therefore it has no ancestor and would cause %I to generate no
|
|
1138 indentation. A reply to this message will be indented by the value
|
|
1139 of vm-summary-thread-indent-level. A reply to that reply will be
|
|
1140 indented twice the value of vm-summary-thread-indent-level.")
|
|
1141
|
|
1142 (defvar vm-thread-using-subject t
|
|
1143 "*Non-nil value causes VM to use the Subject header to thread messages.
|
|
1144 Messages with the same subject will be grouped together.
|
|
1145
|
|
1146 A nil value means VM will disregard the Subject header when
|
|
1147 threading messages.")
|
|
1148
|
|
1149 (defvar vm-summary-uninteresting-senders nil
|
|
1150 "*Non-nil value should be a regular expression that matches
|
|
1151 addresses that you don't consider interesting enough to
|
|
1152 appear in the summary. When such senders would be displayed by
|
|
1153 the %F or %f summary format specifiers VM will substitute the
|
|
1154 value of vm-summary-uninteresting-senders-arrow (default \"To:
|
|
1155 \") followed by what would be shown by the %T and %t specifiers
|
|
1156 respectively.")
|
|
1157
|
|
1158 (defvar vm-summary-uninteresting-senders-arrow "To: "
|
|
1159 "*String to display before the string that is displayed instead of an
|
|
1160 \"uninteresting\" sender. See vm-summary-uninteresting-senders.")
|
|
1161
|
|
1162 (defvar vm-auto-center-summary nil
|
|
1163 "*Value controls whether VM will keep the summary arrow vertically
|
|
1164 centered within the summary window. A value of t causes VM to always
|
|
1165 keep arrow centered. A value of nil means VM will never bother centering
|
|
1166 the arrow. A value that is not nil and not t causes VM to center the
|
|
1167 arrow only if the summary window is not the only existing window.")
|
|
1168
|
|
1169 (defvar vm-summary-subject-no-newlines t
|
|
1170 "*Non-nil value means VM should replace newlines with spaces in the subject
|
|
1171 displayed in the summary.")
|
|
1172
|
|
1173 (defvar vm-subject-ignored-prefix "^\\(re: *\\)+"
|
|
1174 "*Non-nil value should be a regular expression that matches
|
|
1175 strings at the beginning of the Subject header that you want VM to ignore
|
|
1176 when threading, sorting, marking, and killing messages by subject.
|
|
1177
|
|
1178 Matches are done case-insensitively.")
|
|
1179
|
|
1180 (defvar vm-subject-ignored-suffix "\\( (fwd)\\| \\)+$"
|
|
1181 "*Non-nil value should be a regular expression that matches
|
|
1182 strings at the end of the Subject header that you want VM to ignore
|
|
1183 when threading, sorting, marking and killing messages by subject.
|
|
1184
|
|
1185 Matches are done case-insensitively.")
|
|
1186
|
|
1187 (defvar vm-mutable-windows pop-up-windows
|
|
1188 "*This variable's value controls VM's window usage.
|
|
1189
|
|
1190 A non-nil value gives VM free run of the Emacs display; it will commandeer
|
|
1191 the entire screen for its purposes.
|
|
1192
|
|
1193 A value of nil restricts VM's window usage to the window from which
|
|
1194 it was invoked. VM will not create, delete, or use any other windows,
|
|
1195 nor will it resize its own window.")
|
|
1196
|
|
1197 (defvar vm-mutable-frames nil
|
|
1198 "*Non-nil value means VM is allowed to create and destroy frames
|
|
1199 to display and undisplay buffers.
|
|
1200
|
|
1201 VM can create a frame to display a buffer, and delete frame to
|
|
1202 undisplay a buffer. A nil value means VM should not create or
|
|
1203 delete frames.
|
|
1204
|
|
1205 This variable is _not_ an analogue of vm-mutable-windows. VM
|
|
1206 still might create frames if this variable is nil. If you set
|
|
1207 the vm-frame-per-* variables VM will still create frames. Using
|
|
1208 the vm-frame-per-* variables you have more control over when it
|
|
1209 happens.
|
|
1210
|
|
1211 Users should consider setting vm-frame-per-folder and
|
|
1212 vm-frame-per-composition and/or using the -other-frame commands
|
|
1213 instead of setting this variable. If vm-mutable-frames is set to t,
|
|
1214 then vm-mutable-windows should probably be set to nil so that you
|
|
1215 avoid splitting frames.
|
|
1216
|
|
1217 This variable does not apply to the VM commands whose
|
|
1218 names end in -other-frame, which always create a new frame.
|
|
1219
|
|
1220 This variable has no meaning if you're not running Emacs native
|
|
1221 under X Windows or some other window system that allows multiple
|
|
1222 Emacs frames.")
|
|
1223
|
|
1224 (defvar vm-frame-per-folder t
|
|
1225 "*Non-nil value causes the folder visiting commands to visit in a new frame.
|
|
1226 Nil means the commands will use the current frame. This variable
|
|
1227 does not apply to the VM commands whose names end in
|
|
1228 -other-frame, which always create a new frame.
|
|
1229
|
|
1230 This variable has no meaning if you're not running Emacs native
|
|
1231 under X Windows or some other window system that allows multiple
|
|
1232 Emacs frames.")
|
|
1233
|
|
1234 (defvar vm-frame-per-summary nil
|
|
1235 "*Non-nil value causes VM to display the folder summary in its own frame.
|
|
1236 Nil means the vm-summarize command will use the current frame.
|
|
1237 This variable does not apply to vm-summarize-other-frame, which
|
|
1238 always create a new frame.
|
|
1239
|
|
1240 This variable has no meaning if you're not running Emacs native
|
|
1241 under X Windows or some other window system that allows multiple
|
|
1242 Emacs frames.")
|
|
1243
|
|
1244 (defvar vm-frame-per-composition t
|
|
1245 "*Non-nil value causes the mail composition commands to open a new frame.
|
|
1246 Nil means the commands will use the current frame. This variable
|
|
1247 does not apply to the VM commands whose names end in
|
|
1248 -other-frame, which always create a new frame.
|
|
1249
|
|
1250 This variable has no meaning if you're not running Emacs native
|
|
1251 under X Windows or some other window system that allows multiple
|
|
1252 Emacs frames.")
|
|
1253
|
|
1254 (defvar vm-frame-per-edit t
|
|
1255 "*Non-nil value causes vm-edit-message to open a new frame.
|
|
1256 Nil means the vm-edit-message will use the current frame. This
|
|
1257 variable does not apply to vm-edit-message-other-frame, which
|
|
1258 always create a new frame.
|
|
1259
|
|
1260 This variable has no meaning if you're not running Emacs native
|
|
1261 under X Windows or some other window system that allows multiple
|
|
1262 Emacs frames.")
|
|
1263
|
|
1264 ;; #### Chuck, I know you don't like external package mods but
|
|
1265 ;; this one is an absolute travesty, and VM has a simply
|
|
1266 ;; abominable time between releases. If you don't at least give
|
|
1267 ;; the VM frames a special name, it makes it impossible for lots
|
|
1268 ;; of other things to work sensibly.
|
|
1269 (defvar vm-frame-parameter-alist
|
|
1270 (if (string-match "XEmacs" emacs-version)
|
|
1271 '((folder ((name . "VM")))))
|
|
1272 "*Non-nil value is an alist of types and lists of frame parameters.
|
|
1273 This list tells VM what frame parameters to associate with each
|
|
1274 new frame it creates of a specific type.
|
|
1275
|
|
1276 The alist should be of this form
|
|
1277
|
|
1278 ((SYMBOL PARAMLIST) (SYMBOL2 PARAMLIST2) ...)
|
|
1279
|
|
1280 SYMBOL must be one of `composition', `edit', `folder' or `summary'.
|
|
1281 It specifies the type of frame that the following PARAMLIST applies to.
|
|
1282
|
|
1283 `composition' specifies parameters for mail composition frames.
|
|
1284 `edit' specifies parameters for message edit frames
|
|
1285 (e.g. created by vm-edit-message-other-frame)
|
|
1286 `folder' specifies parameters for frames created by `vm' and the
|
|
1287 `vm-visit-' commands.
|
|
1288 `primary-folder' specifies parameters for the frame created by running
|
|
1289 `vm' without any arguments.
|
|
1290 `summary' specifies parameters for frames to display a summary buffer
|
|
1291 (e.g. created by vm-summarize-other-frame)
|
|
1292
|
|
1293 PARAMLIST is a list of pairs as described in the documentation for
|
|
1294 the function `make-frame'.
|
|
1295
|
|
1296 This variable has no effect on frames created as a result of
|
|
1297 having vm-mutable-frames set to non-nil.")
|
|
1298
|
|
1299 (defvar vm-search-other-frames t
|
|
1300 "*Non-nil means VM should search frames other than the selected frame
|
|
1301 when looking for a window that is already displaying a buffer that
|
|
1302 VM wants to display or undisplay.")
|
|
1303
|
|
1304 (defvar vm-use-toolbar
|
|
1305 '(next previous delete/undelete autofile file
|
|
1306 reply compose print visit quit nil help)
|
|
1307 "*Non-nil value causes VM to provide a toolbar interface.
|
|
1308 Value should be a list of symbols that will determine which
|
|
1309 toolbar buttons will appears and in what order. Valid symbol
|
|
1310 value within the list are:
|
|
1311
|
|
1312 autofile
|
|
1313 compose
|
|
1314 delete/undelete
|
|
1315 file
|
|
1316 help
|
|
1317 next
|
|
1318 previous
|
|
1319 print
|
|
1320 quit
|
|
1321 reply
|
|
1322 visit
|
|
1323 nil
|
|
1324
|
|
1325 If nil appears in the list, it should appear exactly once. All
|
|
1326 buttons after nil in the list will be displayed flushright in
|
|
1327 top/bottom toolbars and flush bottom in left/right toolbars.
|
|
1328
|
|
1329 This variable only has meaning under XEmacs 19.12 and beyond.
|
|
1330 See also vm-toolbar-orientation to control where the toolbar is placed.")
|
|
1331
|
|
1332 (defvar vm-toolbar-orientation 'left
|
|
1333 "*Value is a symbol that specifies where the VM toolbar is located.
|
|
1334 Legal values are `left', `right' `top' and `bottom'. Any other
|
|
1335 value will be interpreted as `top'.
|
|
1336
|
|
1337 This variable only has meaning under XEmacs 19.12 and beyond.")
|
|
1338
|
|
1339 (defvar vm-toolbar-pixmap-directory
|
|
1340 (expand-file-name (concat data-directory "vm/"))
|
|
1341 "*Value specifies the directory VM should find its toolbar pixmaps.")
|
|
1342
|
|
1343 (defvar vm-use-menus '(folder motion send mark label sort
|
|
1344 virtual undo dispose emacs nil help)
|
|
1345 "*Non-nil value causes VM to provide a menu interface.
|
|
1346 A value that is a list causes VM to install its own menubar.
|
|
1347 A value of 1 causes VM to install a \"VM\" item in the Emacs menubar.
|
|
1348
|
|
1349 If the value of vm-use-menus is a list, it should be a list of
|
|
1350 symbols. The symbols and the order that they are listed
|
|
1351 determine what menus will be in the menubar and how they are
|
|
1352 ordered. Valid symbols values are:
|
|
1353
|
|
1354 dispose
|
|
1355 emacs
|
|
1356 folder
|
|
1357 help
|
|
1358 label
|
|
1359 mark
|
|
1360 motion
|
|
1361 send
|
|
1362 sort
|
|
1363 undo
|
|
1364 virtual
|
|
1365 nil
|
|
1366
|
|
1367 If nil appears in the list, it should appear exactly once. All
|
|
1368 menus after nil in the list will be displayed flushright in
|
|
1369 menubar.
|
|
1370
|
|
1371 This variable only has meaning in Emacs environments where menus
|
|
1372 are provided, which usually means Emacs has to be running under a
|
|
1373 window system.")
|
|
1374
|
|
1375 (defvar vm-warp-mouse-to-new-frame nil
|
|
1376 "*Non-nil value causes VM to move the mouse cursor into newly created frames.
|
|
1377 This is useful to give the new frame the focus under some window managers
|
|
1378 that randomly place newly created frames.
|
|
1379
|
|
1380 Nil means don't move the mouse cursor.")
|
|
1381
|
|
1382 ;; if browse-url is around (always will be in XEmacs 19.14) use it;
|
|
1383 ;; otherwise do our own support.
|
|
1384 (if (boundp 'browse-url-browser-function)
|
|
1385 (defvaralias 'vm-url-browser 'browse-url-browser-function)
|
|
1386 (defvar vm-url-browser
|
|
1387 (cond ((fboundp 'w3-fetch-other-frame)
|
|
1388 'w3-fetch-other-frame)
|
|
1389 ((fboundp 'w3-fetch)
|
|
1390 'w3-fetch)
|
|
1391 (t 'vm-mouse-send-url-to-netscape))
|
|
1392 "*Non-nil value means VM should enable URL passing.
|
|
1393 This means that VM will search for URLs (Universal Resource
|
|
1394 Locators) in messages and make it possible for you to pass them
|
|
1395 to a World Wide Web browser.
|
|
1396
|
|
1397 Clicking mouse-2 on the URL will send it to the browser.
|
|
1398
|
|
1399 Clicking mouse-3 on the URL will pop up a menu of browsers and
|
|
1400 you can pick which one you want to use.
|
|
1401
|
|
1402 Moving point to a character within the URL and pressing RETURN
|
|
1403 will send the URL to the browser (Only in XEmacs).
|
|
1404
|
|
1405 If the value of vm-url-browser is a string, it should specify
|
|
1406 name of an external browser to run. The URL will be passed to
|
|
1407 the program as its first argument.
|
|
1408
|
|
1409 If the value of vm-url-browser is a symbol, if should specifiy a
|
|
1410 Lisp function to call. The URL will be passed to the program as
|
|
1411 its first and only argument. Use
|
|
1412
|
|
1413 (setq vm-url-browser 'vm-mouse-send-url-to-netscape)
|
|
1414
|
|
1415 for Netscape, and
|
|
1416
|
|
1417 (setq vm-url-browser 'vm-mouse-send-url-to-mosaic)
|
|
1418
|
|
1419 for Mosaic. The advantage of using them is that they will display
|
|
1420 an URL using on existing Mosaic or Netscape process, if possible.
|
|
1421
|
|
1422 A nil value means VM should not enable URL passing to browsers."))
|
|
1423
|
|
1424 (defvar vm-highlight-url-face 'bold-italic
|
|
1425 "*Non-nil value should be a face to use display URLs found in messages.
|
|
1426 Nil means don't highlight URLs.")
|
|
1427
|
|
1428 (defvar vm-url-search-limit 12000
|
|
1429 "*Non-nil numeric value tells VM how hard to search for URLs.
|
|
1430 The number specifies the maximum message size in characters that
|
|
1431 VM will search for URLs. For message larger than this value, VM
|
|
1432 will search from the beginning of the mssage to a point
|
|
1433 vm-url-search-limit / 2 characters into the message. Then VM will
|
|
1434 search from a point vm-url-search-limit / 2 characters from the
|
|
1435 end of the message to the end of message.")
|
|
1436
|
|
1437 (defvar vm-display-xfaces nil
|
|
1438 "*Non-nil means display images as specifies in X-Face headers.
|
|
1439 This requires at least XEmacs 19.12 with native xface support compiled in.")
|
|
1440
|
|
1441 (defvar vm-startup-with-summary t
|
|
1442 "*Value tells VM whether to generate a summary when a folder is visited.
|
|
1443 Nil means don't automatically generate a summary.
|
|
1444
|
|
1445 A value of t means always generate a summary.
|
|
1446
|
|
1447 A positive numeric value N means only generate a summary if there
|
|
1448 are N or more messages.
|
|
1449
|
|
1450 A negative numeric value -N means only generate a summary if
|
|
1451 there are N or less messages.")
|
|
1452
|
|
1453 (defvar vm-follow-summary-cursor t
|
|
1454 "*Non-nil value causes VM to select the message under the cursor in the
|
|
1455 summary window before executing commands that operate on the current message.
|
|
1456 This occurs only when the summary buffer window is the selected window.")
|
|
1457
|
|
1458 (defvar vm-jump-to-new-messages t
|
|
1459 "*Non-nil value causes VM to jump to the first new message
|
|
1460 whenever such messages arrive in a folder or the first time a
|
|
1461 folder is visited.
|
|
1462
|
|
1463 See also vm-jump-to-unread-messages.")
|
|
1464
|
|
1465 (defvar vm-jump-to-unread-messages t
|
|
1466 "*Non-nil value causes VM to jump to the first unread message
|
|
1467 whenever such messages arrive in a folder or the first time a
|
|
1468 folder is visited. New messages are considered unread in this
|
|
1469 context so new messages will be jumped to as well.
|
|
1470
|
|
1471 The value of vm-jump-to-new-messages takes precedence over the
|
|
1472 setting of this variable. So if there are unread messages and
|
|
1473 new messages VM will jump to the first new message, even if an
|
|
1474 unread message appears before it in the folder, provided
|
|
1475 vm-jump-to-new-messages is non-nil.")
|
|
1476
|
|
1477 (defvar vm-skip-deleted-messages t
|
|
1478 "*Non-nil value causes VM's `n' and 'p' commands to skip over
|
|
1479 deleted messages. A value of t causes deleted messages to always be skipped.
|
|
1480 A value that is not nil and not t causes deleted messages to be skipped only
|
|
1481 if there are other messages that are not flagged for deletion in the desired
|
|
1482 direction of motion.")
|
|
1483
|
|
1484 (defvar vm-skip-read-messages nil
|
|
1485 "*Non-nil value causes VM's `n' and `p' commands to skip over
|
|
1486 messages that have already been read, in favor of new or unread messages.
|
|
1487 A value of t causes read messages to always be skipped. A value that is
|
|
1488 not nil and not t causes read messages to be skipped only if there are
|
|
1489 unread messages in the desired direction of motion.")
|
|
1490
|
|
1491 (defvar vm-move-after-deleting nil
|
|
1492 "*Non-nil value causes VM's `d' command to automatically invoke
|
|
1493 vm-next-message or vm-previous-message after deleting, to move
|
|
1494 past the deleted messages. A value of t means motion should
|
|
1495 honor the value of vm-circular-folders. A value that is not t
|
|
1496 and not nil means that motion should be done as if
|
|
1497 vm-circular-folders is set to nil.")
|
|
1498
|
|
1499 (defvar vm-move-after-undeleting nil
|
|
1500 "*Non-nil value causes VM's `u' command to automatically invoke
|
|
1501 vm-next-message or vm-previous-message after undeleting, to move
|
|
1502 past the undeleted messages. A value of t means motion should
|
|
1503 honor the value of vm-circular-folders. A value that is not t
|
|
1504 and not nil means that motion should be done as if
|
|
1505 vm-circular-folders is set to nil.")
|
|
1506
|
|
1507 (defvar vm-delete-after-saving nil
|
|
1508 "*Non-nil value causes VM automatically to mark messages for deletion
|
|
1509 after successfully saving them to a folder.")
|
|
1510
|
|
1511 (defvar vm-delete-after-archiving nil
|
|
1512 "*Non-nil value causes VM automatically to mark messages for deletion
|
|
1513 after successfully auto-archiving them with the vm-auto-archive-messages
|
|
1514 command.")
|
|
1515
|
|
1516 (defvar vm-delete-after-bursting nil
|
|
1517 "*Non-nil value causes VM automatically to mark a message for deletion
|
|
1518 after it has been successfully burst by the vm-burst-digest command.")
|
|
1519
|
|
1520 (defvar vm-circular-folders 0
|
|
1521 "*Value determines whether VM folders will be considered circular by
|
|
1522 various commands. `Circular' means VM will wrap from the end of the folder
|
|
1523 to the start and vice versa when moving the message pointer, or deleting,
|
|
1524 undeleting or saving messages before or after the current message.
|
|
1525
|
|
1526 A value of t causes all VM commands to consider folders circular.
|
|
1527
|
|
1528 A value of nil causes all of VM commands to signal an error if the start
|
|
1529 or end of the folder would have to be passed to complete the command.
|
|
1530 For movement commands, this occurs after the message pointer has been
|
|
1531 moved as far as possible in the specified direction. For other commands,
|
|
1532 the error occurs before any part of the command has been executed, i.e.
|
|
1533 no deletions, saves, etc. will be done unless they can be done in their
|
|
1534 entirety.
|
|
1535
|
|
1536 A value that is not nil and not t causes only VM's movement commands to
|
|
1537 consider folders circular. Saves, deletes and undelete commands will
|
|
1538 behave the same as if the value is nil.")
|
|
1539
|
|
1540 (defvar vm-search-using-regexps nil
|
|
1541 "*Non-nil value causes VM's search command to interpret user input as a
|
|
1542 regular expression instead of as a literal string.")
|
|
1543
|
|
1544 (defvar vm-move-messages-physically nil
|
|
1545 "*Non-nil value causes VM's commands that change the message order
|
|
1546 of a folder to always move the physical messages involved and not
|
|
1547 just change the presentation order. Nil means that commands just
|
|
1548 change the order in which VM displays messages and leave the
|
|
1549 folder itself undisturbed.")
|
|
1550
|
|
1551 (defvar vm-edit-message-mode 'text-mode
|
|
1552 "*Major mode to use when editing messages in VM.")
|
|
1553
|
|
1554 (defvar vm-print-command lpr-command
|
|
1555 "*Command VM uses to print messages.")
|
|
1556
|
|
1557 (defvar vm-print-command-switches lpr-switches
|
|
1558 "*Command line flags passed to the command named by vm-print-command.
|
|
1559 VM uses vm-print-command to print messages.")
|
|
1560
|
|
1561 (defvar vm-berkeley-mail-compatibility
|
|
1562 (memq system-type '(berkeley-unix netbsd))
|
|
1563 "*Non-nil means to read and write BSD Mail(1) style Status: headers.
|
|
1564 This makes sense if you plan to use VM to read mail archives created by
|
|
1565 Mail.")
|
|
1566
|
|
1567 (defvar vm-strip-reply-headers nil
|
|
1568 "*Non-nil value causes VM to strip away all comments and extraneous text
|
|
1569 from the headers generated in reply messages. If you use the \"fakemail\"
|
2
|
1570 program as distributed with Emacs, you probably want to set this variable
|
0
|
1571 to t, because as of Emacs v18.52 \"fakemail\" could not handle unstripped
|
|
1572 headers.")
|
|
1573
|
|
1574 (defvar vm-inhibit-startup-message nil
|
|
1575 "*Non-nil causes VM not to display its copyright notice, disclaimers
|
|
1576 etc. when started in the usual way.")
|
|
1577
|
|
1578 (defvar vm-select-new-message-hook nil
|
|
1579 "*List of hook functions called every time a message with the 'new'
|
|
1580 attribute is made to be the current message. When the hooks are run the
|
|
1581 current buffer will be the folder containing the message and the
|
|
1582 start and end of the message will be bracketed by (point-min) and
|
|
1583 (point-max).")
|
|
1584
|
|
1585 (defvar vm-select-unread-message-hook nil
|
|
1586 "*List of hook functions called every time a message with the 'unread'
|
|
1587 attribute is made to be the current message. When the hooks are run the
|
|
1588 current buffer will be the folder containing the message and the
|
|
1589 start and end of the message will be bracketed by (point-min) and
|
|
1590 (point-max).")
|
|
1591
|
|
1592 (defvar vm-select-message-hook nil
|
|
1593 "*List of hook functions called every time a message
|
|
1594 is made to be the current message. When the hooks are run the
|
|
1595 current buffer will be the folder containing the message and the
|
|
1596 start and end of the message will be bracketed by (point-min) and
|
|
1597 (point-max).")
|
|
1598
|
|
1599 (defvar vm-arrived-message-hook nil
|
|
1600 "*List of hook functions called once for each message gathered from
|
|
1601 the system mail spool, or from another folder with
|
|
1602 vm-get-new-mail, or from a digest with vm-burst-digest. When the
|
|
1603 hooks are run the current buffer will be the folder containing
|
|
1604 the message and the start and end of the message will be
|
|
1605 bracketed by (point-min) and (point-max).")
|
|
1606
|
|
1607 (defvar vm-arrived-messages-hook nil
|
|
1608 "*List of hook functions called after VM has gathered a group of
|
|
1609 messages from the system mail spool, or from another folder with
|
|
1610 vm-get-new-mail, or from a digest with vm-burst-digest. When the
|
|
1611 hooks are run, the new messages will have already been added to
|
|
1612 the message list but may not yet appear in the summary. When the
|
|
1613 hooks are run the current buffer will be the folder containing
|
|
1614 the messages.")
|
|
1615
|
|
1616 (defvar vm-reply-hook nil
|
|
1617 "*List of hook functions to be run after a Mail mode
|
|
1618 composition buffer has been created for a reply. VM runs this
|
|
1619 hook and then runs vm-mail-mode-hook before leaving the user in
|
|
1620 the Mail mode buffer.")
|
|
1621
|
|
1622 (defvar vm-forward-message-hook nil
|
|
1623 "*List of hook functions to be run after a Mail mode
|
|
1624 composition buffer has been created to forward a message. VM
|
|
1625 runs this hook and then runs vm-mail-mode-hook before leaving the
|
|
1626 user in the Mail mode buffer.")
|
|
1627
|
|
1628 (defvar vm-resend-bounced-message-hook nil
|
|
1629 "*List of hook functions to be run after a Mail mode
|
|
1630 composition buffer has been created to resend a bounced message.
|
|
1631 VM runs this hook and then runs vm-mail-mode-hook before leaving
|
|
1632 the user in the Mail mode buffer.")
|
|
1633
|
|
1634 (defvar vm-resend-message-hook nil
|
|
1635 "*List of hook functions to be run after a Mail mode
|
|
1636 composition buffer has been created to resend a message.
|
|
1637 VM runs this hook and then runs vm-mail-mode-hook before leaving
|
|
1638 the user in the Mail mode buffer.")
|
|
1639
|
|
1640 (defvar vm-send-digest-hook nil
|
|
1641 "*List of hook functions to be run after a Mail mode
|
|
1642 composition buffer has been created to send a digest.
|
|
1643 VM runs this hook and then runs vm-mail-mode-hook before leaving
|
|
1644 the user in the Mail mode buffer.")
|
|
1645
|
|
1646 (defvar vm-mail-hook nil
|
|
1647 "*List of hook functions to be run after a Mail mode
|
|
1648 composition buffer has been created to send a non specialized
|
|
1649 message, i.e. a message that is not a reply, forward, digest,
|
|
1650 etc. VM runs this hook and then runs vm-mail-mode-hook before
|
|
1651 leaving the user in the Mail mode buffer.")
|
|
1652
|
|
1653 (defvar vm-summary-update-hook nil
|
|
1654 "*List of hook functions called just after VM updates an existing
|
|
1655 entry a folder summary.")
|
|
1656
|
|
1657 (defvar vm-summary-redo-hook nil
|
|
1658 "*List of hook functions called just after VM adds or deletes
|
|
1659 entries from a folder summary.")
|
|
1660
|
|
1661 (defvar vm-visit-folder-hook nil
|
|
1662 "*List of hook functions called just after VM visits a folder.
|
|
1663 It doesn't matter if the folder buffer already exists, this hook
|
|
1664 is run each time vm or vm-visit-folder is called interactively.
|
|
1665 It is NOT run after vm-mode is called.")
|
|
1666
|
|
1667 (defvar vm-retrieved-spooled-mail-hook nil
|
|
1668 "*List of hook functions called just after VM has retrieved
|
|
1669 a group of messages from your system mailbox(es). When these
|
|
1670 hooks are run, the messages have been added to the folder buffer
|
|
1671 but not the message list or summary. When the hooks are run, the
|
|
1672 current buffer will be the folder where the messages were
|
|
1673 incorporated.")
|
|
1674
|
|
1675 (defvar vm-edit-message-hook nil
|
|
1676 "*List of hook functions to be run just before a message is edited.
|
|
1677 This is the last thing vm-edit-message does before leaving the user
|
|
1678 in the edit buffer.")
|
|
1679
|
|
1680 (defvar vm-mail-mode-hook nil
|
|
1681 "*List of hook functions to be run after a Mail mode
|
|
1682 composition buffer has been created. This is the last thing VM
|
|
1683 does before leaving the user in the Mail mode buffer.")
|
|
1684
|
|
1685 (defvar vm-mode-hook nil
|
|
1686 "*List of hook functions to run when a buffer enters vm-mode.
|
|
1687 These hook functions should generally be used to set key bindings
|
|
1688 and local variables.")
|
|
1689
|
|
1690 (defvar vm-mode-hooks nil
|
|
1691 "*Old name for vm-mode-hook.
|
|
1692 Supported for backward compatibility.
|
|
1693 You should use the new name.")
|
|
1694
|
|
1695 (defvar vm-summary-mode-hook nil
|
|
1696 "*List of hook functions to run when a VM summary buffer is created.
|
|
1697 The current buffer will be that buffer when the hooks are run.")
|
|
1698
|
|
1699 (defvar vm-summary-mode-hooks nil
|
|
1700 "*Old name for vm-summary-mode-hook.
|
|
1701 Supported for backward compatibility.
|
|
1702 You should use the new name.")
|
|
1703
|
|
1704 (defvar vm-virtual-mode-hook nil
|
|
1705 "*List of hook functions to run when a VM virtual folder buffer is created.
|
|
1706 The current buffer will be that buffer when the hooks are run.")
|
|
1707
|
|
1708 (defvar vm-quit-hook nil
|
|
1709 "*List of hook functions to run when you quit VM.
|
|
1710 This applies to any VM quit command.")
|
|
1711
|
|
1712 (defvar vm-summary-pointer-update-hook nil
|
|
1713 "*List of hook functions to run when VM summary pointer is updated.
|
|
1714 When the hooks are run, the current buffer will be the summary buffer.")
|
|
1715
|
|
1716 (defvar vm-display-buffer-hook nil
|
|
1717 "*List of hook functions that are run every time VM wants to
|
|
1718 display a buffer. When the hooks are run the current buffer will
|
|
1719 be the buffer that VM wants to display. The hooks are expected
|
|
1720 to select a window and VM will display the buffer in that
|
|
1721 window.
|
|
1722
|
|
1723 If you use display hooks, you should not use VM's builtin window
|
|
1724 configuration system as the result is likely to be confusing.")
|
|
1725
|
|
1726 (defvar vm-undisplay-buffer-hook nil
|
|
1727 "*List of hook functions that are run every time VM wants to
|
|
1728 remove a buffer from the display. When the hooks are run the
|
|
1729 current buffer will be the buffer that VM wants to disappear.
|
|
1730 The hooks are expected to do the work of removing the buffer from
|
|
1731 the display. The hook functions should not kill the buffer.
|
|
1732
|
|
1733 If you use undisplay hooks, you should not use VM's builtin
|
|
1734 window configuration system as the result is likely to be
|
|
1735 confusing.")
|
|
1736
|
|
1737 (defvar vm-iconify-frame-hook nil
|
|
1738 "*List of hook functions that are run whenever VM iconifies a frame.")
|
|
1739
|
|
1740 (defvar vm-menu-setup-hook nil
|
|
1741 "*List of hook function that are run just after all menus are initialized.")
|
|
1742
|
|
1743 (defvar mail-yank-hooks nil
|
|
1744 "Hooks called after a message is yanked into a mail composition.
|
|
1745
|
|
1746 (This hook is deprecated, you should use mail-citation-hook instead.)
|
|
1747
|
|
1748 Value is a list of functions to be run.
|
|
1749 Each hook function can find the newly yanked message between point and mark.
|
|
1750 Each hook function should return with point and mark around the yanked message.
|
|
1751
|
|
1752 See the documentation for vm-yank-message to see when VM will run
|
|
1753 these hooks.")
|
|
1754
|
|
1755 (defvar mail-citation-hook nil
|
|
1756 "*Hook for modifying a citation just inserted in the mail buffer.
|
|
1757 Each hook function can find the citation between (point) and (mark t).
|
|
1758 And each hook function should leave point and mark around the citation
|
|
1759 text as modified.
|
|
1760
|
|
1761 If this hook is entirely empty (nil), a default action is taken
|
|
1762 instead of no action.")
|
|
1763
|
|
1764 (defvar mail-default-headers nil
|
|
1765 "*A string containing header lines, to be inserted in outgoing messages.
|
|
1766 It is inserted before you edit the message,
|
|
1767 so you can edit or delete these lines.")
|
|
1768
|
|
1769 (defvar mail-signature nil
|
|
1770 "*Text inserted at end of mail buffer when a message is initialized.
|
|
1771 If t, it means to insert the contents of the file `~/.signature'.")
|
|
1772
|
|
1773 (defvar vm-rename-current-buffer-function nil
|
|
1774 "*Non-nil value should be a function to call to rename a buffer.
|
|
1775 Value should be something that can be passed to `funcall'. If
|
|
1776 this variable is non-nil, VM will use this function instead of
|
|
1777 its own buffer renaming code. The buffer to be renamed will be
|
|
1778 the current buffer when the function is called.")
|
|
1779
|
|
1780 (defvar mode-popup-menu nil
|
|
1781 "The mode-specific popup menu. Automatically buffer local.
|
|
1782 By default, when you press mouse-3 in VM, this menu is popped up.")
|
|
1783 (make-variable-buffer-local 'mode-popup-menu)
|
|
1784
|
|
1785 (defvar vm-movemail-program "movemail"
|
|
1786 "*Name of program to use to move mail from the system spool
|
|
1787 to another location. Normally this should be the movemail program
|
|
1788 distributed with Emacs.")
|
|
1789
|
|
1790 (defvar vm-netscape-program "netscape"
|
|
1791 "*Name of program to use to run Netscape.
|
|
1792 vm-mouse-send-url-to-netscape uses this.")
|
|
1793
|
|
1794 (defvar vm-mosaic-program "Mosaic"
|
|
1795 "*Name of program to use to run Mosaic.
|
|
1796 vm-mouse-send-url-to-mosaic uses this.")
|
|
1797
|
|
1798 (defvar vm-tale-is-an-idiot nil
|
|
1799 "*Non-nil value causes vm-mail-send to check multi-line recipient
|
|
1800 headers of outbound mail for lines that don't end with a
|
|
1801 comma. If such a line is found, an error is signaled and the
|
|
1802 mail is not sent.")
|
|
1803
|
|
1804 (defvar vm-maintainer-address "bug-vm@uunet.uu.net"
|
|
1805 "Where to send VM bug reports.")
|
|
1806
|
|
1807 (defvar vm-mode-map
|
|
1808 (let ((map (make-sparse-keymap)))
|
|
1809 ;; unneeded now that VM buffers all have buffer-read-only == t.
|
|
1810 ;; (suppress-keymap map)
|
|
1811 (define-key map "h" 'vm-summarize)
|
|
1812 (define-key map "\M-n" 'vm-next-unread-message)
|
|
1813 (define-key map "\M-p" 'vm-previous-unread-message)
|
|
1814 (define-key map "n" 'vm-next-message)
|
|
1815 (define-key map "p" 'vm-previous-message)
|
|
1816 (define-key map "N" 'vm-next-message-no-skip)
|
|
1817 (define-key map "P" 'vm-previous-message-no-skip)
|
|
1818 (define-key map "\C-\M-n" 'vm-move-message-forward)
|
|
1819 (define-key map "\C-\M-p" 'vm-move-message-backward)
|
|
1820 (define-key map "\t" 'vm-goto-message-last-seen)
|
|
1821 (define-key map "\r" 'vm-goto-message)
|
|
1822 (define-key map "^" 'vm-goto-parent-message)
|
|
1823 (define-key map "t" 'vm-expose-hidden-headers)
|
|
1824 (define-key map " " 'vm-scroll-forward)
|
|
1825 (define-key map "b" 'vm-scroll-backward)
|
|
1826 (define-key map "\C-?" 'vm-scroll-backward)
|
|
1827 (define-key map "d" 'vm-delete-message)
|
|
1828 (define-key map "\C-d" 'vm-delete-message-backward)
|
|
1829 (define-key map "u" 'vm-undelete-message)
|
|
1830 (define-key map "U" 'vm-unread-message)
|
|
1831 (define-key map "e" 'vm-edit-message)
|
|
1832 (define-key map "a" 'vm-set-message-attributes)
|
|
1833 (define-key map "j" 'vm-discard-cached-data)
|
|
1834 (define-key map "k" 'vm-kill-subject)
|
|
1835 (define-key map "f" 'vm-followup)
|
|
1836 (define-key map "F" 'vm-followup-include-text)
|
|
1837 (define-key map "r" 'vm-reply)
|
|
1838 (define-key map "R" 'vm-reply-include-text)
|
|
1839 (define-key map "\M-r" 'vm-resend-bounced-message)
|
|
1840 (define-key map "B" 'vm-resend-message)
|
|
1841 (define-key map "z" 'vm-forward-message)
|
|
1842 (define-key map "c" 'vm-continue-composing-message)
|
|
1843 (define-key map "@" 'vm-send-digest)
|
|
1844 (define-key map "*" 'vm-burst-digest)
|
|
1845 (define-key map "m" 'vm-mail)
|
|
1846 (define-key map "g" 'vm-get-new-mail)
|
|
1847 (define-key map "G" 'vm-sort-messages)
|
|
1848 (define-key map "v" 'vm-visit-folder)
|
|
1849 (define-key map "s" 'vm-save-message)
|
|
1850 (define-key map "w" 'vm-save-message-sans-headers)
|
|
1851 (define-key map "A" 'vm-auto-archive-messages)
|
|
1852 (define-key map "S" 'vm-save-folder)
|
|
1853 (define-key map "|" 'vm-pipe-message-to-command)
|
|
1854 (define-key map "#" 'vm-expunge-folder)
|
|
1855 (define-key map "q" 'vm-quit)
|
|
1856 (define-key map "x" 'vm-quit-no-change)
|
|
1857 (define-key map "i" 'vm-iconify-frame)
|
|
1858 (define-key map "?" 'vm-help)
|
|
1859 (define-key map "\C-_" 'vm-undo)
|
|
1860 (define-key map "\C-xu" 'vm-undo)
|
|
1861 (define-key map "!" 'shell-command)
|
|
1862 (define-key map "<" 'vm-beginning-of-message)
|
|
1863 (define-key map ">" 'vm-end-of-message)
|
|
1864 (define-key map "\M-s" 'vm-isearch-forward)
|
|
1865 (define-key map "=" 'vm-summarize)
|
|
1866 (define-key map "L" 'vm-load-init-file)
|
|
1867 (define-key map "l" (make-sparse-keymap))
|
|
1868 (define-key map "la" 'vm-add-message-labels)
|
|
1869 (define-key map "ld" 'vm-delete-message-labels)
|
|
1870 (define-key map "V" (make-sparse-keymap))
|
|
1871 (define-key map "VV" 'vm-visit-virtual-folder)
|
|
1872 (define-key map "VC" 'vm-create-virtual-folder)
|
|
1873 (define-key map "VA" 'vm-apply-virtual-folder)
|
|
1874 (define-key map "VM" 'vm-toggle-virtual-mirror)
|
|
1875 (define-key map "V?" 'vm-virtual-help)
|
|
1876 (define-key map "M" (make-sparse-keymap))
|
|
1877 (define-key map "MN" 'vm-next-command-uses-marks)
|
|
1878 (define-key map "Mn" 'vm-next-command-uses-marks)
|
|
1879 (define-key map "MM" 'vm-mark-message)
|
|
1880 (define-key map "MU" 'vm-unmark-message)
|
|
1881 (define-key map "Mm" 'vm-mark-all-messages)
|
|
1882 (define-key map "Mu" 'vm-clear-all-marks)
|
|
1883 (define-key map "MC" 'vm-mark-matching-messages)
|
|
1884 (define-key map "Mc" 'vm-unmark-matching-messages)
|
|
1885 (define-key map "MT" 'vm-mark-thread-subtree)
|
|
1886 (define-key map "Mt" 'vm-unmark-thread-subtree)
|
|
1887 (define-key map "MS" 'vm-mark-messages-same-subject)
|
|
1888 (define-key map "Ms" 'vm-unmark-messages-same-subject)
|
|
1889 (define-key map "MA" 'vm-mark-messages-same-author)
|
|
1890 (define-key map "Ma" 'vm-unmark-messages-same-author)
|
|
1891 (define-key map "M?" 'vm-mark-help)
|
|
1892 (define-key map "W" (make-sparse-keymap))
|
|
1893 (define-key map "WW" 'vm-apply-window-configuration)
|
|
1894 (define-key map "WS" 'vm-save-window-configuration)
|
|
1895 (define-key map "WD" 'vm-delete-window-configuration)
|
|
1896 (define-key map "W?" 'vm-window-help)
|
|
1897 (define-key map "\C-t" 'vm-toggle-threads-display)
|
|
1898 (define-key map "\C-x\C-s" 'vm-save-buffer)
|
|
1899 (define-key map "\C-x\C-w" 'vm-write-file)
|
|
1900 (define-key map "\C-x\C-q" 'vm-toggle-read-only)
|
|
1901 (define-key map "%" 'vm-change-folder-type)
|
|
1902 (define-key map "\M-C" 'vm-show-copying-restrictions)
|
|
1903 (define-key map "\M-W" 'vm-show-no-warranty)
|
|
1904 ;; suppress-keymap provides these, but now that we don't use
|
|
1905 ;; suppress-keymap anymore...
|
|
1906 (define-key map "0" 'digit-argument)
|
|
1907 (define-key map "1" 'digit-argument)
|
|
1908 (define-key map "2" 'digit-argument)
|
|
1909 (define-key map "3" 'digit-argument)
|
|
1910 (define-key map "4" 'digit-argument)
|
|
1911 (define-key map "5" 'digit-argument)
|
|
1912 (define-key map "6" 'digit-argument)
|
|
1913 (define-key map "7" 'digit-argument)
|
|
1914 (define-key map "8" 'digit-argument)
|
|
1915 (define-key map "9" 'digit-argument)
|
|
1916 (define-key map "-" 'negative-argument)
|
|
1917 map )
|
|
1918 "Keymap for VM mode.")
|
|
1919
|
|
1920 (defvar vm-summary-mode-map vm-mode-map
|
|
1921 "Keymap for VM Summary mode")
|
|
1922
|
|
1923 (defvar vm-mail-mode-map
|
|
1924 (let ((map (make-sparse-keymap)))
|
|
1925 (define-key map "\C-c\C-v" vm-mode-map)
|
|
1926 (define-key map "\C-c\C-y" 'vm-yank-message)
|
|
1927 (define-key map "\C-c\C-s" 'vm-mail-send)
|
|
1928 (define-key map "\C-c\C-c" 'vm-mail-send-and-exit)
|
|
1929 (define-key map "\C-c\C-w" 'mail-signature)
|
|
1930 (define-key map "\C-c\C-t" 'mail-text)
|
|
1931 (define-key map "\C-c\C-q" 'mail-fill-yanked-message)
|
|
1932 (define-key map "\C-c\C-f\C-t" 'mail-to)
|
|
1933 (define-key map "\C-c\C-f\C-b" 'mail-bcc)
|
|
1934 (define-key map "\C-c\C-f\C-s" 'mail-subject)
|
|
1935 (define-key map "\C-c\C-f\C-c" 'mail-cc)
|
|
1936 (define-key map "\C-c\C-f\C-f" 'mail-fcc)
|
|
1937 map )
|
|
1938 "Keymap for VM Mail mode buffers.")
|
|
1939
|
|
1940 (defvar vm-edit-message-map
|
|
1941 (let ((map (make-sparse-keymap)))
|
|
1942 (define-key map "\C-c\C-v" vm-mode-map)
|
|
1943 (define-key map "\C-c\e" 'vm-edit-message-end)
|
|
1944 (define-key map "\C-c\C-c" 'vm-edit-message-end)
|
|
1945 (define-key map "\C-c\C-]" 'vm-edit-message-abort)
|
|
1946 map )
|
|
1947 "Keymap for the buffers created by VM's vm-edit-message command.")
|
|
1948
|
|
1949 (defvar vm-folder-history nil
|
|
1950 "List of folders visited this Emacs session.")
|
|
1951
|
|
1952 ;; internal vars
|
|
1953 (defvar vm-folder-type nil)
|
|
1954 (make-variable-buffer-local 'vm-folder-type)
|
|
1955 (defvar vm-message-list nil)
|
|
1956 (make-variable-buffer-local 'vm-message-list)
|
|
1957 (defvar vm-virtual-folder-definition nil)
|
|
1958 (make-variable-buffer-local 'vm-virtual-folder-definition)
|
|
1959 (defvar vm-virtual-buffers nil)
|
|
1960 (make-variable-buffer-local 'vm-virtual-buffers)
|
|
1961 (defvar vm-real-buffers nil)
|
|
1962 (make-variable-buffer-local 'vm-real-buffers)
|
|
1963 (defvar vm-message-pointer nil)
|
|
1964 (make-variable-buffer-local 'vm-message-pointer)
|
|
1965 (defvar vm-message-order-changed nil)
|
|
1966 (make-variable-buffer-local 'vm-message-order-changed)
|
|
1967 (defvar vm-message-order-header-present nil)
|
|
1968 (make-variable-buffer-local 'vm-message-order-header-present)
|
|
1969 (defvar vm-last-message-pointer nil)
|
|
1970 (make-variable-buffer-local 'vm-last-message-pointer)
|
|
1971 (defvar vm-mail-buffer nil)
|
|
1972 (make-variable-buffer-local 'vm-mail-buffer)
|
|
1973 (defvar vm-summary-buffer nil)
|
|
1974 (make-variable-buffer-local 'vm-summary-buffer)
|
|
1975 (defvar vm-summary-pointer nil)
|
|
1976 (make-variable-buffer-local 'vm-summary-pointer)
|
|
1977 (defvar vm-system-state nil)
|
|
1978 (make-variable-buffer-local 'vm-system-state)
|
|
1979 (defvar vm-undo-record-list nil)
|
|
1980 (make-variable-buffer-local 'vm-undo-record-list)
|
|
1981 (defvar vm-saved-undo-record-list nil)
|
|
1982 (make-variable-buffer-local 'vm-saved-undo-record-list)
|
|
1983 (defvar vm-undo-record-pointer nil)
|
|
1984 (make-variable-buffer-local 'vm-undo-record-pointer)
|
|
1985 (defvar vm-last-save-folder nil)
|
|
1986 (make-variable-buffer-local 'vm-last-save-folder)
|
|
1987 (defvar vm-last-written-file nil)
|
|
1988 (make-variable-buffer-local 'vm-last-written-file)
|
|
1989 (defvar vm-last-visit-folder nil)
|
|
1990 (defvar vm-last-pipe-command nil)
|
|
1991 (make-variable-buffer-local 'vm-last-pipe-command)
|
|
1992 (defvar vm-messages-not-on-disk 0)
|
|
1993 (make-variable-buffer-local 'vm-messages-not-on-disk)
|
|
1994 (defvar vm-totals nil)
|
|
1995 (make-variable-buffer-local 'vm-totals)
|
|
1996 (defvar vm-modification-counter 0)
|
|
1997 (make-variable-buffer-local 'vm-modification-counter)
|
|
1998 (defvar vm-flushed-modification-counter nil)
|
|
1999 (make-variable-buffer-local 'vm-flushed-modification-counter)
|
|
2000 (defvar vm-messages-needing-summary-update nil)
|
|
2001 (defvar vm-buffers-needing-display-update nil)
|
|
2002 (defvar vm-numbering-redo-start-point nil)
|
|
2003 (make-variable-buffer-local 'vm-numbering-redo-start-point)
|
|
2004 (defvar vm-numbering-redo-end-point nil)
|
|
2005 (make-variable-buffer-local 'vm-numbering-redo-end-point)
|
|
2006 (defvar vm-summary-redo-start-point nil)
|
|
2007 (make-variable-buffer-local 'vm-summary-redo-start-point)
|
|
2008 (defvar vm-need-summary-pointer-update nil)
|
|
2009 (make-variable-buffer-local 'vm-need-summary-pointer-update)
|
|
2010 (defvar vm-thread-obarray nil)
|
|
2011 (make-variable-buffer-local 'vm-thread-obarray)
|
|
2012 (defvar vm-thread-subject-obarray nil)
|
|
2013 (make-variable-buffer-local 'vm-thread-subject-obarray)
|
|
2014 (defvar vm-label-obarray nil)
|
|
2015 (make-variable-buffer-local 'vm-label-obarray)
|
|
2016 (defvar vm-block-new-mail nil)
|
|
2017 (make-variable-buffer-local 'vm-block-new-mail)
|
|
2018 (defvar vm-saved-buffer-modified-p nil)
|
|
2019 (make-variable-buffer-local 'vm-saved-buffer-modified-p)
|
|
2020 (defvar vm-kept-mail-buffers nil)
|
|
2021 (defvar vm-inhibit-write-file-hook nil)
|
|
2022 (defvar vm-chop-full-name-function 'vm-choose-chop-full-name-function)
|
|
2023 (defvar vm-session-beginning t)
|
|
2024 (defvar vm-init-file-loaded nil)
|
|
2025 (defvar vm-window-configurations nil)
|
|
2026 (defvar vm-window-configuration nil)
|
|
2027 (defvar vm-message-id-number 0)
|
|
2028 (defconst vm-spool-directory
|
|
2029 (or (and (boundp 'rmail-spool-directory) rmail-spool-directory)
|
|
2030 "/usr/spool/mail/"))
|
|
2031 (defconst vm-content-length-search-regexp "^Content-Length:.*\n\\|\\(\n\n\\)")
|
|
2032 (defconst vm-content-length-header "Content-Length:")
|
|
2033 (defconst vm-attributes-header-regexp
|
|
2034 "^X-VM-\\(Attributes\\|v5-Data\\):\\(.*\n\\([ \t].*\n\\)*\\)")
|
|
2035 (defconst vm-attributes-header "X-VM-v5-Data:")
|
|
2036 (defconst vm-message-order-header-regexp "^X-VM-Message-Order:")
|
|
2037 (defconst vm-message-order-header "X-VM-Message-Order:")
|
|
2038 (defconst vm-bookmark-header-regexp "^X-VM-Bookmark:")
|
|
2039 (defconst vm-bookmark-header "X-VM-Bookmark:")
|
|
2040 (defconst vm-summary-header-regexp "^X-VM-Summary-Format:")
|
|
2041 (defconst vm-summary-header "X-VM-Summary-Format:")
|
|
2042 (defconst vm-vheader-header-regexp "^X-VM-VHeader:")
|
|
2043 (defconst vm-vheader-header "X-VM-VHeader:")
|
|
2044 (defconst vm-labels-header-regexp "^X-VM-Labels:")
|
|
2045 (defconst vm-labels-header "X-VM-Labels:")
|
|
2046 (defconst vm-berkeley-mail-status-header "Status: ")
|
|
2047 (defconst vm-berkeley-mail-status-header-regexp "^Status: \\(..?\\)\n")
|
|
2048 (defvar vm-matched-header-vector (make-vector 6 nil))
|
|
2049 (defconst vm-supported-folder-types
|
|
2050 '("From_" "From_-with-Content-Length" "mmdf" "babyl"))
|
|
2051 (defconst vm-supported-window-configurations
|
|
2052 '(("default")
|
|
2053 ("startup")
|
|
2054 ("quitting")
|
|
2055 ("composing-message")
|
|
2056 ("editing-message")
|
|
2057 ("marking-message")
|
|
2058 ("reading-message")
|
|
2059 ("searching-message")
|
|
2060 ("vm-delete-message")
|
|
2061 ("vm-delete-message-backward")
|
|
2062 ("vm-undelete-message")
|
|
2063 ("vm-kill-subject")
|
|
2064 ("vm-expunge-folder")
|
|
2065 ("vm-burst-digest")
|
|
2066 ("vm-burst-rfc934-digest")
|
|
2067 ("vm-burst-rfc1153-digest")
|
2
|
2068 ("vm-burst-rfc1521-digest")
|
0
|
2069 ("vm-edit-message")
|
|
2070 ("vm-discard-cached-data")
|
|
2071 ("vm-edit-message-end")
|
|
2072 ("vm-edit-message-abort")
|
|
2073 ("vm-unread-message")
|
|
2074 ("vm-quit-no-change")
|
|
2075 ("vm-quit")
|
|
2076 ("vm-save-buffer")
|
|
2077 ("vm-write-file")
|
|
2078 ("vm-save-folder")
|
|
2079 ("vm-save-and-expunge-folder")
|
|
2080 ("vm-visit-folder")
|
|
2081 ("vm-visit-folder-other-frame")
|
|
2082 ("vm-visit-folder-other-window")
|
|
2083 ("vm-help")
|
|
2084 ("vm-get-new-mail")
|
|
2085 ("vm-load-init-file")
|
|
2086 ("vm")
|
|
2087 ("vm-other-frame")
|
|
2088 ("vm-other-window")
|
|
2089 ("vm-toggle-read-only")
|
|
2090 ("vm-mode")
|
|
2091 ("vm-show-copying-restrictions")
|
|
2092 ("vm-show-no-warranty")
|
|
2093 ("vm-clear-all-marks")
|
|
2094 ("vm-mark-all-messages")
|
|
2095 ("vm-mark-message")
|
|
2096 ("vm-unmark-message")
|
|
2097 ("vm-mark-messages-same-subject")
|
|
2098 ("vm-unmark-messages-same-subject")
|
|
2099 ("vm-mark-messages-same-author")
|
|
2100 ("vm-unmark-messages-same-author")
|
|
2101 ("vm-mark-matching-messages")
|
|
2102 ("vm-unmark-matching-messages")
|
|
2103 ("vm-mark-thread-subtree")
|
|
2104 ("vm-unmark-thread-subtree")
|
|
2105 ("vm-next-command-uses-marks")
|
|
2106 ("vm-mark-help")
|
|
2107 ("vm-submit-bug-report")
|
|
2108 ("vm-goto-message")
|
|
2109 ("vm-goto-message-last-seen")
|
|
2110 ("vm-next-message")
|
|
2111 ("vm-previous-message")
|
|
2112 ("vm-next-message-no-skip")
|
|
2113 ("vm-previous-message-no-skip")
|
|
2114 ("vm-next-unread-message")
|
|
2115 ("vm-previous-unread-message")
|
|
2116 ("vm-scroll-forward")
|
|
2117 ("vm-scroll-backward")
|
|
2118 ("vm-expose-hidden-headers")
|
|
2119 ("vm-beginning-of-message")
|
|
2120 ("vm-end-of-message")
|
|
2121 ("vm-yank-message-other-folder")
|
|
2122 ("vm-yank-message")
|
|
2123 ("vm-mail-send-and-exit")
|
|
2124 ("vm-mail-send")
|
|
2125 ("vm-reply")
|
|
2126 ("vm-reply-include-text")
|
|
2127 ("vm-followup")
|
|
2128 ("vm-followup-include-text")
|
|
2129 ("vm-forward-message")
|
|
2130 ("vm-forward-message-all-headers")
|
|
2131 ("vm-mail")
|
|
2132 ("vm-resend-bounced-message")
|
|
2133 ("vm-resend-message")
|
|
2134 ("vm-send-digest")
|
|
2135 ("vm-send-rfc934-digest")
|
|
2136 ("vm-send-rfc1153-digest")
|
2
|
2137 ("vm-send-rfc1521-digest")
|
0
|
2138 ("vm-reply-other-frame")
|
|
2139 ("vm-reply-include-text-other-frame")
|
|
2140 ("vm-followup-other-frame")
|
|
2141 ("vm-followup-include-text-other-frame")
|
|
2142 ("vm-forward-message-other-frame")
|
|
2143 ("vm-forward-message-all-headers-other-frame")
|
|
2144 ("vm-mail-other-frame")
|
|
2145 ("vm-mail-other-window")
|
|
2146 ("vm-resend-bounced-message-other-frame")
|
|
2147 ("vm-resend-message-other-frame")
|
|
2148 ("vm-send-digest-other-frame")
|
|
2149 ("vm-send-rfc934-digest-other-frame")
|
|
2150 ("vm-send-rfc1153-digest-other-frame")
|
2
|
2151 ("vm-send-rfc1521-digest-other-frame")
|
0
|
2152 ("vm-continue-composing-message")
|
|
2153 ("vm-auto-archive-messages")
|
|
2154 ("vm-save-message")
|
|
2155 ("vm-save-message-sans-headers")
|
|
2156 ("vm-pipe-message-to-command")
|
|
2157 ("vm-isearch-forward")
|
|
2158 ("vm-move-message-forward")
|
|
2159 ("vm-move-message-backward")
|
|
2160 ("vm-move-message-forward-physically")
|
|
2161 ("vm-move-message-backward-physically")
|
|
2162 ("vm-sort-messages")
|
|
2163 ("vm-toggle-threads-display")
|
|
2164 ("vm-summarize")
|
|
2165 ("vm-summarize-other-frame")
|
|
2166 ("vm-undo")
|
|
2167 ("vm-visit-virtual-folder")
|
|
2168 ("vm-visit-virtual-folder-other-frame")
|
|
2169 ("vm-visit-virtual-folder-other-window")))
|
|
2170 (defconst vm-supported-sort-keys
|
|
2171 '("date" "reversed-date"
|
|
2172 "author" "reversed-author"
|
|
2173 "subject" "reversed-subject"
|
|
2174 "recipients" "reversed-recipients"
|
|
2175 "line-count" "reversed-line-count"
|
|
2176 "byte-count" "reversed-byte-count"
|
|
2177 "physical-order" "reversed-physical-order"))
|
|
2178 (defconst vm-supported-interactive-virtual-selectors
|
|
2179 '(("any")
|
|
2180 ("header")
|
|
2181 ("label")
|
|
2182 ("text")
|
|
2183 ("recipient")
|
|
2184 ("author")
|
|
2185 ("subject")
|
|
2186 ("sent-before")
|
|
2187 ("sent-after")
|
|
2188 ("more-chars-than")
|
|
2189 ("less-chars-than")
|
|
2190 ("more-lines-than")
|
|
2191 ("less-lines-than")
|
|
2192 ("new")
|
|
2193 ("unread")
|
|
2194 ("read")
|
|
2195 ("deleted")
|
|
2196 ("replied")
|
|
2197 ("forwarded")
|
|
2198 ("filed")
|
|
2199 ("written")
|
|
2200 ("edited")
|
|
2201 ("marked")))
|
|
2202 (defconst vm-supported-attribute-names
|
|
2203 '("new"
|
|
2204 "unread"
|
|
2205 "read"
|
|
2206 "deleted"
|
|
2207 "replied"
|
|
2208 "forwarded"
|
|
2209 "redistributed"
|
|
2210 "filed"
|
|
2211 "written"
|
|
2212 "edited"
|
|
2213 "undeleted"
|
|
2214 "unreplied"
|
|
2215 "unforwarded"
|
|
2216 "unredistributed"
|
|
2217 "unfiled"
|
|
2218 "unwritten"
|
|
2219 "unedited"
|
|
2220 ;; for babyl cogniscenti
|
|
2221 "recent"
|
|
2222 "unseen"
|
|
2223 "answered"
|
|
2224 "unanswered"))
|
|
2225
|
|
2226 (defvar vm-key-functions nil)
|
2
|
2227 (defconst vm-digest-type-alist '(("rfc934") ("rfc1153") ("rfc1521")))
|
0
|
2228 (defvar vm-completion-auto-correct t
|
|
2229 "Non-nil means that minibuffer-complete-file should aggressively erase
|
|
2230 the trailing part of a word that caused completion to fail, and retry
|
|
2231 the completion with the resulting word.")
|
|
2232 (defvar vm-minibuffer-completion-table nil
|
|
2233 "Completion table used by vm-minibuffer-complete-word.
|
|
2234 Should be just a list of strings, not an alist or an obarray.")
|
|
2235 (defvar vm-completion-auto-space t
|
|
2236 "Non-nil value means that vm-minibuffer-complete-word should automatically
|
|
2237 append a space to words that complete unambiguously.")
|
|
2238 (defconst vm-attributes-vector-length 9)
|
|
2239 (defconst vm-cache-vector-length 20)
|
|
2240 (defconst vm-softdata-vector-length 16)
|
|
2241 (defconst vm-location-data-vector-length 6)
|
|
2242 (defconst vm-mirror-data-vector-length 5)
|
|
2243 (defconst vm-startup-message-lines
|
|
2244 '("Please use \\[vm-submit-bug-report] to report bugs."
|
|
2245 "You may give out copies of VM. Type \\[vm-show-copying-restrictions] to see the conditions"
|
|
2246 "VM comes with ABSOLUTELY NO WARRANTY; type \\[vm-show-no-warranty] for full details"
|
|
2247 "In Stereo (where available)"))
|
|
2248 (defconst vm-startup-message-displayed nil)
|
|
2249 ;; for the mode line
|
|
2250 (defvar vm-mode-line-format
|
|
2251 '("" " %&%& "
|
|
2252 ("VM: "
|
|
2253 (vm-folder-read-only "read-only ")
|
|
2254 (vm-virtual-folder-definition (vm-virtual-mirror "mirrored "))
|
|
2255 "%b"
|
|
2256 (vm-mail-buffer (vm-ml-sort-keys ("" " by " vm-ml-sort-keys)))
|
|
2257 (vm-message-list
|
|
2258 (" " vm-ml-message-number
|
|
2259 " (of " vm-ml-highest-message-number ")")
|
|
2260 (vm-folder-type
|
|
2261 " (unrecognized folder type)"
|
|
2262 " (no messages)")))
|
|
2263 (vm-message-list
|
|
2264 (" %[ " vm-ml-message-attributes-alist
|
|
2265 (vm-ml-labels ("; " vm-ml-labels)) " %] ")
|
|
2266 (" %[%] "))
|
|
2267 "%p" " " global-mode-string))
|
|
2268
|
|
2269 (defvar vm-ml-message-attributes-alist
|
|
2270 '((vm-ml-message-new
|
|
2271 "new"
|
|
2272 (vm-ml-message-unread
|
|
2273 "unread"
|
|
2274 (vm-ml-message-read "read")))
|
|
2275 (vm-ml-message-edited " edited")
|
|
2276 (vm-ml-message-filed " filed")
|
|
2277 (vm-ml-message-written " written")
|
|
2278 (vm-ml-message-replied " replied")
|
|
2279 (vm-ml-message-forwarded " forwarded")
|
|
2280 (vm-ml-message-redistributed " redistributed")
|
|
2281 (vm-ml-message-deleted " deleted")
|
|
2282 (vm-ml-message-marked " MARKED")))
|
|
2283 (defvar vm-ml-message-number nil)
|
|
2284 (make-variable-buffer-local 'vm-ml-message-number)
|
|
2285 (defvar vm-ml-highest-message-number nil)
|
|
2286 (make-variable-buffer-local 'vm-ml-highest-message-number)
|
|
2287 (defvar vm-ml-sort-keys nil)
|
|
2288 (make-variable-buffer-local 'vm-ml-sort-keys)
|
|
2289 (defvar vm-ml-labels nil)
|
|
2290 (make-variable-buffer-local 'vm-ml-labels)
|
|
2291 ; unused now
|
|
2292 ;(defvar vm-ml-attributes-string nil)
|
|
2293 ;(make-variable-buffer-local 'vm-ml-attributes-string)
|
|
2294 (defvar vm-ml-message-new nil)
|
|
2295 (make-variable-buffer-local 'vm-ml-message-new)
|
|
2296 (defvar vm-ml-message-unread nil)
|
|
2297 (make-variable-buffer-local 'vm-ml-message-unread)
|
|
2298 (defvar vm-ml-message-read nil)
|
|
2299 (make-variable-buffer-local 'vm-ml-message-read)
|
|
2300 (defvar vm-ml-message-edited nil)
|
|
2301 (make-variable-buffer-local 'vm-ml-message-edited)
|
|
2302 (defvar vm-ml-message-replied nil)
|
|
2303 (make-variable-buffer-local 'vm-ml-message-replied)
|
|
2304 (defvar vm-ml-message-forwarded nil)
|
|
2305 (make-variable-buffer-local 'vm-ml-message-forwarded)
|
|
2306 (defvar vm-ml-message-redistributed nil)
|
|
2307 (make-variable-buffer-local 'vm-ml-message-redistributed)
|
|
2308 (defvar vm-ml-message-deleted nil)
|
|
2309 (make-variable-buffer-local 'vm-ml-message-deleted)
|
|
2310 (defvar vm-ml-message-filed nil)
|
|
2311 (make-variable-buffer-local 'vm-ml-message-filed)
|
|
2312 (defvar vm-ml-message-written nil)
|
|
2313 (make-variable-buffer-local 'vm-ml-message-written)
|
|
2314 (defvar vm-ml-message-marked nil)
|
|
2315 (make-variable-buffer-local 'vm-ml-message-marked)
|
|
2316 ;; to make the tanjed compiler shut up
|
|
2317 (defvar vm-pop-read-point nil)
|
|
2318 (defvar vm-reply-list nil)
|
|
2319 (defvar vm-forward-list nil)
|
|
2320 (defvar vm-redistribute-list nil)
|
|
2321 (defvar current-itimer nil)
|
|
2322 (defvar mode-popup-menu nil)
|
|
2323 (defvar current-menubar nil)
|
|
2324 (defvar scrollbar-height nil)
|
|
2325 (defvar top-toolbar nil)
|
|
2326 (defvar top-toolbar-height nil)
|
|
2327 (defvar bottom-toolbar nil)
|
|
2328 (defvar bottom-toolbar-height nil)
|
|
2329 (defvar right-toolbar nil)
|
|
2330 (defvar right-toolbar-width nil)
|
|
2331 (defvar left-toolbar nil)
|
|
2332 (defvar left-toolbar-width nil)
|
|
2333 ;; this defvar matches the XEmacs one so it doesn't matter if VM
|
|
2334 ;; is loaded before highlight-headers.el
|
|
2335 (defvar highlight-headers-regexp "Subject[ \t]*:")
|
|
2336 (defvar vm-url-regexp
|
|
2337 "\\(file\\|ftp\\|gopher\\|http\\|https\\|news\\|wais\\|www\\)://[^ \t\n\f\r\"<>|()]*[^ \t\n\f\r\"<>|.!?(){}]"
|
|
2338 "Regular expression that matches an absolute URL.")
|
|
2339 (defconst vm-month-alist
|
|
2340 '(("jan" "January" "1")
|
|
2341 ("feb" "February" "2")
|
|
2342 ("mar" "March" "3")
|
|
2343 ("apr" "April" "4")
|
|
2344 ("may" "May" "5")
|
|
2345 ("jun" "June" "6")
|
|
2346 ("jul" "July" "7")
|
|
2347 ("aug" "August" "8")
|
|
2348 ("sep" "September" "9")
|
|
2349 ("oct" "October" "10")
|
|
2350 ("nov" "November" "11")
|
|
2351 ("dec" "December" "12")))
|
|
2352 (defvar vm-pop-passwords nil)
|
|
2353 (defvar pop-up-frames nil)
|
|
2354 (defvar vm-parse-date-workspace (make-vector 6 nil))
|
|
2355 ;; cache so we don't call timezone-make-date-sortable so much.
|
|
2356 ;; messages have their own cache; this is for the virtual folder
|
|
2357 ;; alist selectors.
|
|
2358 (defvar vm-sortable-date-alist nil)
|
|
2359 (defvar vm-summary-=> nil)
|
|
2360 (defvar vm-summary-no-=> nil)
|
|
2361 (defvar vm-summary-overlay nil)
|
|
2362 (make-variable-buffer-local 'vm-summary-overlay)
|
|
2363 (defvar vm-thread-loop-obarray (make-vector 29 0))
|
|
2364 (defvar vm-delete-duplicates-obarray (make-vector 29 0))
|
|
2365 (defvar vm-mail-mode-map-parented nil)
|
|
2366 (defvar vm-xface-cache (make-vector 29 0))
|