0
|
1 ;;; VM user and internal variable initialization
|
98
|
2 ;;; Copyright (C) 1989-1997 Kyle E. Jones
|
0
|
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
|
98
|
24 (defvar vm-preferences-file "~/.vm.preferences"
|
0
|
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
|
98
|
27 users to edit directly.")
|
0
|
28
|
|
29 (defvar vm-primary-inbox "~/INBOX"
|
|
30 "*Mail is moved from the system mailbox to this file for reading.")
|
|
31
|
|
32 (defvar vm-crash-box "~/INBOX.CRASH"
|
|
33 "*File in which to store mail temporarily while it is transferred from
|
|
34 the system mailbox to the primary inbox. If a crash occurs
|
|
35 during this mail transfer, any missing mail will be found in this
|
|
36 file. VM will do crash recovery from this file automatically at
|
|
37 startup, as necessary.")
|
|
38
|
|
39 (defvar vm-keep-crash-boxes nil
|
|
40 "*Non-nil value should be a string specifying a directory where
|
|
41 your crash boxes should be moved after VM has copied new mail
|
|
42 out of them. This is a safety measure. In at least one case a
|
|
43 pointer corruption bug inside Emacs has caused VM to believe that
|
|
44 it had copied information out of the crash box when it in fact
|
|
45 had not. VM then deleted the crash box, losing the batch of
|
|
46 incoming mail. This is an exceedingly rare problem, but if you
|
|
47 want to avoid losing mail if it happens, set vm-keep-crash-boxes
|
|
48 to point to a directory in the same filesystem as all your
|
|
49 crash boxes. Each saved crash box will have a unique name based
|
|
50 on the current date and time the box was saved. You will need to
|
|
51 clean out this directory from time to time; VM does not do so.
|
|
52
|
|
53 A nil value means VM should just delete crash boxes after it
|
|
54 has copied out the mail.")
|
|
55
|
|
56 ;; use this function to access vm-spool-files on the fly. this
|
|
57 ;; allows us to use environmental variables without setting
|
|
58 ;; vm-spool-files at load time and thereby making it hard to dump an
|
|
59 ;; Emacs containing a preloaded VM.
|
|
60 (defun vm-spool-files ()
|
|
61 (or vm-spool-files
|
|
62 (and (setq vm-spool-files (getenv "MAILPATH"))
|
|
63 (setq vm-spool-files
|
|
64 (vm-parse vm-spool-files
|
|
65 "\\([^:%?]+\\)\\([%?][^:]*\\)?\\(:\\|$\\)")))
|
|
66 (and (setq vm-spool-files (getenv "MAIL"))
|
|
67 (setq vm-spool-files (list vm-spool-files)))))
|
|
68
|
|
69 (defvar vm-spool-files nil
|
|
70 "*If non-nil this variable's value should be a list of strings
|
|
71 or a list of lists.
|
|
72
|
|
73 If the value is a list of strings, the strings should name files
|
|
74 that VM will check for incoming mail instead of the default place
|
|
75 VM thinks your system mailbox is. Mail will be moved from these
|
|
76 mailboxes to your primary inbox as specified by vm-primary-inbox,
|
|
77 using vm-crash-box as a waystation.
|
|
78
|
|
79 If the value is a list of lists, each sublist should be of the form
|
|
80
|
|
81 (INBOX SPOOLNAME CRASHBOX)
|
|
82
|
|
83 INBOX, SPOOLNAME and CRASHBOX are all strings.
|
|
84
|
|
85 INBOX is the folder where you want your new mail to be moved when
|
|
86 you type 'g' (running vm-get-new-mail) in VM. It is where you
|
|
87 will read the mail.
|
|
88
|
|
89 SPOOLNAME is where the mail system leaves your incoming mail,
|
|
90 e.g. /var/spool/mail/kyle. It can also be a POP maildrop,
|
|
91 provided it can be matched by the value of vm-recognize-pop-maildrops.
|
|
92
|
|
93 A POP maildrop specification has the following format:
|
|
94
|
|
95 \"HOST:PORT:AUTH:USER:PASSWORD\"
|
|
96
|
|
97 HOST is the host name of the POP server
|
|
98 PORT is the TCP port number to connect to (should normally be 110).
|
|
99 USER is the user name sent to the server.
|
|
100 PASSWORD is the secret shared by you and the server for
|
|
101 authentication purposes. How is it used depends on the value of
|
|
102 the AUTH parameter. If the PASSWORD is \"*\", VM will prompt
|
|
103 you for the password the first time you try to retrieve mail from
|
|
104 maildrop. If the password is valid, VM will not ask you for the
|
|
105 password again during this Emacs session.
|
|
106
|
|
107 AUTH is the authentication method used to convince the server you
|
|
108 should have access to the maildrop. Acceptable values are
|
|
109 \"pass\", \"rpop\" and \"apop\". For \"pass\", the PASSWORD is sent to
|
|
110 the server with the POP PASS command. For \"rpop\", the PASSWORD
|
|
111 should be the string to be sent to the server via the RPOP
|
|
112 command. In this case the string is not really a secret;
|
|
113 authentication is done by other means. For \"apop\", an MD5 digest
|
|
114 of the PASSWORD appended to the server timestamp will be sent to
|
|
115 the server with the APOP command. In order to use \"apop\" you
|
|
116 will have to set the value of vm-pop-md5-program appropriately to
|
|
117 point at the program that will generate the MD5 digest that VM
|
|
118 needs.
|
|
119
|
|
120 CRASHBOX is the temporary file that VM uses to store mail in
|
|
121 between the SPOOLNAME and the INBOX. If the system crashes or
|
|
122 Emacs dies while mail is being moved, and the new mail is not in
|
|
123 the SPOOLNAME or the INBOX, then it will be in the CRASHBOX.
|
|
124
|
|
125 There can be multiple entries with the same INBOX value, but a
|
|
126 particular SPOOLNAME should appear only once. CRASHBOXes should
|
|
127 not be shared among different INBOXes, but you can use the same
|
|
128 CRASHBOX/INBOX pair with a different SPOOLNAME.
|
|
129
|
|
130 NOTE: The values of vm-primary-inbox and vm-crash-box are ignored
|
|
131 when getting new mail if vm-spool-files is a list of lists.
|
|
132
|
|
133 vm-spool-files will default to the value of the shell
|
|
134 environmental variables MAILPATH or MAIL if either of these
|
|
135 variables are defined and no particular value for vm-spool-files
|
|
136 has been specified.")
|
|
137
|
98
|
138 (defvar vm-spool-file-suffixes nil
|
|
139 "*List of suffixes to be used to create possible spool file names
|
|
140 for folders. Example:
|
|
141
|
|
142 (setq vm-spool-file-suffixes '(\".spool\" \"-\"))
|
|
143
|
|
144 If you visit a folder ~/mail/beekeeping, when VM attempts to
|
|
145 retrieve new mail for that folder it will look for mail in
|
|
146 ~/mail/beekeeping.spool and ~/mail/beekeeping- in addition to
|
|
147 scanning vm-spool-files for matches.
|
|
148
|
|
149 The value of vm-spool-files-suffixes will not be used unless
|
|
150 vm-crash-box-suffix is also defined, since a crash box is
|
|
151 required for all mail retrieval from spool files.")
|
|
152
|
|
153 (defvar vm-crash-box-suffix nil
|
|
154 "*String suffix used to create possible crash box file names for folders.
|
|
155 When VM uses vm-spool-file-suffixes to create a spool file name,
|
|
156 it will append the value of vm-crash-box-suffix to the folder's
|
|
157 file name to create a crash box name.")
|
|
158
|
|
159 (defvar vm-make-spool-file-name nil
|
|
160 "*Non-nil value should be a function that returns a spool file name
|
|
161 for a folder. The function will be called with one argument, the
|
|
162 folder's file name. If the folder does not have a file name,
|
|
163 the function will not be called.")
|
|
164
|
|
165 (defvar vm-make-crash-box-name nil
|
|
166 "*Non-nil value should be a function that returns a crash box file name
|
|
167 for a folder. The function will be called with one argument, the
|
|
168 folder's file name. If the folder does not have a file name,
|
|
169 the function will not be called.")
|
|
170
|
0
|
171 (defvar vm-pop-md5-program "md5"
|
|
172 "*Program that reads a message on its standard input and writes an
|
|
173 MD5 digest on its output.")
|
|
174
|
100
|
175 (defvar vm-pop-max-message-size nil
|
|
176 "*If VM is about to retrieve via POP a message larger than this size
|
|
177 (in bytes) it will ask the you whether it should retrieve the message.
|
|
178
|
|
179 If VM is retrieving mail automatically because vm-auto-get-new-mail is
|
|
180 set to a numeric value then you will not be prompted about large messages.
|
|
181 This is to avoid prompting you while you're typing in another buffer.
|
|
182 In this case the large message will be skipped with a warning
|
|
183 message.
|
|
184
|
|
185 A nil value for vm-pop-max-message-size means no size limit.")
|
|
186
|
|
187 (defvar vm-pop-messages-per-session nil
|
|
188 "*Non-nil value should be a integer specifying how many messages to
|
|
189 retrieve per POP session. When you type 'g' to get new mail, VM
|
|
190 will only retrieve that many messages from any particular POP maildrop.
|
|
191 To retrieve more messages, type 'g' again.
|
|
192
|
|
193 A nil value means there's no limit.")
|
|
194
|
|
195 (defvar vm-pop-bytes-per-session nil
|
|
196 "*Non-nil value should be a integer specifying how many bytes to
|
|
197 retrieve per POP session. When you type 'g' to get new mail, VM
|
|
198 will only retrieve messages until the byte limit is reached on
|
|
199 any particular POP maildrop. To retrieve more messages, type 'g'
|
|
200 again.
|
|
201
|
|
202 A nil value means there's no limit.")
|
|
203
|
0
|
204 (defvar vm-recognize-pop-maildrops "^[^:]+:[^:]+:[^:]+:[^:]+:[^:]+"
|
|
205 "*Value if non-nil should be a regular expression that matches
|
|
206 spool names found in vm-spool-files that should be considered POP
|
|
207 maildrops. A nil value tells VM that all the spool names are to
|
|
208 be considered files.")
|
|
209
|
|
210 (defvar vm-auto-get-new-mail t
|
|
211 "*Non-nil value causes VM to automatically move mail from spool files
|
|
212 to a mail folder when the folder is first visited. Nil means
|
|
213 you must always use vm-get-new-mail to pull in newly arrived messages.
|
|
214
|
|
215 If the value is a number, then it specifies how often (in
|
|
216 seconds) VM should check for new mail and try to retrieve it.
|
|
217 This is done asynchronously and may occur while you are editing
|
|
218 other files. It should not disturb your editing, except perhaps
|
98
|
219 for a pause while the check is being done.")
|
24
|
220
|
100
|
221 (defvar vm-mail-check-interval 300
|
|
222 "*Numeric value specifies the number of seconds between checks
|
|
223 for new mail. The maildrops for all visited folders are checked.
|
|
224 The buffer local variable vm-spooled-mail-waiting is set non-nil
|
|
225 in the buffers of those folders that have mail waiting.")
|
|
226
|
|
227 (defvar vm-spooled-mail-waiting nil
|
|
228 "Value is non-nil if there is mail waiting for the current folder.
|
|
229 This variable's value is local in all buffers.
|
|
230 VM maintains this variable, you should not set it.")
|
|
231 (make-variable-buffer-local 'vm-spooled-mail-waiting)
|
|
232
|
0
|
233 (defvar vm-default-folder-type
|
|
234 (cond ((not (boundp 'system-configuration))
|
|
235 'From_)
|
|
236 ((or (string-match "-solaris" system-configuration)
|
|
237 (string-match "usg-unix-v" system-configuration)
|
|
238 (string-match "-ibm-aix" system-configuration))
|
|
239 'From_-with-Content-Length)
|
|
240 ((string-match "-sco" system-configuration)
|
|
241 'mmdf)
|
|
242 (t 'From_))
|
|
243 "*Default folder type for empty folders.
|
|
244 If VM has to add messages that have no specific folder type to an
|
|
245 empty folder, the folder will become this default type.
|
|
246 Allowed types are:
|
|
247
|
|
248 From_
|
|
249 From_-with-Content-Length
|
|
250 mmdf
|
|
251 babyl
|
|
252
|
|
253 Value must be a symbol, not a string. i.e. write
|
|
254
|
|
255 (setq vm-default-folder-type 'From_)
|
|
256
|
|
257 in your .emacs or .vm file.
|
|
258
|
|
259 If you set this variable's value to From_-with-Content-Length you
|
|
260 must set vm-trust-From_-with-Content-Length non-nil.")
|
|
261
|
|
262 (defvar vm-check-folder-types t
|
|
263 "*Non-nil value causes VM to check folder and message types for
|
|
264 compatibility before it performs certain operations.
|
|
265
|
|
266 Before saving a message to a folder, VM will check that the destination folder
|
|
267 is of the same type as the message to be saved.
|
|
268
|
|
269 Before incorporating message into a visited folder, VM will check that the
|
|
270 messages are of the same type as that folder.
|
|
271
|
|
272 A nil value means don't do the checks.
|
|
273
|
70
|
274 Depending on the value of vm-convert-folder-types VM will either
|
|
275 convert the messages to the appropriate type before saving or
|
|
276 incorporating them, or it will signal an error.")
|
0
|
277
|
|
278 (defvar vm-convert-folder-types t
|
|
279 "*Non-nil value means that when VM checks folder types and finds
|
|
280 a mismatch (see vm-check-folder-types), it will convert the
|
|
281 source messages to the type of the destination folder, if it can.
|
|
282
|
|
283 If vm-check-folder-types is nil, then this variable isn't
|
|
284 consulted.")
|
|
285
|
|
286 (defvar vm-trust-From_-with-Content-Length
|
|
287 (eq vm-default-folder-type 'From_-with-Content-Length)
|
|
288 "*Non-nil value means that if the first message in a folder contains
|
|
289 a Content-Length header and begins with \"From \" VM can safely
|
|
290 assume that all messages in the folder have Content-Length headers
|
|
291 that specify the length of the text section of each message. VM
|
|
292 will then use these headers to determine message boundaries
|
|
293 instead of the usual way of searching for two newlines followed by a
|
|
294 line that begins with \"From \".
|
|
295
|
|
296 If you set vm-default-folder-type to From_-with-Content-Length you
|
|
297 must set this variable non-nil.")
|
|
298
|
|
299 (defvar vm-visible-headers
|
|
300 '("Resent-"
|
|
301 "From:" "Sender:"
|
|
302 "To:" "Apparently-To:" "Cc:"
|
|
303 "Subject:"
|
|
304 "Date:")
|
|
305 "*List of headers that should be visible when VM first displays a message.
|
|
306 These should be listed in the order you wish them presented.
|
|
307 Regular expressions are allowed. There's no need to anchor
|
|
308 patterns with \"^\", as searches always start at the beginning of
|
|
309 a line. Put a colon at the end of patterns to get exact matches.
|
|
310 For example, \"Date\" matches \"Date\" and \"Date-Sent\". Header names
|
|
311 are always matched case insensitively.
|
|
312
|
|
313 If the value of vm-invisible-header-regexp is nil, only the
|
|
314 headers matched by vm-visible-headers will be displayed.
|
|
315 Otherwise all headers are displayed except those matched by
|
|
316 vm-invisible-header-regexp. In this case vm-visible-headers
|
|
317 specifies the order in which headers are displayed. Headers not
|
|
318 matching vm-visible-headers are display last.")
|
|
319
|
|
320 (defvar vm-invisible-header-regexp nil
|
|
321 "*Non-nil value should be a regular expression that tells what headers
|
|
322 VM should NOT normally display when presenting a message. All other
|
|
323 headers will be displayed. The variable vm-visible-headers specifies
|
|
324 the presentation order of headers; headers not matched by
|
|
325 vm-visible-headers are displayed last.
|
|
326
|
|
327 Nil value causes VM to display ONLY those headers specified in
|
|
328 vm-visible-headers.")
|
|
329
|
|
330 (defvar vm-highlighted-header-regexp nil
|
|
331 "*Value specifies which headers to highlight.
|
|
332 This is a regular expression that matches the names of headers that should
|
|
333 be highlighted when a message is first presented. For example setting
|
|
334 this variable to \"From:\\\\|Subject:\" causes the From and Subject
|
|
335 headers to be highlighted.
|
|
336
|
|
337 This does not work under version 18 Emacs.
|
|
338
|
|
339 If you're using XEmacs, you might want to use the builtin
|
|
340 `highlight-headers' package instead. If so, then you should set
|
|
341 the variable vm-use-lucid-highlighting non-nil. You'll need to
|
|
342 set the various variables used by the highlight-headers package
|
|
343 to customize highlighting. vm-highlighted-header-regexp is
|
|
344 ignored in this case.")
|
|
345
|
|
346 (defvar vm-use-lucid-highlighting
|
|
347 ;; (not (not ...)) to avoid the confusing value of 6.
|
|
348 (not (not (string-match "XEmacs" emacs-version)))
|
|
349 "*Non-nil means to use the `highlight-headers' package in XEmacs.
|
|
350 Nil means just use VM's builtin header highlighting code.
|
|
351
|
|
352 FSF Emacs always uses VM's builtin highlighting code.")
|
|
353
|
|
354 (defvar vm-highlighted-header-face 'bold
|
|
355 "*Face to be used to highlight headers.
|
98
|
356 The header to highlight are sepcified by the vm-highlighted-header-regexp
|
|
357 variable.
|
|
358
|
|
359 This variable is ignored under XEmacs if vm-use-lucid-highlighting is
|
|
360 nil. XEmacs' highlight-headers package is used instead. See the
|
|
361 documentation for the function `highlight-headers' to find out how to
|
|
362 customize header highlighting using this package.")
|
0
|
363
|
|
364 (defvar vm-preview-lines 0
|
|
365 "*Non-nil value N causes VM to display the visible headers + N lines of text
|
|
366 of a message when it is first presented. The message is not actually
|
|
367 flagged as read until it is exposed in its entirety.
|
|
368
|
|
369 A value of t causes VM to display as much of the message as will
|
|
370 fit in the window associated with the folder buffer.
|
|
371
|
|
372 A nil value causes VM not to preview messages; no text lines are hidden and
|
|
373 messages are immediately flagged as read.")
|
|
374
|
|
375 (defvar vm-preview-read-messages nil
|
|
376 "*Non-nil value means to preview messages even if they've already been read.
|
|
377 A nil value causes VM to preview messages only if new or unread.")
|
|
378
|
98
|
379 (defvar vm-display-using-mime t
|
|
380 "*Non-nil value means VM should display messages using MIME.
|
|
381 MIME (Multipurpose Internet Mail Extensions) is a set of
|
|
382 extensions to the standard Internet message format that allows
|
|
383 reliable tranmission and reception of arbitrary data including
|
|
384 images, audio and video as well as traditional text.
|
|
385
|
|
386 A non-nil value for this variable means that VM will recognize
|
|
387 MIME encoded messages and display them as specified by the
|
|
388 various MIME standards specifications.
|
|
389
|
|
390 A nil value means VM will not display MIME messages any
|
|
391 differently than any other message.")
|
|
392
|
|
393 ;; try to avoid bad interaction with TM
|
|
394 (defvar vm-send-using-mime (not (featurep 'mime-setup))
|
|
395 "*Non-nil value means VM should support sending messages using MIME.
|
|
396 MIME (Multipurpose Internet Mail Extensions) is a set of
|
|
397 extensions to the standard Internet message format that allows
|
|
398 reliable tranmission and reception of arbitrary data including
|
|
399 images, audio and video as well as traditional text.
|
|
400
|
|
401 A non-nil value for this variable means that VM will
|
|
402
|
|
403 - allow you to attach files and messages to your outbound message.
|
|
404 - analyze the composition buffer when you send off a message and
|
|
405 encode it as needed.
|
|
406
|
|
407 A nil value means VM will not offer any support for composing
|
|
408 MIME messages.")
|
|
409
|
|
410 (defvar vm-honor-mime-content-disposition nil
|
|
411 "*Non-nil value means use information from the Content-Disposition header
|
|
412 to display MIME messages. The Content-Disposition header
|
|
413 specifies whether a MIME object should be displayed inline or
|
|
414 treated as an attachment. For VM, ``inline'' display means
|
|
415 displaying the object in the Emacs buffer, if possible.
|
|
416 Attachments will be displayed as a button that you can use
|
|
417 mouse-2 to activate or mouse-3 to pull up a menu of options.")
|
|
418
|
|
419 (defvar vm-auto-decode-mime-messages nil
|
|
420 "*Non-nil value causes MIME decoding to occur automatically
|
|
421 when a message containing MIME objects is exposed. A nil value
|
|
422 means that you will have to run the `vm-decode-mime-message'
|
|
423 command (normally bound to `D') manually to decode and display
|
|
424 MIME objects.")
|
|
425
|
|
426 (defvar vm-auto-displayed-mime-content-types '("text" "multipart")
|
|
427 "*List of MIME content types that should be displayed immediately
|
|
428 after decoding. Other types will be displayed as a button that
|
|
429 the user must activate to display the object.
|
|
430
|
|
431 A value of t means that all types should be displayed immediately.
|
|
432 A nil value means never display MIME objects immediately; only use buttons.
|
|
433
|
|
434 If the value is a list, it should be a list of strings, which
|
|
435 should all be types or type/subtype pairs. Example:
|
|
436
|
|
437 (setq vm-auto-displayed-mime-content-types '(\"text\" \"image/jpeg\"))
|
|
438
|
|
439 If a top-level type is listed without a subtype, all subtypes of
|
|
440 that type are assumed to be included.
|
|
441
|
|
442 Note that some types are processed specially, and this variable does not
|
|
443 apply to them.
|
|
444
|
|
445 Multipart/Digest and Message/RFC822 messages are always
|
|
446 displayed as a button to avoid visiting a new folder while the
|
|
447 user is moving around in the current folder.
|
|
448
|
|
449 Message/Partial messages are always displayed as a button,
|
|
450 because there always needs to be a way to trigger the assembly
|
|
451 of the parts into a full message.
|
|
452
|
|
453 Any type that cannot be displayed internally or externally will
|
|
454 be displayed as a button that allows you to save the body to a
|
|
455 file.")
|
|
456
|
|
457 (defvar vm-mime-internal-content-types t
|
|
458 "*List of MIME content types that should be displayed internally
|
|
459 if Emacs is capable of doing so. A value of t means that VM
|
|
460 should always display an object internally if possible. A nil
|
|
461 value means never display MIME objects internally, which means VM
|
|
462 have to run an external viewer to display MIME objects.
|
|
463
|
|
464 If the value is a list, it should be a list of strings. Example:
|
|
465
|
|
466 (setq vm-mime-internal-content-types '(\"text\" \"image/jpeg\"))
|
|
467
|
|
468 If a top-level type is listed without a subtype, all subtypes of
|
|
469 that type are assumed to be included.
|
|
470
|
|
471 Note that all multipart types are always handled internally.
|
|
472 There is no need to list them here.")
|
|
473
|
|
474 (defvar vm-mime-external-content-types-alist nil
|
|
475 "*Alist of MIME content types and the external programs used to display them.
|
|
476 If VM cannot display a type internally or has been instructed not
|
|
477 to (see the documentation for the vm-mime-internal-content-types
|
|
478 variable) it will try to launch an external program to display that
|
|
479 type.
|
|
480
|
|
481 The alist format is
|
|
482
|
|
483 ( (TYPE PROGRAM ARG ARG ... ) ... )
|
|
484
|
|
485 TYPE is a string specifying a MIME type or type/subtype pair.
|
|
486 Example \"text\" or \"image/jpeg\". If a top-level type is
|
|
487 listed without a subtype, all subtypes of that type are assumed
|
|
488 to be included.
|
|
489
|
|
490 PROGRAM is a string naming a program to run to display an object.
|
|
491 Any ARGS will be passed to the program as arguments. The octets
|
|
492 that compose the object will be written into a file and the name
|
|
493 of the file will be passed to the program as its last argument.
|
|
494
|
|
495 Example:
|
|
496
|
|
497 (setq vm-mime-external-content-types-alist
|
|
498 '(
|
|
499 (\"text/html\" \"netscape\")
|
|
500 (\"image/gif\" \"xv\")
|
|
501 (\"image/jpeg\" \"xv\")
|
|
502 (\"video/mpeg\" \"mpeg_play\")
|
|
503 (\"video\" \"xanim\")
|
|
504 )
|
|
505 )
|
|
506
|
|
507 The first matching list element will be used.
|
|
508
|
|
509 No multipart message will ever be sent to an external viewer.")
|
|
510
|
|
511 (defvar vm-mime-type-converter-alist nil
|
|
512 "*Alist of MIME types and programs that can convert between them.
|
|
513 If VM cannot display a content type, it will scan this list to
|
|
514 see if the type can be converted into a type that it can display.
|
|
515
|
|
516 The alist format is
|
|
517
|
|
518 ( (START-TYPE END-TYPE COMMAND-LINE ) ... )
|
|
519
|
|
520 START-TYPE is a string specifying a MIME type or type/subtype pair.
|
|
521 Example \"text\" or \"image/jpeg\". If a top-level type is
|
|
522 listed without a subtype, all subtypes of that type are assumed
|
|
523 to be included.
|
|
524
|
|
525 END-TYPE must be an exact type/subtype pair. This is the type
|
|
526 to which START-TYPE will be converted.
|
|
527
|
|
528 COMMAND-LINE is a string giving a command line to be passed to
|
|
529 the shell. The octets that compose the object will be written to
|
|
530 the standard input of the shell command.
|
|
531
|
|
532 Example:
|
|
533
|
|
534 (setq vm-mime-type-converter-alist
|
|
535 '(
|
|
536 (\"image/jpeg\" \"image/gif\" \"jpeg2gif\")
|
|
537 (\"text/html\" \"text/plain\" \"striptags\")
|
|
538 )
|
|
539 )
|
|
540
|
|
541 The first matching list element will be used.")
|
|
542
|
|
543 (defvar vm-mime-alternative-select-method 'best-internal
|
|
544 "*Value tells how to choose which multipart/alternative part to display.
|
|
545 A MIME message of type multipart/alternative has multiple message
|
|
546 parts containing the same information, but each part may be
|
|
547 formatted differently. VM will display only one of the parts.
|
|
548 This variable tells VM how to choose which part to display.
|
|
549
|
|
550 A value of 'best means choose the part that is the most faithful to
|
|
551 the sender's original content that can be displayed.
|
|
552
|
|
553 A value of 'best-internal means choose the best part that can be
|
|
554 displayed internally, i.e. with the built-in capabilities of Emacs.
|
|
555 If none of the parts can be displayed internally, behavior reverts to
|
|
556 that of 'best.")
|
|
557
|
100
|
558 (defvar vm-mime-default-face-charsets '("us-ascii" "iso-8859-1")
|
|
559 "*List of character sets that can use the `default' face.
|
|
560 For other characters sets VM will have to create a new face and assign
|
|
561 a font to it that can be used to display that character set.")
|
|
562
|
|
563 (defvar vm-mime-charset-font-alist nil
|
|
564 "*Assoc list of character sets and fonts that can be used to display them.
|
|
565 The format of the list is:
|
|
566
|
|
567 ( (CHARSET . FONT) ...)
|
|
568
|
|
569 CHARSET is a string naming a MIME registered character set such
|
|
570 as \"iso-8859-5\". Character set names should be specified in
|
|
571 lower case.
|
|
572
|
|
573 FONT is a string naming a font that can be used to display CHARSET.
|
|
574
|
|
575 An example setup might be:
|
|
576
|
|
577 (setq vm-mime-charset-font-alist
|
|
578 '(
|
|
579 (\"iso-8859-7\" . \"-*-*-medium-r-normal--16-160-72-72-c-80-iso8859-7\")
|
|
580 )
|
|
581 )
|
|
582
|
|
583 This variable is only useful for character sets whose characters
|
|
584 can all be encoded in single 8-bit bytes. Also multiple fonts
|
|
585 can only be displayed if you're running under a window system
|
|
586 e.g. X windows. So this variable will have no effect if you're
|
|
587 running Emacs on a tty.
|
|
588
|
|
589 Note that under FSF Emacs any fonts you use must be the same size
|
|
590 as your default font. XEmacs does not have this limitation.")
|
|
591
|
98
|
592 (defvar vm-mime-button-face
|
|
593 (cond ((fboundp 'find-face)
|
|
594 (or (and (not (eq (device-type) 'tty)) (find-face 'gui-button-face)
|
|
595 'gui-button-face)
|
|
596 (and (find-face 'bold-italic) 'bold-italic)))
|
|
597 ((fboundp 'facep)
|
|
598 (or (and (facep 'gui-button-face) 'gui-button-face)
|
|
599 (and (facep 'bold-italic) 'bold-italic))))
|
|
600 "*Face used for text in buttons that trigger the display of MIME objects.")
|
|
601
|
|
602 (defvar vm-mime-8bit-composition-charset "iso-8859-1"
|
|
603 "*Character set that VM should assume if it finds non-US-ASCII characters
|
|
604 in a composition buffer. Composition buffers are assumed to use
|
|
605 US-ASCII unless the buffer contains a byte with the high bit set.
|
|
606 This variable specifies what character set VM should assume if
|
100
|
607 such a character is found.
|
|
608
|
|
609 This variable is unused in XEmacs/MULE. Since multiple character
|
|
610 sets can be displayed in a single buffer under MULE, VM will map
|
|
611 the file coding system of the buffer to a single MIME character
|
|
612 that can display all the buffer's characters.")
|
98
|
613
|
|
614 (defvar vm-mime-8bit-text-transfer-encoding 'quoted-printable
|
|
615 "*Symbol specifying what kind of transfer encoding to use on 8bit
|
|
616 text. Characters with the high bit set cannot safely pass
|
|
617 through all mail gateways and mail transport software. MIME has
|
108
|
618 two transfer encodings that convert 8-bit data to 7-bit for safe
|
98
|
619 transport. Quoted-printable leaves the text mostly readable even
|
100
|
620 if the recipient does not have a MIME-capable mail reader. BASE64
|
|
621 is unreadable without a MIME-capable mail reader, unless your name
|
98
|
622 is U3BvY2s=.
|
|
623
|
|
624 A value of 'quoted-printable, means to use quoted-printable encoding.
|
|
625 A value of 'base64 means to use BASE64 encoding.
|
|
626 A value of '8bit means to send the message as is.
|
|
627
|
108
|
628 Note that this variable usually only applies to textual MIME
|
|
629 content types. Images, audio, video, etc. typically will have
|
|
630 some attribute that makes VM consider them to be \"binary\",
|
|
631 which moves them outside the scope of this variable. For
|
|
632 example, messages with line lengths of 1000 characters or more
|
|
633 are considered binary, as are messages that contain carriage
|
|
634 returns (ascii code 13) or NULs (ascii code 0).")
|
|
635
|
|
636 (defvar vm-mime-composition-armor-from-lines nil
|
|
637 "*Non-nil value means \"From \" lines should be armored before sending.
|
|
638 A line beginning with \"From \" is considered a message separator
|
|
639 by many mail delivery agents. These agents will often insert a >
|
|
640 before the word \"From\" to prevent mail readers from being
|
|
641 confused. This is proper behavior, but it breaks digitally signed
|
|
642 messages, which require bit-perfect transport in order for the
|
|
643 message contents to be considered genuine.
|
|
644
|
|
645 If vm-mime-composition-armor-from-lines is non-nil, a line
|
|
646 beginning with \"From \" will cause VM to encode the message
|
|
647 using either quoted-printable or BASE64 encoding so that the From
|
|
648 line can be protected.")
|
98
|
649
|
|
650 (defvar vm-mime-attachment-auto-type-alist
|
|
651 '(
|
|
652 ("\\.jpe?g" . "image/jpeg")
|
|
653 ("\\.gif" . "image/gif")
|
|
654 ("\\.png" . "image/png")
|
100
|
655 ("\\.tiff?" . "image/tiff")
|
|
656 ("\\.html?" . "text/html")
|
98
|
657 ("\\.au" . "audio/basic")
|
|
658 ("\\.mpe?g" . "video/mpeg")
|
|
659 ("\\.ps" . "application/postscript")
|
|
660 )
|
|
661 "*Alist used to guess a MIME content type based on a file name.
|
|
662 The list format is
|
|
663
|
|
664 ((REGEXP . TYPE) ...)
|
|
665
|
|
666 REGEXP is a string that specifies a regular expression.
|
|
667 TYPE is a string specifying a MIME content type.
|
|
668
|
|
669 When a non-MIME file is attached to a MIME composition buffer,
|
|
670 this list will be scanned until a REGEXP matches the file's name.
|
|
671 The corresponding TYPE will be offered as a default when you are
|
|
672 prompted for the file's type.")
|
|
673
|
|
674 (defvar vm-mime-max-message-size nil
|
|
675 "*Largest MIME message that VM should send without fragmentation.
|
|
676 The value should be a integer which specifies the size in bytes.
|
|
677 A message larger than this value will be split into multiple parts
|
|
678 for transmission using the MIME message/partial type.")
|
|
679
|
|
680 (defvar vm-mime-attachment-save-directory nil
|
|
681 "*Non-nil value is a default directory for saving MIME attachments.
|
|
682 When VM prompts you for a target file name when saving a MIME body,
|
|
683 any relative pathnames will be relative to this directory.")
|
|
684
|
|
685 (defvar vm-mime-avoid-folding-content-type nil
|
|
686 "*Non-nil means don't send folded Content-Type headers in MIME messages.
|
|
687 `Folded' headers are headers broken into multiple lines as specified
|
|
688 in RFC822 for readability and to avoid excessive line lengths. At
|
|
689 least one major UNIX vendor ships a version of sendmail that believes
|
|
690 a folded Content-Type header is a syntax error, and returns any such
|
|
691 message to sender. A typical error message from such a sendmail
|
|
692 version is,
|
|
693
|
|
694 553 header syntax error, line \" charset=us-ascii\"
|
|
695
|
|
696 If you see one of these, setting vm-mime-avoid-folding-content-type
|
|
697 non-nil may let your mail get through.")
|
|
698
|
|
699 (defvar vm-mime-base64-decoder-program nil
|
|
700 "*Non-nil value should be a string that names a MIME base64 decoder.
|
|
701 The program should expect to read base64 data on its standard
|
|
702 input and write the converted data to its standard output.")
|
|
703
|
|
704 (defvar vm-mime-base64-decoder-switches nil
|
|
705 "*List of command line flags passed to the command named by
|
|
706 vm-mime-base64-decoder-program.")
|
|
707
|
|
708 (defvar vm-mime-base64-encoder-program nil
|
|
709 "*Non-nil value should be a string that names a MIME base64 encoder.
|
|
710 The program should expect arbitrary data on its standard
|
|
711 input and write base64 data to its standard output.")
|
|
712
|
|
713 (defvar vm-mime-base64-encoder-switches nil
|
|
714 "*List of command line flags passed to the command named by
|
|
715 vm-mime-base64-encoder-program.")
|
|
716
|
0
|
717 (defvar vm-auto-next-message t
|
|
718 "*Non-nil value causes VM to use vm-next-message to advance to the next
|
|
719 message in the folder if the user attempts to scroll past the end of the
|
|
720 current messages. A nil value disables this behavior.")
|
|
721
|
|
722 (defvar vm-honor-page-delimiters nil
|
|
723 "*Non-nil value causes VM to honor page delimiters (as specified by the
|
|
724 Emacs page-delimiter variable) when scrolling through a message.")
|
|
725
|
|
726 (defvar vm-default-window-configuration
|
|
727 ;; startup = full screan summary
|
|
728 ;; quitting = full screen folder
|
|
729 ;; reading-message = folder on bottom, summary on top
|
|
730 ;; composing-message = full screen composition
|
|
731 ;; editing-message = full screen edit
|
|
732 ;; vm-summarize = folder on bottom, summary on top
|
|
733 '(
|
|
734 (startup
|
|
735 ((((top . 70) (left . 70)))
|
|
736 (((- (0 0 80 10) (0 10 80 40))
|
|
737 ((nil summary) (nil message))
|
|
738 ((nil nil nil t) (nil nil nil nil))))))
|
|
739 (quitting
|
|
740 ((((top . 70) (left . 70)))
|
|
741 (((0 0 80 40)
|
|
742 ((nil message))
|
|
743 ((nil nil nil t))))))
|
|
744 (reading-message
|
|
745 ((((top . 70) (left . 70)))
|
|
746 (((- (0 0 80 10) (0 10 80 40))
|
|
747 ((nil summary) (nil message))
|
|
748 ((nil nil nil t) (nil nil nil nil))))))
|
|
749 (composing-message
|
|
750 ((((top . 70) (left . 70)))
|
|
751 (((0 0 80 40)
|
|
752 ((nil composition))
|
|
753 ((nil nil nil t))))))
|
|
754 (editing-message
|
|
755 ((((top . 70) (left . 70)))
|
|
756 (((0 0 80 40)
|
|
757 ((nil edit))
|
|
758 ((nil nil nil t))))))
|
|
759 (vm-summarize
|
|
760 ((((top . 70) (left . 70)))
|
|
761 (((- (0 0 80 10) (0 10 80 40))
|
|
762 ((nil summary) (nil message))
|
|
763 ((nil nil nil t) (nil nil nil nil))))))
|
|
764 )
|
|
765 "Default window configuration for VM if the user does not specify one.
|
|
766 If you want to completely turn off VM's window configuration
|
|
767 feature, set this variable and vm-window-configuration-file to
|
|
768 nil in your .vm file.
|
|
769
|
|
770 If you want to have a different window configuration setup than
|
|
771 this, you should not set this variable directly. Rather you
|
|
772 should set the variable vm-window-configuration-file to point at
|
|
773 a file, and use the command vm-save-window-configuration
|
|
774 (normally bound to `WS') to modify part of this configuration to
|
|
775 your liking.
|
|
776
|
|
777 WARNING: Don't point vm-window-configuration-file at your .vm or
|
|
778 .emacs file. Your window configuration file should start out as
|
|
779 an empty or nonexistent file. VM will repeatedly overwrite this
|
|
780 file as you update your window configuration settings, so
|
|
781 anything else you put into this file will go away.")
|
|
782
|
|
783 (defvar vm-window-configuration-file "~/.vm.windows"
|
|
784 "*Non-nil value should be a string that tells VM where to load
|
|
785 and save your window configuration settings. Your window
|
|
786 configuration settings are loaded automatically the first time
|
|
787 you run VM in an Emacs session, and tells VM how to set up
|
|
788 windows depending on what you are doing inside VM.
|
|
789
|
|
790 The commands vm-save-window-configuration (normally bound to `WS') and
|
|
791 vm-delete-window-configuration (bound to `WD') let you update this
|
|
792 information; see their documentation for more information.
|
|
793
|
|
794 You cannot change your window configuration setup without giving
|
|
795 vm-window-configuration-file a non-nil value. A nil value causes
|
|
796 VM to use the default window setup specified by the value of
|
|
797 vm-default-window-configuration.
|
|
798
|
|
799 WARNING: Don't point vm-window-configuration-file at your .vm or
|
|
800 .emacs file. Your window configuration file should start out as
|
|
801 an empty or nonexistent file. VM will repeatedly overwrite this
|
|
802 file as you update your window configuration settings, so
|
|
803 anything else you put into this file will go away.")
|
|
804
|
|
805 (defvar vm-confirm-quit 0
|
|
806 "*Value of t causes VM to always ask for confirmation before quitting
|
|
807 a VM visit of a folder. A nil value means VM will ask only when messages
|
|
808 will be lost unwittingly by quitting, i.e. not removed by intentional
|
|
809 delete and expunge. A value that is not nil and not t causes VM to ask
|
|
810 only when there are unsaved changes to message attributes, or when messages
|
|
811 will be unwittingly lost.")
|
|
812
|
|
813 (defvar vm-folder-directory nil
|
|
814 "*Directory where folders of mail are kept.")
|
|
815
|
|
816 (defvar vm-confirm-new-folders nil
|
|
817 "*Non-nil value causes interactive calls to vm-save-message
|
|
818 to ask for confirmation before creating a new folder.")
|
|
819
|
|
820 (defvar vm-delete-empty-folders t
|
|
821 "*Non-nil value means remove empty (zero length) folders after saving
|
|
822 A value of t means always remove the folders.
|
|
823 A value of nil means never remove empty folders.
|
|
824 A value that's not t or nil means ask before removing empty folders.")
|
|
825
|
100
|
826 (defvar vm-flush-interval 90
|
0
|
827 "*Non-nil value specifies how often VM flushes its cached internal
|
|
828 data. A numeric value gives the number of seconds between
|
|
829 flushes. A value of t means flush every time there is a change.
|
|
830 Nil means don't do flushing until a message or folder is saved.
|
|
831
|
|
832 Normally when a message attribute is changed. VM keeps the record
|
|
833 of the change in its internal memory and doesn't insert the
|
|
834 changed data into the folder buffer until a particular message or
|
|
835 the whole folder is saved to disk. This makes normal Emacs
|
|
836 auto-saving useless for VM folder buffers because the information
|
98
|
837 you'd want to auto-save, i.e. the attribute changes are not in
|
0
|
838 the buffer when it is auto-saved.
|
|
839
|
|
840 Setting vm-flush-interval to a numeric value will cause the VM's
|
|
841 internal memory caches to be periodically flushed to the folder
|
|
842 buffer. This is done non-obtrusively, so that if you type
|
|
843 something while flushing is occurring, the flush will abort
|
|
844 cleanly and Emacs will respond to your keystrokes as usual.")
|
|
845
|
|
846 (defvar vm-visit-when-saving 0
|
|
847 "*Value determines whether VM will visit folders when saving messages.
|
|
848 `Visiting' means that VM will read the folder into Emacs and append the
|
|
849 message to the buffer instead of appending to the folder file directly.
|
|
850 This behavior is ideal when folders are encrypted or compressed since
|
|
851 appending plaintext directly to such folders is a ghastly mistake.
|
|
852
|
|
853 A value of t means VM will always visit folders when saving.
|
|
854
|
|
855 A nil value means VM will never visit folders before saving to them, and
|
|
856 VM will generate an error if you attempt to save messages to a folder
|
|
857 that is being visited. The latter restriction is necessary to insure
|
|
858 that the buffer and disk copies of the folder being visited remain
|
|
859 consistent.
|
|
860
|
|
861 A value that is not nil and not t means VM will save to a folder's
|
|
862 buffer if that folder is being visited, otherwise VM saves to the folder
|
|
863 file itself.")
|
|
864
|
|
865 (defvar vm-auto-folder-alist nil
|
|
866 "*Non-nil value should be an alist that VM will use to choose a default
|
|
867 folder name when messages are saved. The alist should be of the form
|
|
868 \((HEADER-NAME-REGEXP
|
|
869 (REGEXP . FOLDER-NAME) ...
|
|
870 ...))
|
|
871 where HEADER-NAME-REGEXP and REGEXP are strings, and FOLDER-NAME
|
|
872 is a string or an s-expression that evaluates to a string.
|
|
873
|
|
874 If any part of the contents of the message header whose name is
|
|
875 matched by HEADER-NAME-REGEXP is matched by the regular
|
|
876 expression REGEXP, VM will evaluate the corresponding FOLDER-NAME
|
|
877 and use the result as the default when prompting for a folder to
|
|
878 save the message in. If the resulting folder name is a relative
|
|
879 pathname, then it will be rooted in the directory named by
|
|
880 vm-folder-directory, or the default-directory of the currently
|
|
881 visited folder if vm-folder-directory is nil.
|
|
882
|
|
883 When FOLDER-NAME is evaluated, the current buffer will contain
|
|
884 only the contents of the header matched by HEADER-NAME-REGEXP.
|
|
885 It is safe to modify this buffer. You can use the match data
|
|
886 from any \\( ... \\) grouping constructs in REGEXP along with the
|
|
887 function buffer-substring to build a folder name based on the
|
|
888 header information. If the result of evaluating FOLDER-NAME is a
|
|
889 list, then the list will be treated as another auto-folder-alist
|
|
890 and will be descended recursively.
|
|
891
|
|
892 Whether REGEXP is matched case sensitively depends on the value
|
|
893 of the variable vm-auto-folder-case-fold-search. Header names
|
|
894 are always matched case insensitively.")
|
|
895
|
|
896 (defvar vm-auto-folder-case-fold-search nil
|
|
897 "*Non-nil value means VM will ignore case when matching header
|
|
898 contents while doing automatic folder selection via the variable
|
|
899 vm-auto-folder-alist.")
|
|
900
|
|
901 (defvar vm-virtual-folder-alist nil
|
|
902 "*Non-nil value should be a list of virtual folder definitions.
|
|
903
|
|
904 A virtual folder is a mapping of messages from one or more real folders
|
|
905 into what appears to be a single folder. A virtual folder definition
|
|
906 specifies which real folders should be searched for prospective messages
|
|
907 and what the inclusion criteria are.
|
|
908
|
|
909 Each virtual folder definition should have the following form:
|
|
910
|
|
911 (VIRTUAL-FOLDER-NAME
|
|
912 ( (FOLDER-NAME ...)
|
|
913 (SELECTOR [ARG ...]) ... )
|
|
914 ... )
|
|
915
|
|
916 VIRTUAL-FOLDER-NAME is the name of the virtual folder being defined.
|
|
917 This is the name by which you and VM will refer to this folder.
|
|
918
|
|
919 FOLDER-NAME should be the name of a real folder. There may be more than
|
|
920 one FOLDER-NAME listed, the SELECTORs within that sublist will apply to
|
|
921 them all. If FOLDER-NAME is a directory, VM will assume this to mean that
|
|
922 all the folders in that directory should be searched.
|
|
923
|
|
924 The SELECTOR is a Lisp symbol that tells VM how to decide whether a message
|
|
925 from one of the folders specified by the FOLDER-NAMEs should be included
|
|
926 in the virtual folder. Some SELECTORs require an argument ARG; unless
|
|
927 otherwise noted ARG may be omitted.
|
|
928
|
|
929 The recognized SELECTORs are:
|
|
930
|
|
931 author - matches message if ARG matches the author; ARG should be a
|
|
932 regular expression.
|
|
933 and - matches the message if all its argument
|
|
934 selectors match the message. Example:
|
|
935 (and (author \"Derek McGinty\") (new))
|
|
936 matches all new messages from Derek McGinty.
|
|
937 `and' takes any number of arguments.
|
|
938 any - matches any message.
|
|
939 deleted - matches message if it is flagged for deletion.
|
|
940 edited - matches message if it has been edited.
|
|
941 filed - matched message if it has been saved with its headers.
|
|
942 forwarded - matches message if it has been forwarded.
|
|
943 header - matches message if ARG matches any part of the header
|
|
944 portion of the message; ARG should be a
|
|
945 regular expression.
|
|
946 label - matches message if message has a label named ARG.
|
|
947 less-chars-than - matches message if message has less than ARG
|
|
948 characters. ARG should be a number.
|
|
949 less-lines-than - matches message if message has less than ARG
|
|
950 lines. ARG should be a number.
|
|
951 more-chars-than - matches message if message has more than ARG
|
|
952 characters. ARG should be a number.
|
|
953 more-lines-than - matches message if message has more than ARG
|
|
954 lines. ARG should be a number.
|
|
955 marked - matches message if it is marked, as with vm-mark-message.
|
|
956 new - matches message if it is new.
|
|
957 not - matches message only if its selector argument
|
|
958 does NOT match the message. Example:
|
|
959 (not (deleted))
|
|
960 matches messages that are not deleted.
|
|
961 or - matches the message if any of its argument
|
|
962 selectors match the message. Example:
|
|
963 (or (author \"Dave Weckl\") (subject \"drum\"))
|
|
964 matches messages from Dave Weckl or messages
|
|
965 with the word \"drum\" in their Subject header.
|
|
966 `or' takes any number of arguments.
|
|
967 read - matches message if it is neither new nor unread.
|
|
968 recipient - matches message if ARG matches any part of the recipient
|
|
969 list of the message. ARG should be a regular expression.
|
|
970 replied - matches message if it has been replied to.
|
|
971 sent-after - matches message if it was sent after the date ARG.
|
|
972 A fully specified date looks like this:
|
|
973 \"31 Dec 1999 23:59:59 GMT\"
|
|
974 although the parts can appear in any order.
|
|
975 You can leave out any part and it will
|
|
976 default to the current date's value for that
|
|
977 part, with the exception of the hh:mm:ss
|
|
978 part which defaults to midnight.
|
|
979 sent-before - matches message if it was sent before the date ARG.
|
|
980 A fully specified date looks like this:
|
|
981 \"31 Dec 1999 23:59:59 GMT\"
|
|
982 although the parts can appear in any order.
|
|
983 You can leave out any part and it will
|
|
984 default to the current date's value for that
|
|
985 part, with the exception of the hh:mm:ss
|
|
986 part which defaults to midnight.
|
|
987 subject - matches message if ARG matches any part of the message's
|
|
988 subject; ARG should be a regular expression.
|
|
989 text - matches message if ARG matches any part of the text
|
|
990 portion of the message; ARG should be a
|
|
991 regular expression.
|
|
992 unread - matches message if it is old but unread.
|
|
993 written - matches message if it has been saved without its headers.
|
|
994 ")
|
|
995
|
|
996 (defvar vm-virtual-mirror t
|
|
997 "*Non-nil value causes the attributes of messages in virtual folders
|
|
998 to mirror the changes in the attributes of the underlying real messages.
|
|
999 Similarly, changes in the attributes of virtual messages will change the
|
|
1000 attributes of the underlying real messages. A nil value causes virtual
|
|
1001 messages to have their own distinct set of attributes, apart from the
|
|
1002 underlying real message.
|
|
1003
|
|
1004 This variable automatically becomes buffer-local when set in any
|
|
1005 fashion. You should set this variable only in your .vm or .emacs
|
|
1006 file. Use setq-default. Once VM has been started, you should not
|
|
1007 set this variable directly, rather you should use the command
|
|
1008 vm-toggle-virtual-mirror, normally bound to `V M'.")
|
|
1009 (make-variable-buffer-local 'vm-virtual-mirror)
|
|
1010
|
|
1011 (defvar vm-folder-read-only nil
|
|
1012 "*Non-nil value causes a folder to be considered unmodifiable by VM.
|
|
1013 Commands that modify message attributes or messages themselves are disallowed.
|
|
1014 Commands that add or delete messages from the folder are disallowed.
|
|
1015 Commands that scan or allow the reading of messages are allowed but the
|
|
1016 `new' and `unread' message flags are not changed by them.
|
|
1017
|
|
1018 This variable automatically becomes buffer-local when set in any
|
|
1019 fashion. You should set this variable only in your .vm or .emacs
|
|
1020 file. Use setq-default. Once VM has been started, you should not
|
|
1021 set this variable directly, rather you should use the command
|
|
1022 vm-toggle-read-only, normally bound to C-x C-q.")
|
|
1023 (make-variable-buffer-local 'vm-folder-read-only)
|
|
1024
|
|
1025 (defvar vm-included-text-prefix " > "
|
|
1026 "*String used to prefix included text in replies.")
|
|
1027
|
|
1028 (defvar vm-keep-sent-messages 1
|
|
1029 "*Non-nil value N causes VM to keep the last N messages sent from within VM.
|
|
1030 `Keep' means that VM will not kill the VM mail buffer after you send a message
|
|
1031 with C-c C-c (vm-mail-send-and-exit). A value of 0 or nil causes VM never
|
|
1032 to keep such buffers. A value of t causes VM never to kill such buffers.
|
|
1033
|
|
1034 Note that these buffers will vanish once you exit Emacs. To keep a permanent
|
|
1035 record of your outgoing mail, use the mail-archive-file-name variable.")
|
|
1036
|
|
1037 (defvar vm-confirm-mail-send nil
|
|
1038 "*Non-nil means ask before sending a mail message.
|
|
1039 This affects vm-mail-send and vm-mail-send-and-exit in Mail mode.")
|
|
1040
|
|
1041 (defvar vm-mail-header-from nil
|
|
1042 "*Non-nil value should be a string that will be appear as the body
|
|
1043 of the From header in outbound mail messages. A nil value means don't
|
|
1044 insert a From header. This variable also controls the inclusion and
|
|
1045 format of the Resent-From header, when resending a message with
|
|
1046 vm-resend-message.")
|
|
1047
|
|
1048 (defvar vm-reply-subject-prefix nil
|
|
1049 "*Non-nil value should be a string that VM should add to the beginning
|
|
1050 of the Subject header in replies, if the string is not already present.
|
|
1051 Nil means don't prefix the Subject header.")
|
|
1052
|
|
1053 (defvar vm-reply-ignored-addresses nil
|
|
1054 "*Non-nil value should be a list of regular expressions that match
|
|
1055 addresses that VM should automatically remove from the recipient
|
|
1056 headers of replies. These addresses are removed from the headers
|
|
1057 before you are placed in the message composition buffer. So if
|
|
1058 you see an address in the header you don't want you should remove
|
|
1059 it yourself.
|
|
1060
|
|
1061 Case is ignored when matching the addresses.")
|
|
1062
|
|
1063 (defvar vm-reply-ignored-reply-tos nil
|
|
1064 "*Non-nil value should be a list of regular expressions that match
|
|
1065 addresses that, if VM finds in a message's Reply-To header, VM
|
|
1066 should ignore the Reply-To header and not use it for replies. VM
|
|
1067 will use the From header instead.
|
|
1068
|
|
1069 Case is ignored when matching the addresses.
|
|
1070
|
|
1071 This variable exists solely to provide a escape chute from
|
|
1072 mailing lists that add a Reply-To: mailing list header, thereby
|
|
1073 leaving no way to reply to just the author of a message.")
|
|
1074
|
|
1075 (defvar vm-in-reply-to-format "%i"
|
|
1076 "*String which specifies the format of the contents of the In-Reply-To
|
|
1077 header that is generated for replies. See the documentation for the
|
|
1078 variable vm-summary-format for information on what this string may
|
|
1079 contain. The format should *not* end with a newline.
|
|
1080 Nil means don't put an In-Reply-To header in replies.")
|
|
1081
|
|
1082 (defvar vm-included-text-attribution-format "%F writes:\n"
|
|
1083 "*String which specifies the format of the attribution that precedes the
|
|
1084 included text from a message in a reply. See the documentation for the
|
|
1085 variable vm-summary-format for information on what this string may contain.
|
|
1086 Nil means don't attribute included text in replies.")
|
|
1087
|
|
1088 (defvar vm-included-text-headers nil
|
|
1089 "*List of headers that should be retained in a message included in
|
|
1090 a reply. These should be listed in the order you wish them to
|
|
1091 appear in the included text. Regular expressions are allowed.
|
|
1092 There's no need to anchor patterns with \"^\", as searches always
|
|
1093 start at the beginning of a line. Put a colon at the end of
|
|
1094 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
1095 and \"Date-Sent\".) Header names are always matched case
|
|
1096 insensitively.
|
|
1097
|
|
1098 If the value of vm-included-text-discard-header-regexp is nil,
|
|
1099 the headers matched by vm-included-text-headers are the only
|
|
1100 headers that will be retained.
|
|
1101
|
|
1102 If vm-included-text-discard-header-regexp is non-nil, then only
|
|
1103 headers matched by that variable will be omitted; all others will
|
|
1104 be included. vm-included-text-headers determines the header
|
|
1105 order in that case, with headers not matching any in the
|
|
1106 vm-included-text-headers list appearing last in the header
|
|
1107 section of the included text.")
|
|
1108
|
|
1109 (defvar vm-included-text-discard-header-regexp nil
|
|
1110 "*Non-nil value should be a regular expression header that tells
|
|
1111 what headers should not be retained in a message included in a
|
|
1112 reply. This variable along with vm-included-text-headers determines
|
|
1113 which headers are retained.
|
|
1114
|
|
1115 If the value of vm-included-text-discard-header-regexp is nil,
|
|
1116 the headers matched by vm-included-text-headers are the only headers
|
|
1117 that will be retained.
|
|
1118
|
|
1119 If vm-included-text-discard-header-regexp is non-nil, then only
|
|
1120 headers matched by this variable will not be retained; all
|
|
1121 others will be included. vm-included-text-headers determines the
|
|
1122 header order in that case, with headers not matching any in
|
|
1123 the vm-included-text-headers list appearing last in the header
|
|
1124 section of the included text.")
|
|
1125
|
|
1126 (defvar vm-forwarding-subject-format "forwarded message from %F"
|
|
1127 "*String which specifies the format of the contents of the Subject
|
|
1128 header that is generated for a forwarded message. See the documentation
|
|
1129 for the variable vm-summary-format for information on what this string
|
|
1130 may contain. The format should *not* end with nor contain a newline.
|
|
1131 Nil means leave the Subject header empty when forwarding.")
|
|
1132
|
|
1133 (defvar vm-forwarded-headers nil
|
|
1134 "*List of headers that should be forwarded by vm-forward-message.
|
|
1135 These should be listed in the order you wish them to appear in
|
|
1136 the forwarded message. Regular expressions are allowed.
|
|
1137 There's no need to anchor patterns with \"^\", as searches always
|
|
1138 start at the beginning of a line. Put a colon at the end of
|
|
1139 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
1140 and \"Date-Sent\".) Header names are always matched case
|
|
1141 insensitively.
|
|
1142
|
|
1143 If the value of vm-unforwarded-header-regexp is nil, the headers
|
|
1144 matched by vm-forwarded-headers are the only headers that will be
|
|
1145 forwarded.
|
|
1146
|
|
1147 If vm-unforwarded-header-regexp is non-nil, then only headers
|
|
1148 matched by that variable will be omitted; all others will be
|
|
1149 forwarded. vm-forwarded-headers determines the forwarding order
|
|
1150 in that case, with headers not matching any in the
|
|
1151 vm-forwarded-headers list appearing last in the header section of
|
|
1152 the forwarded message.")
|
|
1153
|
|
1154 (defvar vm-unforwarded-header-regexp "only-drop-this-header"
|
|
1155 "*Non-nil value should be a regular expression header that tells
|
|
1156 what headers should not be forwarded by vm-forward-message. This
|
|
1157 variable along with vm-forwarded-headers determines which headers
|
|
1158 are forwarded.
|
|
1159
|
|
1160 If the value of vm-unforwarded-header-regexp is nil, the headers
|
|
1161 matched by vm-forwarded-headers are the only headers that will be
|
|
1162 forwarded.
|
|
1163
|
|
1164 If vm-unforwarded-header-regexp is non-nil, then only headers
|
|
1165 matched by this variable will not be forwarded; all others will
|
|
1166 be forwarded. vm-forwarded-headers determines the forwarding
|
|
1167 order in that case, with headers not matching any in the
|
|
1168 vm-forwarded-headers list appearing last in the header section of
|
|
1169 the forwarded message.")
|
|
1170
|
98
|
1171 (defvar vm-forwarding-digest-type "mime"
|
0
|
1172 "*Non-nil value should be a string that specifies the type of
|
|
1173 message encapsulation format to use when forwarding a message.
|
|
1174 Legal values of this variable are:
|
|
1175
|
|
1176 \"rfc934\"
|
|
1177 \"rfc1153\"
|
98
|
1178 \"mime\"
|
0
|
1179 nil
|
|
1180
|
|
1181 A nil value means don't use a digest, just mark the beginning and
|
|
1182 end of the forwarded message.")
|
|
1183
|
98
|
1184 (defvar vm-burst-digest-messages-inherit-labels t
|
|
1185 "*Non-nil values means messages from a digest inherit the digest's labels.
|
|
1186 Labels are added to messages with vm-add-message-labels, normally
|
|
1187 bound to `l a'.")
|
|
1188
|
0
|
1189 (defvar vm-digest-preamble-format "\"%s\" (%F)"
|
|
1190 "*String which specifies the format of the preamble lines generated by
|
|
1191 vm-send-digest when it is invoked with a prefix argument. One
|
|
1192 line will be generated for each message put into the digest. See the
|
|
1193 documentation for the variable vm-summary-format for information
|
|
1194 on what this string may contain. The format should *not* end
|
|
1195 with nor contain a newline.")
|
|
1196
|
|
1197 (defvar vm-digest-center-preamble t
|
|
1198 "*Non-nil value means VM will center the preamble lines that precede
|
|
1199 the start of a digest. How the lines will be centered depends on the
|
|
1200 ambient value of fill-column. A nil value suppresses centering.")
|
|
1201
|
|
1202 (defvar vm-digest-identifier-header-format "X-Digest: %s\n"
|
|
1203 "*Header to insert into messages burst from a digest.
|
70
|
1204 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.")
|
0
|
1205
|
98
|
1206 (defvar vm-digest-burst-type "guess"
|
0
|
1207 "*Value specifies the default digest type offered by vm-burst-digest
|
|
1208 when it asks you what type of digest you want to unpack. Allowed
|
|
1209 values of this variable are:
|
|
1210
|
|
1211 \"rfc934\"
|
|
1212 \"rfc1153\"
|
98
|
1213 \"mime\"
|
0
|
1214 \"guess\"
|
|
1215
|
98
|
1216 rfc1153 digests have a preamble, followed by a line of exactly 70
|
|
1217 dashes, with digested messages separated by lines of exactly 30 dashes.
|
|
1218
|
|
1219 rfc934 digests separate messages on any line that begins with a few
|
|
1220 dashes, but doesn't require lines with only dashes or lines with a
|
|
1221 specific number of dashes. In the text of the message, any line
|
|
1222 beginning with dashes is textually modified to be preceeded by a dash
|
|
1223 and a space to prevent confusion with message separators.
|
|
1224
|
|
1225 MIME digests use whatever boundary that is specified by the
|
|
1226 boundary parameter in the Content-Type header of the digest.
|
|
1227
|
0
|
1228 If the value is \"guess\", and you take the default
|
|
1229 response when vm-burst-digest queries you, VM will try to guess
|
|
1230 the digest type.")
|
|
1231
|
98
|
1232 (defvar vm-digest-send-type "mime"
|
0
|
1233 "*String that specifies the type of digest vm-send-digest will use.
|
|
1234 Legal values of this variable are:
|
|
1235
|
|
1236 \"rfc934\"
|
|
1237 \"rfc1153\"
|
98
|
1238 \"mime\"
|
0
|
1239
|
|
1240 ")
|
|
1241
|
|
1242 (defvar vm-rfc934-digest-headers
|
|
1243 '("Resent-"
|
|
1244 "From:" "Sender:"
|
|
1245 "To:" "Cc:"
|
|
1246 "Subject:"
|
|
1247 "Date:"
|
|
1248 "Message-ID:"
|
|
1249 "Keywords:")
|
|
1250 "*List of headers that should be appear in RFC 934 digests
|
|
1251 created by VM. These should be listed in the order you wish them
|
|
1252 to appear in the digest. Regular expressions are allowed.
|
|
1253 There's no need to anchor patterns with \"^\", as searches always
|
|
1254 start at the beginning of a line. Put a colon at the end of
|
|
1255 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
1256 and \"Date-Sent\".) Header names are always matched case
|
|
1257 insensitively.
|
|
1258
|
|
1259 If the value of vm-rfc934-digest-discard-header-regexp is nil, the headers
|
|
1260 matched by vm-rfc934-digest-headers are the only headers that will be
|
|
1261 kept.
|
|
1262
|
|
1263 If vm-rfc934-digest-discard-header-regexp is non-nil, then only
|
|
1264 headers matched by that variable will be discarded; all others
|
|
1265 will be kept. vm-rfc934-digest-headers determines the order of
|
|
1266 appearance in that case, with headers not matching any in the
|
|
1267 vm-rfc934-digest-headers list appearing last in the headers
|
|
1268 of the digestified messages.")
|
|
1269
|
|
1270 (defvar vm-rfc934-digest-discard-header-regexp nil
|
|
1271 "*Non-nil value should be a regular expression header that tells
|
|
1272 what headers should not appear in RFC 934 digests created by VM. This
|
|
1273 variable along with vm-rfc934-digest-headers determines which headers
|
|
1274 are kept and which are discarded.
|
|
1275
|
|
1276 If the value of vm-rfc934-digest-discard-header-regexp is nil, the headers
|
|
1277 matched by vm-rfc934-digest-headers are the only headers that will be
|
|
1278 kept.
|
|
1279
|
|
1280 If vm-rfc934-digest-discard-header-regexp is non-nil, then only
|
|
1281 headers matched by this variable will be discarded; all others
|
|
1282 will be kept. vm-rfc934-digest-headers determines the order of
|
|
1283 appearance in that case, with headers not matching any in the
|
|
1284 vm-rfc934-digest-headers list appearing last in the headers
|
|
1285 of the digestified messages.")
|
|
1286
|
|
1287 (defvar vm-rfc1153-digest-headers
|
|
1288 '("Resent-"
|
|
1289 "Date:"
|
|
1290 "From:" "Sender:"
|
|
1291 "To:" "Cc:"
|
|
1292 "Subject:"
|
|
1293 "Message-ID:"
|
|
1294 "Keywords:")
|
|
1295 "*List of headers that should be appear in RFC 1153 digests
|
|
1296 created by VM. These should be listed in the order you wish them
|
|
1297 to appear in the digest. Regular expressions are allowed.
|
|
1298 There is no need to anchor patterns with \"^\", as searches always
|
|
1299 start at the beginning of a line. Put a colon at the end of
|
|
1300 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
1301 and \"Date-Sent\".) Header names are always matched case
|
|
1302 insensitively.
|
|
1303
|
|
1304 If the value of vm-rfc1153-digest-discard-header-regexp is nil, the headers
|
|
1305 matched by vm-rfc1153-digest-headers are the only headers that will be
|
|
1306 kept.
|
|
1307
|
|
1308 If vm-rfc1153-digest-discard-header-regexp is non-nil, then only
|
|
1309 headers matched by that variable will be discarded; all others
|
|
1310 will be kept. vm-rfc1153-digest-headers determines the order of
|
|
1311 appearance in that case, with headers not matching any in the
|
|
1312 vm-rfc1153-digest-headers list appearing last in the headers of
|
|
1313 the digestified messages.")
|
|
1314
|
|
1315 (defvar vm-rfc1153-digest-discard-header-regexp "\\(X400-\\)?Received:"
|
|
1316 "*Non-nil value should be a regular expression header that tells
|
|
1317 what headers should not appear in RFC 1153 digests created by VM. This
|
|
1318 variable along with vm-rfc1153-digest-headers determines which headers
|
|
1319 are kept and which headers are discarded.
|
|
1320
|
|
1321 If the value of vm-rfc1153-digest-discard-header-regexp is nil, the headers
|
|
1322 matched by vm-rfc1153-digest-headers are the only headers that will be
|
|
1323 kept.
|
|
1324
|
|
1325 If vm-rfc1153-digest-discard-header-regexp is non-nil, then only
|
|
1326 headers matched by this variable will be discarded; all others
|
|
1327 will be kept. vm-rfc1153-digest-headers determines the order of
|
|
1328 appearance in that case, with headers not matching any in the
|
|
1329 vm-rfc1153-digest-headers list appearing last in the headers of
|
|
1330 the digestified messages.")
|
|
1331
|
98
|
1332 (defvar vm-mime-digest-headers
|
|
1333 '("Resent-"
|
|
1334 "From:" "Sender:"
|
|
1335 "To:" "Cc:"
|
|
1336 "Subject:"
|
|
1337 "Date:"
|
|
1338 "Message-ID:"
|
|
1339 "Keywords:"
|
|
1340 "MIME-Version:"
|
|
1341 "Content-")
|
|
1342 "*List of headers that should be appear in MIME digests
|
|
1343 created by VM. These should be listed in the order you wish them
|
|
1344 to appear in the messages in the digest. Regular expressions are
|
|
1345 allowed. There's no need to anchor patterns with \"^\", as
|
|
1346 searches always start at the beginning of a line. Put a colon at
|
|
1347 the end of patterns to get exact matches. (E.g. \"Date\" matches
|
|
1348 \"Date\" and \"Date-Sent\".) Header names are always matched
|
|
1349 case insensitively.
|
|
1350
|
|
1351 If the value of vm-mime-digest-discard-header-regexp is nil, the headers
|
|
1352 matched by vm-mime-digest-headers are the only headers that will be
|
|
1353 kept.
|
|
1354
|
|
1355 If vm-mime-digest-discard-header-regexp is non-nil, then only
|
|
1356 headers matched by that variable will be discarded; all others
|
|
1357 will be kept. vm-mime-digest-headers determines the order of
|
|
1358 appearance in that case, with headers not matching any in the
|
|
1359 vm-mime-digest-headers list appearing last in the headers
|
|
1360 of the digestified messages.")
|
|
1361
|
|
1362 (defvar vm-mime-digest-discard-header-regexp nil
|
|
1363 "*Non-nil value should be a regular expression header that tells
|
|
1364 which headers should not appear in MIME digests created
|
|
1365 by VM. This variable along with vm-mime-digest-headers
|
|
1366 determines which headers are kept and which are discarded.
|
|
1367
|
|
1368 If the value of vm-mime-digest-discard-header-regexp is nil, the headers
|
|
1369 matched by vm-mime-digest-headers are the only headers that will be
|
|
1370 kept.
|
|
1371
|
|
1372 If vm-mime-digest-discard-header-regexp is non-nil, then only
|
|
1373 headers matched by this variable will be discarded; all others
|
|
1374 will be kept. vm-mime-digest-headers determines the order of
|
|
1375 appearance in that case, with headers not matching any in the
|
|
1376 vm-mime-digest-headers list appearing last in the headers
|
|
1377 of the digestified messages.")
|
|
1378
|
0
|
1379 (defvar vm-resend-bounced-headers
|
98
|
1380 '("MIME-Version:" "Content-"
|
0
|
1381 "From:" "Sender:" "Reply-To:"
|
|
1382 "To:" "Cc:"
|
|
1383 "Subject:"
|
|
1384 "Newsgroups:"
|
|
1385 "In-Reply-To:" "References:"
|
|
1386 "Keywords:"
|
|
1387 "X-")
|
|
1388 "*List of headers that should be appear in messages resent with
|
|
1389 vm-resend-bounced-message. These should be listed in the order you wish them
|
|
1390 to appear in the message. Regular expressions are allowed.
|
|
1391 There is no need to anchor patterns with \"^\", as searches always
|
|
1392 start at the beginning of a line. Put a colon at the end of
|
|
1393 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
1394 and \"Date-Sent\".) Header names are always matched case
|
|
1395 insensitively.
|
|
1396
|
|
1397 If the value of vm-resend-bounced-discard-header-regexp is nil, the headers
|
|
1398 matched by vm-resend-bounced-headers are the only headers that will be
|
|
1399 kept.
|
|
1400
|
|
1401 If vm-resend-bounced-discard-header-regexp is non-nil, then only
|
|
1402 headers matched by that variable will be discarded; all others
|
|
1403 will be kept. vm-resend-bounced-headers determines the order of
|
|
1404 appearance in that case, with headers not matching any in the
|
|
1405 vm-resend-bounced-headers list appearing last in the headers of
|
|
1406 the message.")
|
|
1407
|
|
1408 (defvar vm-resend-bounced-discard-header-regexp nil
|
|
1409 "*Non-nil value should be a regular expression that tells
|
|
1410 what headers should not appear in a resent bounced message. This
|
|
1411 variable along with vm-resend-bounced-headers determines which headers
|
|
1412 are kept and which headers are discarded.
|
|
1413
|
|
1414 If the value of vm-resend-bounced-discard-header-regexp is nil,
|
|
1415 the headers matched by vm-resend-bounced-headers are the only
|
|
1416 headers that will be kept.
|
|
1417
|
|
1418 If vm-resend-bounced-discard-header-regexp is non-nil, then only
|
|
1419 headers matched by this variable will be discarded; all others
|
|
1420 will be kept. vm-resend-bounced-headers determines the order of
|
|
1421 appearance in that case, with headers not matching any in the
|
|
1422 vm-resend-bounced-headers list appearing last in the headers of
|
|
1423 the message.")
|
|
1424
|
|
1425 (defvar vm-resend-headers nil
|
|
1426 "*List of headers that should be appear in messages resent with
|
|
1427 vm-resend-message. These should be listed in the order you wish them
|
|
1428 to appear in the message. Regular expressions are allowed.
|
|
1429 There is no need to anchor patterns with \"^\", as searches always
|
|
1430 start at the beginning of a line. Put a colon at the end of
|
|
1431 patterns to get exact matches. (E.g. \"Date\" matches \"Date\"
|
|
1432 and \"Date-Sent\".) Header names are always matched case
|
|
1433 insensitively.
|
|
1434
|
|
1435 If the value of vm-resend-discard-header-regexp is nil, the headers
|
|
1436 matched by vm-resend-headers are the only headers that will be
|
|
1437 kept.
|
|
1438
|
|
1439 If vm-resend-discard-header-regexp is non-nil, then only
|
|
1440 headers matched by that variable will be discarded; all others
|
|
1441 will be kept. vm-resend-headers determines the order of
|
|
1442 appearance in that case, with headers not matching any in the
|
|
1443 vm-resend-headers list appearing last in the headers of
|
|
1444 the message.")
|
|
1445
|
|
1446 (defvar vm-resend-discard-header-regexp "\\(\\(X400-\\)?Received:\\|Resent-\\)"
|
|
1447 "*Non-nil value should be a regular expression that tells
|
|
1448 what headers should not appear in a resent message. This
|
98
|
1449 variable along with vm-resend-headers determines which
|
0
|
1450 headers are kept and which headers are discarded.
|
|
1451
|
|
1452 If the value of vm-resend-discard-header-regexp is nil,
|
|
1453 the headers matched by vm-resend-headers are the only
|
|
1454 headers that will be kept.
|
|
1455
|
|
1456 If vm-resend-discard-header-regexp is non-nil, then only
|
|
1457 headers matched by this variable will be discarded; all others
|
|
1458 will be kept. vm-resend-headers determines the order of
|
|
1459 appearance in that case, with headers not matching any in the
|
|
1460 vm-resend-headers list appearing last in the headers of
|
|
1461 the message.")
|
|
1462
|
|
1463 (defvar vm-summary-format "%n %*%a %-17.17F %-3.3m %2d %4l/%-5c %I\"%s\"\n"
|
|
1464 "*String which specifies the message summary line format.
|
|
1465 The string may contain the printf-like `%' conversion specifiers which
|
|
1466 substitute information about the message into the final summary line.
|
|
1467
|
|
1468 Recognized specifiers are:
|
|
1469 a - attribute indicators (always four characters wide)
|
|
1470 The first char is `D', `N', `U' or ` ' for deleted, new, unread
|
|
1471 and read messages respectively.
|
|
1472 The second char is `F', `W' or ` ' for filed (saved) or written
|
|
1473 messages.
|
|
1474 The third char is `R', `Z' or ` ' for messages replied to,
|
|
1475 and forwarded messages.
|
|
1476 The fourth char is `E' if the message has been edited, ` ' otherwise.
|
|
1477 A - longer version of attributes indicators (seven characters wide)
|
|
1478 The first char is `D', `N', `U' or ` ' for deleted, new, unread
|
|
1479 and read messages respectively.
|
|
1480 The second is `r' or ` ', for message replied to.
|
|
1481 The third is `z' or ` ', for messages forwarded.
|
|
1482 The fourth is `b' or ` ', for messages redistributed.
|
|
1483 The fifth is `f' or ` ', for messages filed.
|
|
1484 The sixth is `w' or ` ', for messages written.
|
|
1485 The seventh is `e' or ` ', for messages that have been edited.
|
|
1486 c - number of characters in message (ignoring headers)
|
|
1487 d - numeric day of month message sent
|
|
1488 f - author's address
|
|
1489 F - author's full name (same as f if full name not found)
|
|
1490 h - hour:min:sec message sent
|
|
1491 H - hour:min message sent
|
|
1492 i - message ID
|
|
1493 I - thread indentation
|
|
1494 l - number of lines in message (ignoring headers)
|
|
1495 L - labels (as a comma list)
|
|
1496 m - month message sent
|
|
1497 M - numeric month message sent (January = 1)
|
|
1498 n - message number
|
|
1499 s - message subject
|
|
1500 t - addresses of the recipients of the message, in a comma-separated list
|
|
1501 T - full names of the recipients of the message, in a comma-separated list
|
|
1502 If a full name cannot be found, the corresponding address is used
|
|
1503 instead.
|
|
1504 U - user defined specifier. The next character in the format
|
|
1505 string should be a letter. VM will call the function
|
|
1506 vm-summary-function-<letter> (e.g. vm-summary-function-A for
|
|
1507 \"%UA\") in the folder buffer with the message being summarized
|
|
1508 bracketed by (point-min) and (point-max). The function
|
|
1509 will be passed a message struct as an argument.
|
|
1510 The function should return a string, which VM will insert into
|
|
1511 the summary as it would for information from any other summary
|
|
1512 specifier.
|
|
1513 w - day of the week message sent
|
|
1514 y - year message sent
|
|
1515 z - timezone of date when the message was sent
|
|
1516 * - `*' if the message is marked, ` ' otherwise
|
|
1517
|
|
1518 Use %% to get a single %.
|
|
1519
|
|
1520 A numeric field width may be given between the `%' and the specifier;
|
|
1521 this causes right justification of the substituted string. A negative field
|
|
1522 width causes left justification.
|
|
1523
|
|
1524 The field width may be followed by a `.' and a number specifying
|
|
1525 the maximum allowed length of the substituted string. If the
|
|
1526 string is longer than this value the right end of the string is
|
|
1527 truncated. If the value is negative, the string is truncated on
|
98
|
1528 the left instead of the right.
|
0
|
1529
|
|
1530 The summary format need not be one line per message but it must end with
|
|
1531 a newline, otherwise the message pointer will not be displayed correctly
|
|
1532 in the summary window.")
|
|
1533
|
|
1534 (defvar vm-summary-arrow "->"
|
|
1535 "*String that is displayed to the left of the summary of the
|
|
1536 message VM consider to be the current message. The value takes
|
|
1537 effect when the summary buffer is created. Changing this
|
|
1538 variable's value has no effect on existing summary buffers.")
|
|
1539
|
|
1540 (defvar vm-summary-highlight-face 'bold
|
|
1541 "*Face to use to highlight the summary entry for the current message.
|
|
1542 Nil means don't highlight the current message's summary entry.")
|
|
1543
|
98
|
1544 (defvar vm-mouse-track-summary t
|
|
1545 "*Non-nil value means highlight summary lines as the mouse passes
|
|
1546 over them.")
|
|
1547
|
0
|
1548 (defvar vm-summary-show-threads nil
|
|
1549 "*Non-nil value means VM should display and maintain
|
|
1550 message thread trees in the summary buffer. This means that
|
|
1551 messages with a common ancestor will be displayed contiguously in
|
|
1552 the summary. (If you have vm-move-messages-physically set
|
|
1553 non-nil the folder itself will be reordered to match the thread
|
|
1554 ordering.) If you use the `%I' summary format specifier in your
|
|
1555 vm-summary-format, indentation will be provided as described in the
|
|
1556 documentation for vm-summary-thread-indent-level (which see).
|
|
1557
|
|
1558 A nil value means don't display thread information. The `%I'
|
|
1559 specifier does nothing in the summary format.
|
|
1560
|
|
1561 This variable automatically becomes buffer-local when set in any
|
|
1562 fashion. You should set this variable only in your .vm or .emacs
|
|
1563 file. Use setq-default. Once VM has been started, you should not
|
|
1564 set this variable directly, rather you should use the command
|
|
1565 vm-toggle-threads-display, normally bound to C-t.")
|
|
1566 (make-variable-buffer-local 'vm-summary-show-threads)
|
|
1567
|
|
1568 (defvar vm-summary-thread-indent-level 2
|
|
1569 "*Value should be a number that specifies how much
|
|
1570 indentation the '%I' summary format specifier should provide per
|
|
1571 thread level. A message's `thread level' refers to the number of
|
|
1572 direct ancestors from the message to the oldest ancestor the
|
|
1573 message has that is in the current folder. For example, the
|
|
1574 first message of a thread is generally a message about a new
|
|
1575 topic, e.g. a message that is not a reply to some other message.
|
|
1576 Therefore it has no ancestor and would cause %I to generate no
|
|
1577 indentation. A reply to this message will be indented by the value
|
|
1578 of vm-summary-thread-indent-level. A reply to that reply will be
|
|
1579 indented twice the value of vm-summary-thread-indent-level.")
|
|
1580
|
|
1581 (defvar vm-thread-using-subject t
|
|
1582 "*Non-nil value causes VM to use the Subject header to thread messages.
|
|
1583 Messages with the same subject will be grouped together.
|
|
1584
|
|
1585 A nil value means VM will disregard the Subject header when
|
|
1586 threading messages.")
|
|
1587
|
|
1588 (defvar vm-summary-uninteresting-senders nil
|
|
1589 "*Non-nil value should be a regular expression that matches
|
|
1590 addresses that you don't consider interesting enough to
|
|
1591 appear in the summary. When such senders would be displayed by
|
|
1592 the %F or %f summary format specifiers VM will substitute the
|
|
1593 value of vm-summary-uninteresting-senders-arrow (default \"To:
|
|
1594 \") followed by what would be shown by the %T and %t specifiers
|
|
1595 respectively.")
|
|
1596
|
|
1597 (defvar vm-summary-uninteresting-senders-arrow "To: "
|
|
1598 "*String to display before the string that is displayed instead of an
|
|
1599 \"uninteresting\" sender. See vm-summary-uninteresting-senders.")
|
|
1600
|
|
1601 (defvar vm-auto-center-summary nil
|
|
1602 "*Value controls whether VM will keep the summary arrow vertically
|
|
1603 centered within the summary window. A value of t causes VM to always
|
|
1604 keep arrow centered. A value of nil means VM will never bother centering
|
|
1605 the arrow. A value that is not nil and not t causes VM to center the
|
|
1606 arrow only if the summary window is not the only existing window.")
|
|
1607
|
|
1608 (defvar vm-subject-ignored-prefix "^\\(re: *\\)+"
|
|
1609 "*Non-nil value should be a regular expression that matches
|
|
1610 strings at the beginning of the Subject header that you want VM to ignore
|
|
1611 when threading, sorting, marking, and killing messages by subject.
|
|
1612
|
|
1613 Matches are done case-insensitively.")
|
|
1614
|
|
1615 (defvar vm-subject-ignored-suffix "\\( (fwd)\\| \\)+$"
|
|
1616 "*Non-nil value should be a regular expression that matches
|
|
1617 strings at the end of the Subject header that you want VM to ignore
|
|
1618 when threading, sorting, marking and killing messages by subject.
|
|
1619
|
|
1620 Matches are done case-insensitively.")
|
|
1621
|
|
1622 (defvar vm-mutable-windows pop-up-windows
|
|
1623 "*This variable's value controls VM's window usage.
|
|
1624
|
|
1625 A non-nil value gives VM free run of the Emacs display; it will commandeer
|
|
1626 the entire screen for its purposes.
|
|
1627
|
|
1628 A value of nil restricts VM's window usage to the window from which
|
|
1629 it was invoked. VM will not create, delete, or use any other windows,
|
|
1630 nor will it resize its own window.")
|
|
1631
|
70
|
1632 (defvar vm-mutable-frames nil
|
0
|
1633 "*Non-nil value means VM is allowed to create and destroy frames
|
70
|
1634 to display and undisplay buffers.
|
0
|
1635
|
|
1636 VM can create a frame to display a buffer, and delete frame to
|
|
1637 undisplay a buffer. A nil value means VM should not create or
|
|
1638 delete frames.
|
|
1639
|
70
|
1640 This variable is _not_ an analogue of vm-mutable-windows. VM
|
|
1641 still might create frames if this variable is nil. If you set
|
|
1642 the vm-frame-per-* variables VM will still create frames. Using
|
|
1643 the vm-frame-per-* variables you have more control over when it
|
|
1644 happens.
|
|
1645
|
|
1646 Users should consider setting vm-frame-per-folder and
|
|
1647 vm-frame-per-composition and/or using the -other-frame commands
|
|
1648 instead of setting this variable. If vm-mutable-frames is set to t,
|
|
1649 then vm-mutable-windows should probably be set to nil so that you
|
|
1650 avoid splitting frames.
|
0
|
1651
|
|
1652 This variable does not apply to the VM commands whose
|
70
|
1653 names end in -other-frame, which always create a new frame.
|
0
|
1654
|
70
|
1655 This variable has no meaning if you're not running Emacs native
|
|
1656 under X Windows or some other window system that allows multiple
|
|
1657 Emacs frames.")
|
20
|
1658
|
98
|
1659 (defvar vm-raise-frame-at-startup t
|
|
1660 "*Specifies whether VM should raise its frame at startup.
|
|
1661 A value of nil means never raise the frame.
|
|
1662 A value of t means always raise the frame.
|
|
1663 Other values are reserved for future use.")
|
|
1664
|
0
|
1665 (defvar vm-frame-per-folder t
|
|
1666 "*Non-nil value causes the folder visiting commands to visit in a new frame.
|
|
1667 Nil means the commands will use the current frame. This variable
|
|
1668 does not apply to the VM commands whose names end in
|
|
1669 -other-frame, which always create a new frame.
|
|
1670
|
70
|
1671 This variable has no meaning if you're not running Emacs native
|
|
1672 under X Windows or some other window system that allows multiple
|
|
1673 Emacs frames.")
|
0
|
1674
|
|
1675 (defvar vm-frame-per-summary nil
|
|
1676 "*Non-nil value causes VM to display the folder summary in its own frame.
|
|
1677 Nil means the vm-summarize command will use the current frame.
|
|
1678 This variable does not apply to vm-summarize-other-frame, which
|
|
1679 always create a new frame.
|
|
1680
|
70
|
1681 This variable has no meaning if you're not running Emacs native
|
|
1682 under X Windows or some other window system that allows multiple
|
|
1683 Emacs frames.")
|
0
|
1684
|
|
1685 (defvar vm-frame-per-composition t
|
|
1686 "*Non-nil value causes the mail composition commands to open a new frame.
|
|
1687 Nil means the commands will use the current frame. This variable
|
|
1688 does not apply to the VM commands whose names end in
|
|
1689 -other-frame, which always create a new frame.
|
|
1690
|
70
|
1691 This variable has no meaning if you're not running Emacs native
|
|
1692 under X Windows or some other window system that allows multiple
|
|
1693 Emacs frames.")
|
0
|
1694
|
|
1695 (defvar vm-frame-per-edit t
|
|
1696 "*Non-nil value causes vm-edit-message to open a new frame.
|
|
1697 Nil means the vm-edit-message will use the current frame. This
|
|
1698 variable does not apply to vm-edit-message-other-frame, which
|
|
1699 always create a new frame.
|
|
1700
|
20
|
1701 This variable has no meaning if you're not running Emacs native
|
|
1702 under X Windows or some other window system that allows multiple
|
70
|
1703 Emacs frames.")
|
20
|
1704
|
98
|
1705 (defvar vm-frame-per-completion t
|
|
1706 "*Non-nil value causes VM to open a new frame on mouse
|
|
1707 initiated completing reads. A mouse initiated completing read
|
|
1708 occurs when you invoke a VM command using the mouse, either with a
|
|
1709 menu or a toolbar button. That command must then prompt you for
|
|
1710 information, and there must be a limited set of proper responses.
|
|
1711
|
|
1712 If these conditions are met and vm-frame-per-completion's value
|
|
1713 is non-nil, VM will create a new frame containing a list of
|
|
1714 responses that you can select with the mouse.
|
|
1715
|
|
1716 A nil value means the current frame will be used to display the
|
|
1717 list of choices.
|
|
1718
|
|
1719 This variable has no meaning if you're not running Emacs native
|
|
1720 under X Windows or some other window system that allows multiple
|
|
1721 Emacs frames.")
|
|
1722
|
76
|
1723 (defvar vm-frame-parameter-alist nil
|
0
|
1724 "*Non-nil value is an alist of types and lists of frame parameters.
|
|
1725 This list tells VM what frame parameters to associate with each
|
|
1726 new frame it creates of a specific type.
|
|
1727
|
|
1728 The alist should be of this form
|
|
1729
|
98
|
1730 ((SYMBOL PARAMLIST) (SYMBOL2 PARAMLIST2) ...)
|
|
1731
|
|
1732 SYMBOL must be one of `completion', `composition', `edit',
|
|
1733 `folder', `primary-folder' or `summary'. It specifies the type
|
|
1734 of frame that the following PARAMLIST applies to.
|
|
1735
|
|
1736 `completion' specifies parameters for frames that display list of
|
|
1737 choices generated by a mouse-initiated completing read.
|
|
1738 (See vm-frame-per-completion.)
|
0
|
1739 `composition' specifies parameters for mail composition frames.
|
|
1740 `edit' specifies parameters for message edit frames
|
|
1741 (e.g. created by vm-edit-message-other-frame)
|
|
1742 `folder' specifies parameters for frames created by `vm' and the
|
|
1743 `vm-visit-' commands.
|
|
1744 `primary-folder' specifies parameters for the frame created by running
|
|
1745 `vm' without any arguments.
|
98
|
1746 `summary' specifies parameters for frames that display a summary buffer
|
0
|
1747 (e.g. created by vm-summarize-other-frame)
|
|
1748
|
|
1749 PARAMLIST is a list of pairs as described in the documentation for
|
70
|
1750 the function `make-frame'.
|
|
1751
|
|
1752 This variable has no effect on frames created as a result of
|
|
1753 having vm-mutable-frames set to non-nil.")
|
0
|
1754
|
|
1755 (defvar vm-search-other-frames t
|
|
1756 "*Non-nil means VM should search frames other than the selected frame
|
|
1757 when looking for a window that is already displaying a buffer that
|
|
1758 VM wants to display or undisplay.")
|
|
1759
|
100
|
1760 (defvar vm-image-directory
|
|
1761 (expand-file-name (concat data-directory "vm/"))
|
|
1762 "*Value specifies the directory VM should find its artwork.")
|
|
1763
|
0
|
1764 (defvar vm-use-toolbar
|
|
1765 '(next previous delete/undelete autofile file
|
|
1766 reply compose print visit quit nil help)
|
|
1767 "*Non-nil value causes VM to provide a toolbar interface.
|
|
1768 Value should be a list of symbols that will determine which
|
100
|
1769 toolbar buttons will appear and in what order. Valid symbol
|
0
|
1770 value within the list are:
|
|
1771
|
98
|
1772 autofile
|
|
1773 compose
|
|
1774 delete/undelete
|
|
1775 file
|
100
|
1776 getmail
|
98
|
1777 help
|
|
1778 mime
|
|
1779 next
|
|
1780 previous
|
|
1781 print
|
|
1782 quit
|
|
1783 reply
|
|
1784 visit
|
|
1785 nil
|
0
|
1786
|
|
1787 If nil appears in the list, it should appear exactly once. All
|
|
1788 buttons after nil in the list will be displayed flushright in
|
100
|
1789 top/bottom toolbars and flushbottom in left/right toolbars.
|
0
|
1790
|
|
1791 This variable only has meaning under XEmacs 19.12 and beyond.
|
|
1792 See also vm-toolbar-orientation to control where the toolbar is placed.")
|
|
1793
|
|
1794 (defvar vm-toolbar-orientation 'left
|
|
1795 "*Value is a symbol that specifies where the VM toolbar is located.
|
|
1796 Legal values are `left', `right' `top' and `bottom'. Any other
|
|
1797 value will be interpreted as `top'.
|
|
1798
|
|
1799 This variable only has meaning under XEmacs 19.12 and beyond.")
|
|
1800
|
100
|
1801 (defvar vm-toolbar-pixmap-directory vm-image-directory
|
0
|
1802 "*Value specifies the directory VM should find its toolbar pixmaps.")
|
|
1803
|
76
|
1804 (defvar vm-toolbar nil
|
|
1805 "*Non-nil value should be a list of toolbar button descriptors.
|
|
1806 See the documentation for the variable default-toolbar for a
|
|
1807 definition of what a toolbar button descriptor is.
|
|
1808
|
|
1809 If vm-toolbar is set non-nil VM will use its value as a toolbar
|
|
1810 instantiator instead of the usual beavior of building a button
|
|
1811 list based on the value of vm-use-toolbar. vm-use-toolbar still
|
|
1812 must be set non-nil for a toolbar to appear, however.
|
|
1813
|
|
1814 Consider this variable experimental; it may not be supported forever.")
|
|
1815
|
98
|
1816 (defvar vm-use-menus
|
|
1817 (nconc (list 'folder 'motion 'send 'mark 'label 'sort 'virtual)
|
|
1818 (cond ((string-match ".*-.*-\\(win95\\|nt\\)" system-configuration)
|
|
1819 nil)
|
|
1820 (t (list 'undo)))
|
|
1821 (list 'dispose)
|
|
1822 (cond ((string-match ".*-.*-\\(win95\\|nt\\)" system-configuration)
|
|
1823 nil)
|
|
1824 (t (list 'emacs)))
|
|
1825 (list nil 'help))
|
0
|
1826 "*Non-nil value causes VM to provide a menu interface.
|
|
1827 A value that is a list causes VM to install its own menubar.
|
|
1828 A value of 1 causes VM to install a \"VM\" item in the Emacs menubar.
|
|
1829
|
|
1830 If the value of vm-use-menus is a list, it should be a list of
|
|
1831 symbols. The symbols and the order that they are listed
|
|
1832 determine what menus will be in the menubar and how they are
|
|
1833 ordered. Valid symbols values are:
|
|
1834
|
|
1835 dispose
|
|
1836 emacs
|
|
1837 folder
|
|
1838 help
|
|
1839 label
|
|
1840 mark
|
|
1841 motion
|
|
1842 send
|
|
1843 sort
|
|
1844 undo
|
|
1845 virtual
|
|
1846 nil
|
|
1847
|
|
1848 If nil appears in the list, it should appear exactly once. All
|
|
1849 menus after nil in the list will be displayed flushright in
|
|
1850 menubar.
|
|
1851
|
|
1852 This variable only has meaning in Emacs environments where menus
|
|
1853 are provided, which usually means Emacs has to be running under a
|
|
1854 window system.")
|
|
1855
|
98
|
1856 (defvar vm-popup-menu-on-mouse-3 t
|
|
1857 "*Non-nil value means VM should provide context-sensitive menus on mouse-3.
|
|
1858 A nil value means VM should not change the binding of mouse-3.")
|
|
1859
|
0
|
1860 (defvar vm-warp-mouse-to-new-frame nil
|
|
1861 "*Non-nil value causes VM to move the mouse cursor into newly created frames.
|
|
1862 This is useful to give the new frame the focus under some window managers
|
|
1863 that randomly place newly created frames.
|
|
1864
|
|
1865 Nil means don't move the mouse cursor.")
|
|
1866
|
98
|
1867 (defvar vm-url-browser
|
|
1868 (cond ((fboundp 'w3-fetch-other-frame)
|
|
1869 'w3-fetch-other-frame)
|
|
1870 ((fboundp 'w3-fetch)
|
|
1871 'w3-fetch)
|
|
1872 (t 'vm-mouse-send-url-to-netscape))
|
|
1873 "*Non-nil value means VM should enable URL passing.
|
|
1874 This means that VM will search for URLs (Uniform Resource
|
0
|
1875 Locators) in messages and make it possible for you to pass them
|
|
1876 to a World Wide Web browser.
|
|
1877
|
|
1878 Clicking mouse-2 on the URL will send it to the browser.
|
|
1879
|
98
|
1880 By default clicking mouse-3 on the URL will pop up a menu of
|
|
1881 browsers and you can pick which one you want to use. If
|
|
1882 vm-popup-menu-on-mouse-3 is set to nil, you will not see the menu.
|
0
|
1883
|
|
1884 Moving point to a character within the URL and pressing RETURN
|
98
|
1885 will send the URL to the browser.
|
0
|
1886
|
|
1887 If the value of vm-url-browser is a string, it should specify
|
|
1888 name of an external browser to run. The URL will be passed to
|
|
1889 the program as its first argument.
|
|
1890
|
98
|
1891 If the value of vm-url-browser is a symbol, it should specify a
|
0
|
1892 Lisp function to call. The URL will be passed to the program as
|
|
1893 its first and only argument. Use
|
|
1894
|
|
1895 (setq vm-url-browser 'vm-mouse-send-url-to-netscape)
|
|
1896
|
|
1897 for Netscape, and
|
|
1898
|
|
1899 (setq vm-url-browser 'vm-mouse-send-url-to-mosaic)
|
|
1900
|
|
1901 for Mosaic. The advantage of using them is that they will display
|
|
1902 an URL using on existing Mosaic or Netscape process, if possible.
|
|
1903
|
98
|
1904 A nil value means VM should not enable URL passing to browsers.")
|
0
|
1905
|
|
1906 (defvar vm-highlight-url-face 'bold-italic
|
|
1907 "*Non-nil value should be a face to use display URLs found in messages.
|
|
1908 Nil means don't highlight URLs.")
|
|
1909
|
|
1910 (defvar vm-url-search-limit 12000
|
|
1911 "*Non-nil numeric value tells VM how hard to search for URLs.
|
|
1912 The number specifies the maximum message size in characters that
|
|
1913 VM will search for URLs. For message larger than this value, VM
|
|
1914 will search from the beginning of the mssage to a point
|
|
1915 vm-url-search-limit / 2 characters into the message. Then VM will
|
|
1916 search from a point vm-url-search-limit / 2 characters from the
|
|
1917 end of the message to the end of message.")
|
|
1918
|
|
1919 (defvar vm-display-xfaces nil
|
|
1920 "*Non-nil means display images as specifies in X-Face headers.
|
|
1921 This requires at least XEmacs 19.12 with native xface support compiled in.")
|
|
1922
|
|
1923 (defvar vm-startup-with-summary t
|
|
1924 "*Value tells VM whether to generate a summary when a folder is visited.
|
|
1925 Nil means don't automatically generate a summary.
|
|
1926
|
|
1927 A value of t means always generate a summary.
|
|
1928
|
|
1929 A positive numeric value N means only generate a summary if there
|
|
1930 are N or more messages.
|
|
1931
|
|
1932 A negative numeric value -N means only generate a summary if
|
|
1933 there are N or less messages.")
|
|
1934
|
|
1935 (defvar vm-follow-summary-cursor t
|
|
1936 "*Non-nil value causes VM to select the message under the cursor in the
|
|
1937 summary window before executing commands that operate on the current message.
|
|
1938 This occurs only when the summary buffer window is the selected window.")
|
|
1939
|
|
1940 (defvar vm-jump-to-new-messages t
|
|
1941 "*Non-nil value causes VM to jump to the first new message
|
|
1942 whenever such messages arrive in a folder or the first time a
|
|
1943 folder is visited.
|
|
1944
|
|
1945 See also vm-jump-to-unread-messages.")
|
|
1946
|
|
1947 (defvar vm-jump-to-unread-messages t
|
|
1948 "*Non-nil value causes VM to jump to the first unread message
|
|
1949 whenever such messages arrive in a folder or the first time a
|
|
1950 folder is visited. New messages are considered unread in this
|
|
1951 context so new messages will be jumped to as well.
|
|
1952
|
|
1953 The value of vm-jump-to-new-messages takes precedence over the
|
|
1954 setting of this variable. So if there are unread messages and
|
|
1955 new messages VM will jump to the first new message, even if an
|
|
1956 unread message appears before it in the folder, provided
|
|
1957 vm-jump-to-new-messages is non-nil.")
|
|
1958
|
|
1959 (defvar vm-skip-deleted-messages t
|
|
1960 "*Non-nil value causes VM's `n' and 'p' commands to skip over
|
|
1961 deleted messages. A value of t causes deleted messages to always be skipped.
|
|
1962 A value that is not nil and not t causes deleted messages to be skipped only
|
|
1963 if there are other messages that are not flagged for deletion in the desired
|
|
1964 direction of motion.")
|
|
1965
|
|
1966 (defvar vm-skip-read-messages nil
|
|
1967 "*Non-nil value causes VM's `n' and `p' commands to skip over
|
|
1968 messages that have already been read, in favor of new or unread messages.
|
|
1969 A value of t causes read messages to always be skipped. A value that is
|
|
1970 not nil and not t causes read messages to be skipped only if there are
|
|
1971 unread messages in the desired direction of motion.")
|
|
1972
|
|
1973 (defvar vm-move-after-deleting nil
|
|
1974 "*Non-nil value causes VM's `d' command to automatically invoke
|
|
1975 vm-next-message or vm-previous-message after deleting, to move
|
|
1976 past the deleted messages. A value of t means motion should
|
|
1977 honor the value of vm-circular-folders. A value that is not t
|
|
1978 and not nil means that motion should be done as if
|
|
1979 vm-circular-folders is set to nil.")
|
|
1980
|
|
1981 (defvar vm-move-after-undeleting nil
|
|
1982 "*Non-nil value causes VM's `u' command to automatically invoke
|
|
1983 vm-next-message or vm-previous-message after undeleting, to move
|
|
1984 past the undeleted messages. A value of t means motion should
|
|
1985 honor the value of vm-circular-folders. A value that is not t
|
|
1986 and not nil means that motion should be done as if
|
|
1987 vm-circular-folders is set to nil.")
|
|
1988
|
98
|
1989 (defvar vm-move-after-killing nil
|
|
1990 "*Non-nil value causes VM's `k' command to automatically invoke
|
|
1991 vm-next-message or vm-previous-message after killing messages, to try
|
|
1992 to move past the deleted messages. A value of t means motion
|
|
1993 should honor the value of vm-circular-folders. A value that is
|
|
1994 not t and not nil means that motion should be done as if
|
|
1995 vm-circular-folders is set to nil.")
|
|
1996
|
0
|
1997 (defvar vm-delete-after-saving nil
|
|
1998 "*Non-nil value causes VM automatically to mark messages for deletion
|
|
1999 after successfully saving them to a folder.")
|
|
2000
|
|
2001 (defvar vm-delete-after-archiving nil
|
|
2002 "*Non-nil value causes VM automatically to mark messages for deletion
|
|
2003 after successfully auto-archiving them with the vm-auto-archive-messages
|
|
2004 command.")
|
|
2005
|
|
2006 (defvar vm-delete-after-bursting nil
|
|
2007 "*Non-nil value causes VM automatically to mark a message for deletion
|
|
2008 after it has been successfully burst by the vm-burst-digest command.")
|
|
2009
|
|
2010 (defvar vm-circular-folders 0
|
|
2011 "*Value determines whether VM folders will be considered circular by
|
|
2012 various commands. `Circular' means VM will wrap from the end of the folder
|
|
2013 to the start and vice versa when moving the message pointer, or deleting,
|
|
2014 undeleting or saving messages before or after the current message.
|
|
2015
|
|
2016 A value of t causes all VM commands to consider folders circular.
|
|
2017
|
|
2018 A value of nil causes all of VM commands to signal an error if the start
|
|
2019 or end of the folder would have to be passed to complete the command.
|
|
2020 For movement commands, this occurs after the message pointer has been
|
|
2021 moved as far as possible in the specified direction. For other commands,
|
|
2022 the error occurs before any part of the command has been executed, i.e.
|
|
2023 no deletions, saves, etc. will be done unless they can be done in their
|
|
2024 entirety.
|
|
2025
|
|
2026 A value that is not nil and not t causes only VM's movement commands to
|
|
2027 consider folders circular. Saves, deletes and undelete commands will
|
|
2028 behave the same as if the value is nil.")
|
|
2029
|
|
2030 (defvar vm-search-using-regexps nil
|
|
2031 "*Non-nil value causes VM's search command to interpret user input as a
|
|
2032 regular expression instead of as a literal string.")
|
|
2033
|
|
2034 (defvar vm-move-messages-physically nil
|
|
2035 "*Non-nil value causes VM's commands that change the message order
|
|
2036 of a folder to always move the physical messages involved and not
|
|
2037 just change the presentation order. Nil means that commands just
|
|
2038 change the order in which VM displays messages and leave the
|
|
2039 folder itself undisturbed.")
|
|
2040
|
|
2041 (defvar vm-edit-message-mode 'text-mode
|
|
2042 "*Major mode to use when editing messages in VM.")
|
|
2043
|
|
2044 (defvar vm-print-command lpr-command
|
|
2045 "*Command VM uses to print messages.")
|
|
2046
|
|
2047 (defvar vm-print-command-switches lpr-switches
|
98
|
2048 "*List of command line flags passed to the command named by vm-print-command.
|
0
|
2049 VM uses vm-print-command to print messages.")
|
|
2050
|
|
2051 (defvar vm-berkeley-mail-compatibility
|
|
2052 (memq system-type '(berkeley-unix netbsd))
|
|
2053 "*Non-nil means to read and write BSD Mail(1) style Status: headers.
|
|
2054 This makes sense if you plan to use VM to read mail archives created by
|
|
2055 Mail.")
|
|
2056
|
|
2057 (defvar vm-strip-reply-headers nil
|
|
2058 "*Non-nil value causes VM to strip away all comments and extraneous text
|
|
2059 from the headers generated in reply messages. If you use the \"fakemail\"
|
98
|
2060 program as distributed with Emacs, you probably want to set this variable
|
0
|
2061 to t, because as of Emacs v18.52 \"fakemail\" could not handle unstripped
|
|
2062 headers.")
|
|
2063
|
|
2064 (defvar vm-select-new-message-hook nil
|
|
2065 "*List of hook functions called every time a message with the 'new'
|
|
2066 attribute is made to be the current message. When the hooks are run the
|
|
2067 current buffer will be the folder containing the message and the
|
|
2068 start and end of the message will be bracketed by (point-min) and
|
|
2069 (point-max).")
|
|
2070
|
|
2071 (defvar vm-select-unread-message-hook nil
|
|
2072 "*List of hook functions called every time a message with the 'unread'
|
|
2073 attribute is made to be the current message. When the hooks are run the
|
|
2074 current buffer will be the folder containing the message and the
|
|
2075 start and end of the message will be bracketed by (point-min) and
|
|
2076 (point-max).")
|
|
2077
|
|
2078 (defvar vm-select-message-hook nil
|
|
2079 "*List of hook functions called every time a message
|
|
2080 is made to be the current message. When the hooks are run the
|
|
2081 current buffer will be the folder containing the message and the
|
|
2082 start and end of the message will be bracketed by (point-min) and
|
|
2083 (point-max).")
|
|
2084
|
|
2085 (defvar vm-arrived-message-hook nil
|
|
2086 "*List of hook functions called once for each message gathered from
|
|
2087 the system mail spool, or from another folder with
|
|
2088 vm-get-new-mail, or from a digest with vm-burst-digest. When the
|
|
2089 hooks are run the current buffer will be the folder containing
|
|
2090 the message and the start and end of the message will be
|
|
2091 bracketed by (point-min) and (point-max).")
|
|
2092
|
|
2093 (defvar vm-arrived-messages-hook nil
|
|
2094 "*List of hook functions called after VM has gathered a group of
|
|
2095 messages from the system mail spool, or from another folder with
|
|
2096 vm-get-new-mail, or from a digest with vm-burst-digest. When the
|
|
2097 hooks are run, the new messages will have already been added to
|
|
2098 the message list but may not yet appear in the summary. When the
|
|
2099 hooks are run the current buffer will be the folder containing
|
|
2100 the messages.")
|
|
2101
|
|
2102 (defvar vm-reply-hook nil
|
|
2103 "*List of hook functions to be run after a Mail mode
|
|
2104 composition buffer has been created for a reply. VM runs this
|
|
2105 hook and then runs vm-mail-mode-hook before leaving the user in
|
|
2106 the Mail mode buffer.")
|
|
2107
|
|
2108 (defvar vm-forward-message-hook nil
|
|
2109 "*List of hook functions to be run after a Mail mode
|
|
2110 composition buffer has been created to forward a message. VM
|
|
2111 runs this hook and then runs vm-mail-mode-hook before leaving the
|
|
2112 user in the Mail mode buffer.")
|
|
2113
|
|
2114 (defvar vm-resend-bounced-message-hook nil
|
|
2115 "*List of hook functions to be run after a Mail mode
|
|
2116 composition buffer has been created to resend a bounced message.
|
|
2117 VM runs this hook and then runs vm-mail-mode-hook before leaving
|
|
2118 the user in the Mail mode buffer.")
|
|
2119
|
|
2120 (defvar vm-resend-message-hook nil
|
|
2121 "*List of hook functions to be run after a Mail mode
|
|
2122 composition buffer has been created to resend a message.
|
|
2123 VM runs this hook and then runs vm-mail-mode-hook before leaving
|
|
2124 the user in the Mail mode buffer.")
|
|
2125
|
|
2126 (defvar vm-send-digest-hook nil
|
|
2127 "*List of hook functions to be run after a Mail mode
|
|
2128 composition buffer has been created to send a digest.
|
|
2129 VM runs this hook and then runs vm-mail-mode-hook before leaving
|
|
2130 the user in the Mail mode buffer.")
|
|
2131
|
|
2132 (defvar vm-mail-hook nil
|
|
2133 "*List of hook functions to be run after a Mail mode
|
|
2134 composition buffer has been created to send a non specialized
|
|
2135 message, i.e. a message that is not a reply, forward, digest,
|
|
2136 etc. VM runs this hook and then runs vm-mail-mode-hook before
|
|
2137 leaving the user in the Mail mode buffer.")
|
|
2138
|
|
2139 (defvar vm-summary-update-hook nil
|
|
2140 "*List of hook functions called just after VM updates an existing
|
|
2141 entry a folder summary.")
|
|
2142
|
|
2143 (defvar vm-summary-redo-hook nil
|
|
2144 "*List of hook functions called just after VM adds or deletes
|
|
2145 entries from a folder summary.")
|
|
2146
|
|
2147 (defvar vm-visit-folder-hook nil
|
|
2148 "*List of hook functions called just after VM visits a folder.
|
|
2149 It doesn't matter if the folder buffer already exists, this hook
|
|
2150 is run each time vm or vm-visit-folder is called interactively.
|
|
2151 It is NOT run after vm-mode is called.")
|
|
2152
|
|
2153 (defvar vm-retrieved-spooled-mail-hook nil
|
|
2154 "*List of hook functions called just after VM has retrieved
|
|
2155 a group of messages from your system mailbox(es). When these
|
|
2156 hooks are run, the messages have been added to the folder buffer
|
|
2157 but not the message list or summary. When the hooks are run, the
|
|
2158 current buffer will be the folder where the messages were
|
|
2159 incorporated.")
|
|
2160
|
|
2161 (defvar vm-edit-message-hook nil
|
|
2162 "*List of hook functions to be run just before a message is edited.
|
|
2163 This is the last thing vm-edit-message does before leaving the user
|
|
2164 in the edit buffer.")
|
|
2165
|
|
2166 (defvar vm-mail-mode-hook nil
|
|
2167 "*List of hook functions to be run after a Mail mode
|
|
2168 composition buffer has been created. This is the last thing VM
|
|
2169 does before leaving the user in the Mail mode buffer.")
|
|
2170
|
|
2171 (defvar vm-mode-hook nil
|
|
2172 "*List of hook functions to run when a buffer enters vm-mode.
|
|
2173 These hook functions should generally be used to set key bindings
|
|
2174 and local variables.")
|
|
2175
|
|
2176 (defvar vm-mode-hooks nil
|
|
2177 "*Old name for vm-mode-hook.
|
|
2178 Supported for backward compatibility.
|
|
2179 You should use the new name.")
|
|
2180
|
|
2181 (defvar vm-summary-mode-hook nil
|
|
2182 "*List of hook functions to run when a VM summary buffer is created.
|
|
2183 The current buffer will be that buffer when the hooks are run.")
|
|
2184
|
|
2185 (defvar vm-summary-mode-hooks nil
|
|
2186 "*Old name for vm-summary-mode-hook.
|
|
2187 Supported for backward compatibility.
|
|
2188 You should use the new name.")
|
|
2189
|
|
2190 (defvar vm-virtual-mode-hook nil
|
|
2191 "*List of hook functions to run when a VM virtual folder buffer is created.
|
|
2192 The current buffer will be that buffer when the hooks are run.")
|
|
2193
|
|
2194 (defvar vm-quit-hook nil
|
|
2195 "*List of hook functions to run when you quit VM.
|
|
2196 This applies to any VM quit command.")
|
|
2197
|
|
2198 (defvar vm-summary-pointer-update-hook nil
|
|
2199 "*List of hook functions to run when VM summary pointer is updated.
|
|
2200 When the hooks are run, the current buffer will be the summary buffer.")
|
|
2201
|
|
2202 (defvar vm-display-buffer-hook nil
|
|
2203 "*List of hook functions that are run every time VM wants to
|
|
2204 display a buffer. When the hooks are run the current buffer will
|
|
2205 be the buffer that VM wants to display. The hooks are expected
|
|
2206 to select a window and VM will display the buffer in that
|
|
2207 window.
|
|
2208
|
|
2209 If you use display hooks, you should not use VM's builtin window
|
|
2210 configuration system as the result is likely to be confusing.")
|
|
2211
|
|
2212 (defvar vm-undisplay-buffer-hook nil
|
|
2213 "*List of hook functions that are run every time VM wants to
|
|
2214 remove a buffer from the display. When the hooks are run the
|
|
2215 current buffer will be the buffer that VM wants to disappear.
|
|
2216 The hooks are expected to do the work of removing the buffer from
|
|
2217 the display. The hook functions should not kill the buffer.
|
|
2218
|
|
2219 If you use undisplay hooks, you should not use VM's builtin
|
|
2220 window configuration system as the result is likely to be
|
|
2221 confusing.")
|
|
2222
|
|
2223 (defvar vm-iconify-frame-hook nil
|
|
2224 "*List of hook functions that are run whenever VM iconifies a frame.")
|
|
2225
|
|
2226 (defvar vm-menu-setup-hook nil
|
76
|
2227 "*List of hook functions that are run just after all menus are initialized.")
|
20
|
2228
|
98
|
2229 (defvar vm-mime-display-function nil
|
|
2230 "*If non-nil, this should name a function to be called inside
|
|
2231 vm-decode-mime-message to do the MIME display the current
|
|
2232 message. The function is called with no arguments, and at the
|
|
2233 time of the call the current buffer will be the `presentation'
|
|
2234 buffer for the folder, which is a temporary buffer that VM uses
|
|
2235 for the display of MIME messages. A copy of the current message
|
|
2236 will be in the presentation buffer at that time. The normal work
|
|
2237 that vm-decode-mime-message would do is not done, because this
|
|
2238 function is expected to subsume all of it.")
|
|
2239
|
0
|
2240 (defvar mail-yank-hooks nil
|
|
2241 "Hooks called after a message is yanked into a mail composition.
|
|
2242
|
|
2243 (This hook is deprecated, you should use mail-citation-hook instead.)
|
|
2244
|
|
2245 Value is a list of functions to be run.
|
|
2246 Each hook function can find the newly yanked message between point and mark.
|
|
2247 Each hook function should return with point and mark around the yanked message.
|
|
2248
|
|
2249 See the documentation for vm-yank-message to see when VM will run
|
|
2250 these hooks.")
|
|
2251
|
|
2252 (defvar mail-citation-hook nil
|
|
2253 "*Hook for modifying a citation just inserted in the mail buffer.
|
|
2254 Each hook function can find the citation between (point) and (mark t).
|
|
2255 And each hook function should leave point and mark around the citation
|
|
2256 text as modified.
|
|
2257
|
|
2258 If this hook is entirely empty (nil), a default action is taken
|
|
2259 instead of no action.")
|
|
2260
|
|
2261 (defvar mail-default-headers nil
|
|
2262 "*A string containing header lines, to be inserted in outgoing messages.
|
|
2263 It is inserted before you edit the message,
|
|
2264 so you can edit or delete these lines.")
|
|
2265
|
|
2266 (defvar mail-signature nil
|
|
2267 "*Text inserted at end of mail buffer when a message is initialized.
|
|
2268 If t, it means to insert the contents of the file `~/.signature'.")
|
|
2269
|
|
2270 (defvar vm-rename-current-buffer-function nil
|
|
2271 "*Non-nil value should be a function to call to rename a buffer.
|
|
2272 Value should be something that can be passed to `funcall'. If
|
|
2273 this variable is non-nil, VM will use this function instead of
|
|
2274 its own buffer renaming code. The buffer to be renamed will be
|
|
2275 the current buffer when the function is called.")
|
|
2276
|
|
2277 (defvar mode-popup-menu nil
|
|
2278 "The mode-specific popup menu. Automatically buffer local.
|
|
2279 By default, when you press mouse-3 in VM, this menu is popped up.")
|
|
2280 (make-variable-buffer-local 'mode-popup-menu)
|
|
2281
|
|
2282 (defvar vm-movemail-program "movemail"
|
|
2283 "*Name of program to use to move mail from the system spool
|
|
2284 to another location. Normally this should be the movemail program
|
|
2285 distributed with Emacs.")
|
|
2286
|
|
2287 (defvar vm-netscape-program "netscape"
|
|
2288 "*Name of program to use to run Netscape.
|
|
2289 vm-mouse-send-url-to-netscape uses this.")
|
|
2290
|
|
2291 (defvar vm-mosaic-program "Mosaic"
|
|
2292 "*Name of program to use to run Mosaic.
|
|
2293 vm-mouse-send-url-to-mosaic uses this.")
|
|
2294
|
98
|
2295 (defvar vm-temp-file-directory "/tmp"
|
|
2296 "*Name of a directory where VM can put temporary files.
|
|
2297 This name must not end with a slash.")
|
|
2298
|
0
|
2299 (defvar vm-tale-is-an-idiot nil
|
|
2300 "*Non-nil value causes vm-mail-send to check multi-line recipient
|
|
2301 headers of outbound mail for lines that don't end with a
|
|
2302 comma. If such a line is found, an error is signaled and the
|
|
2303 mail is not sent.")
|
|
2304
|
|
2305 (defvar vm-maintainer-address "bug-vm@uunet.uu.net"
|
|
2306 "Where to send VM bug reports.")
|
|
2307
|
|
2308 (defvar vm-mode-map
|
|
2309 (let ((map (make-sparse-keymap)))
|
|
2310 ;; unneeded now that VM buffers all have buffer-read-only == t.
|
|
2311 ;; (suppress-keymap map)
|
|
2312 (define-key map "h" 'vm-summarize)
|
|
2313 (define-key map "\M-n" 'vm-next-unread-message)
|
|
2314 (define-key map "\M-p" 'vm-previous-unread-message)
|
|
2315 (define-key map "n" 'vm-next-message)
|
|
2316 (define-key map "p" 'vm-previous-message)
|
|
2317 (define-key map "N" 'vm-next-message-no-skip)
|
|
2318 (define-key map "P" 'vm-previous-message-no-skip)
|
|
2319 (define-key map "\C-\M-n" 'vm-move-message-forward)
|
|
2320 (define-key map "\C-\M-p" 'vm-move-message-backward)
|
|
2321 (define-key map "\t" 'vm-goto-message-last-seen)
|
|
2322 (define-key map "\r" 'vm-goto-message)
|
|
2323 (define-key map "^" 'vm-goto-parent-message)
|
|
2324 (define-key map "t" 'vm-expose-hidden-headers)
|
|
2325 (define-key map " " 'vm-scroll-forward)
|
|
2326 (define-key map "b" 'vm-scroll-backward)
|
70
|
2327 (define-key map "\C-?" 'vm-scroll-backward)
|
98
|
2328 (define-key map "D" 'vm-decode-mime-message)
|
0
|
2329 (define-key map "d" 'vm-delete-message)
|
|
2330 (define-key map "\C-d" 'vm-delete-message-backward)
|
|
2331 (define-key map "u" 'vm-undelete-message)
|
|
2332 (define-key map "U" 'vm-unread-message)
|
|
2333 (define-key map "e" 'vm-edit-message)
|
|
2334 (define-key map "a" 'vm-set-message-attributes)
|
|
2335 (define-key map "j" 'vm-discard-cached-data)
|
|
2336 (define-key map "k" 'vm-kill-subject)
|
|
2337 (define-key map "f" 'vm-followup)
|
|
2338 (define-key map "F" 'vm-followup-include-text)
|
|
2339 (define-key map "r" 'vm-reply)
|
|
2340 (define-key map "R" 'vm-reply-include-text)
|
|
2341 (define-key map "\M-r" 'vm-resend-bounced-message)
|
|
2342 (define-key map "B" 'vm-resend-message)
|
|
2343 (define-key map "z" 'vm-forward-message)
|
|
2344 (define-key map "c" 'vm-continue-composing-message)
|
|
2345 (define-key map "@" 'vm-send-digest)
|
|
2346 (define-key map "*" 'vm-burst-digest)
|
|
2347 (define-key map "m" 'vm-mail)
|
|
2348 (define-key map "g" 'vm-get-new-mail)
|
|
2349 (define-key map "G" 'vm-sort-messages)
|
|
2350 (define-key map "v" 'vm-visit-folder)
|
|
2351 (define-key map "s" 'vm-save-message)
|
|
2352 (define-key map "w" 'vm-save-message-sans-headers)
|
|
2353 (define-key map "A" 'vm-auto-archive-messages)
|
|
2354 (define-key map "S" 'vm-save-folder)
|
|
2355 (define-key map "|" 'vm-pipe-message-to-command)
|
|
2356 (define-key map "#" 'vm-expunge-folder)
|
|
2357 (define-key map "q" 'vm-quit)
|
|
2358 (define-key map "x" 'vm-quit-no-change)
|
|
2359 (define-key map "i" 'vm-iconify-frame)
|
|
2360 (define-key map "?" 'vm-help)
|
|
2361 (define-key map "\C-_" 'vm-undo)
|
|
2362 (define-key map "\C-xu" 'vm-undo)
|
|
2363 (define-key map "!" 'shell-command)
|
|
2364 (define-key map "<" 'vm-beginning-of-message)
|
|
2365 (define-key map ">" 'vm-end-of-message)
|
|
2366 (define-key map "\M-s" 'vm-isearch-forward)
|
|
2367 (define-key map "=" 'vm-summarize)
|
|
2368 (define-key map "L" 'vm-load-init-file)
|
|
2369 (define-key map "l" (make-sparse-keymap))
|
|
2370 (define-key map "la" 'vm-add-message-labels)
|
|
2371 (define-key map "ld" 'vm-delete-message-labels)
|
|
2372 (define-key map "V" (make-sparse-keymap))
|
|
2373 (define-key map "VV" 'vm-visit-virtual-folder)
|
|
2374 (define-key map "VC" 'vm-create-virtual-folder)
|
|
2375 (define-key map "VA" 'vm-apply-virtual-folder)
|
|
2376 (define-key map "VM" 'vm-toggle-virtual-mirror)
|
|
2377 (define-key map "V?" 'vm-virtual-help)
|
|
2378 (define-key map "M" (make-sparse-keymap))
|
|
2379 (define-key map "MN" 'vm-next-command-uses-marks)
|
|
2380 (define-key map "Mn" 'vm-next-command-uses-marks)
|
|
2381 (define-key map "MM" 'vm-mark-message)
|
|
2382 (define-key map "MU" 'vm-unmark-message)
|
|
2383 (define-key map "Mm" 'vm-mark-all-messages)
|
|
2384 (define-key map "Mu" 'vm-clear-all-marks)
|
|
2385 (define-key map "MC" 'vm-mark-matching-messages)
|
|
2386 (define-key map "Mc" 'vm-unmark-matching-messages)
|
|
2387 (define-key map "MT" 'vm-mark-thread-subtree)
|
|
2388 (define-key map "Mt" 'vm-unmark-thread-subtree)
|
|
2389 (define-key map "MS" 'vm-mark-messages-same-subject)
|
|
2390 (define-key map "Ms" 'vm-unmark-messages-same-subject)
|
|
2391 (define-key map "MA" 'vm-mark-messages-same-author)
|
|
2392 (define-key map "Ma" 'vm-unmark-messages-same-author)
|
98
|
2393 (define-key map "MR" 'vm-mark-summary-region)
|
|
2394 (define-key map "Mr" 'vm-unmark-summary-region)
|
0
|
2395 (define-key map "M?" 'vm-mark-help)
|
|
2396 (define-key map "W" (make-sparse-keymap))
|
|
2397 (define-key map "WW" 'vm-apply-window-configuration)
|
|
2398 (define-key map "WS" 'vm-save-window-configuration)
|
|
2399 (define-key map "WD" 'vm-delete-window-configuration)
|
|
2400 (define-key map "W?" 'vm-window-help)
|
|
2401 (define-key map "\C-t" 'vm-toggle-threads-display)
|
|
2402 (define-key map "\C-x\C-s" 'vm-save-buffer)
|
|
2403 (define-key map "\C-x\C-w" 'vm-write-file)
|
|
2404 (define-key map "\C-x\C-q" 'vm-toggle-read-only)
|
|
2405 (define-key map "%" 'vm-change-folder-type)
|
|
2406 (define-key map "\M-C" 'vm-show-copying-restrictions)
|
|
2407 (define-key map "\M-W" 'vm-show-no-warranty)
|
|
2408 ;; suppress-keymap provides these, but now that we don't use
|
|
2409 ;; suppress-keymap anymore...
|
|
2410 (define-key map "0" 'digit-argument)
|
|
2411 (define-key map "1" 'digit-argument)
|
|
2412 (define-key map "2" 'digit-argument)
|
|
2413 (define-key map "3" 'digit-argument)
|
|
2414 (define-key map "4" 'digit-argument)
|
|
2415 (define-key map "5" 'digit-argument)
|
|
2416 (define-key map "6" 'digit-argument)
|
|
2417 (define-key map "7" 'digit-argument)
|
|
2418 (define-key map "8" 'digit-argument)
|
|
2419 (define-key map "9" 'digit-argument)
|
|
2420 (define-key map "-" 'negative-argument)
|
|
2421 map )
|
|
2422 "Keymap for VM mode.")
|
|
2423
|
|
2424 (defvar vm-summary-mode-map vm-mode-map
|
|
2425 "Keymap for VM Summary mode")
|
|
2426
|
|
2427 (defvar vm-mail-mode-map
|
|
2428 (let ((map (make-sparse-keymap)))
|
|
2429 (define-key map "\C-c\C-v" vm-mode-map)
|
98
|
2430 (define-key map "\C-c\C-p" 'vm-mime-preview-composition)
|
|
2431 (define-key map "\C-c\C-e" 'vm-mime-encode-composition)
|
|
2432 (define-key map "\C-c\C-a" 'vm-mime-attach-file)
|
|
2433 (define-key map "\C-c\C-m" 'vm-mime-attach-mime-file)
|
0
|
2434 (define-key map "\C-c\C-y" 'vm-yank-message)
|
|
2435 (define-key map "\C-c\C-s" 'vm-mail-send)
|
|
2436 (define-key map "\C-c\C-c" 'vm-mail-send-and-exit)
|
|
2437 map )
|
70
|
2438 "Keymap for VM Mail mode buffers.")
|
0
|
2439
|
|
2440 (defvar vm-edit-message-map
|
|
2441 (let ((map (make-sparse-keymap)))
|
|
2442 (define-key map "\C-c\C-v" vm-mode-map)
|
|
2443 (define-key map "\C-c\e" 'vm-edit-message-end)
|
|
2444 (define-key map "\C-c\C-c" 'vm-edit-message-end)
|
|
2445 (define-key map "\C-c\C-]" 'vm-edit-message-abort)
|
|
2446 map )
|
|
2447 "Keymap for the buffers created by VM's vm-edit-message command.")
|
|
2448
|
|
2449 (defvar vm-folder-history nil
|
|
2450 "List of folders visited this Emacs session.")
|
|
2451
|
|
2452 ;; internal vars
|
|
2453 (defvar vm-folder-type nil)
|
|
2454 (make-variable-buffer-local 'vm-folder-type)
|
|
2455 (defvar vm-message-list nil)
|
|
2456 (make-variable-buffer-local 'vm-message-list)
|
|
2457 (defvar vm-virtual-folder-definition nil)
|
|
2458 (make-variable-buffer-local 'vm-virtual-folder-definition)
|
|
2459 (defvar vm-virtual-buffers nil)
|
|
2460 (make-variable-buffer-local 'vm-virtual-buffers)
|
|
2461 (defvar vm-real-buffers nil)
|
|
2462 (make-variable-buffer-local 'vm-real-buffers)
|
|
2463 (defvar vm-message-pointer nil)
|
|
2464 (make-variable-buffer-local 'vm-message-pointer)
|
|
2465 (defvar vm-message-order-changed nil)
|
|
2466 (make-variable-buffer-local 'vm-message-order-changed)
|
|
2467 (defvar vm-message-order-header-present nil)
|
|
2468 (make-variable-buffer-local 'vm-message-order-header-present)
|
|
2469 (defvar vm-last-message-pointer nil)
|
|
2470 (make-variable-buffer-local 'vm-last-message-pointer)
|
|
2471 (defvar vm-mail-buffer nil)
|
|
2472 (make-variable-buffer-local 'vm-mail-buffer)
|
98
|
2473 (defvar vm-presentation-buffer nil)
|
|
2474 (make-variable-buffer-local 'vm-presentation-buffer)
|
|
2475 (defvar vm-presentation-buffer-handle nil)
|
|
2476 (make-variable-buffer-local 'vm-presentation-buffer-handle)
|
|
2477 (defvar vm-mime-decoded nil)
|
|
2478 (make-variable-buffer-local 'vm-mime-decoded)
|
0
|
2479 (defvar vm-summary-buffer nil)
|
|
2480 (make-variable-buffer-local 'vm-summary-buffer)
|
|
2481 (defvar vm-summary-pointer nil)
|
|
2482 (make-variable-buffer-local 'vm-summary-pointer)
|
|
2483 (defvar vm-system-state nil)
|
|
2484 (make-variable-buffer-local 'vm-system-state)
|
|
2485 (defvar vm-undo-record-list nil)
|
|
2486 (make-variable-buffer-local 'vm-undo-record-list)
|
|
2487 (defvar vm-saved-undo-record-list nil)
|
|
2488 (make-variable-buffer-local 'vm-saved-undo-record-list)
|
|
2489 (defvar vm-undo-record-pointer nil)
|
|
2490 (make-variable-buffer-local 'vm-undo-record-pointer)
|
|
2491 (defvar vm-last-save-folder nil)
|
|
2492 (make-variable-buffer-local 'vm-last-save-folder)
|
|
2493 (defvar vm-last-written-file nil)
|
|
2494 (make-variable-buffer-local 'vm-last-written-file)
|
|
2495 (defvar vm-last-visit-folder nil)
|
|
2496 (defvar vm-last-pipe-command nil)
|
|
2497 (make-variable-buffer-local 'vm-last-pipe-command)
|
|
2498 (defvar vm-messages-not-on-disk 0)
|
|
2499 (make-variable-buffer-local 'vm-messages-not-on-disk)
|
|
2500 (defvar vm-totals nil)
|
|
2501 (make-variable-buffer-local 'vm-totals)
|
|
2502 (defvar vm-modification-counter 0)
|
|
2503 (make-variable-buffer-local 'vm-modification-counter)
|
|
2504 (defvar vm-flushed-modification-counter nil)
|
|
2505 (make-variable-buffer-local 'vm-flushed-modification-counter)
|
98
|
2506 (defvar vm-tempfile-counter 0)
|
0
|
2507 (defvar vm-messages-needing-summary-update nil)
|
|
2508 (defvar vm-buffers-needing-display-update nil)
|
|
2509 (defvar vm-numbering-redo-start-point nil)
|
|
2510 (make-variable-buffer-local 'vm-numbering-redo-start-point)
|
|
2511 (defvar vm-numbering-redo-end-point nil)
|
|
2512 (make-variable-buffer-local 'vm-numbering-redo-end-point)
|
|
2513 (defvar vm-summary-redo-start-point nil)
|
|
2514 (make-variable-buffer-local 'vm-summary-redo-start-point)
|
|
2515 (defvar vm-need-summary-pointer-update nil)
|
|
2516 (make-variable-buffer-local 'vm-need-summary-pointer-update)
|
|
2517 (defvar vm-thread-obarray nil)
|
|
2518 (make-variable-buffer-local 'vm-thread-obarray)
|
|
2519 (defvar vm-thread-subject-obarray nil)
|
|
2520 (make-variable-buffer-local 'vm-thread-subject-obarray)
|
|
2521 (defvar vm-label-obarray nil)
|
|
2522 (make-variable-buffer-local 'vm-label-obarray)
|
|
2523 (defvar vm-block-new-mail nil)
|
|
2524 (make-variable-buffer-local 'vm-block-new-mail)
|
|
2525 (defvar vm-saved-buffer-modified-p nil)
|
|
2526 (make-variable-buffer-local 'vm-saved-buffer-modified-p)
|
|
2527 (defvar vm-kept-mail-buffers nil)
|
|
2528 (defvar vm-inhibit-write-file-hook nil)
|
100
|
2529 ;; used to choose between the default and
|
|
2530 ;; mail-extract-address-components but I don't see the utility of
|
|
2531 ;; it anymore. It tries to be too smart.
|
|
2532 ;;(defvar vm-chop-full-name-function 'vm-choose-chop-full-name-function)
|
|
2533 (defvar vm-chop-full-name-function 'vm-default-chop-full-name)
|
0
|
2534 (defvar vm-session-beginning t)
|
|
2535 (defvar vm-init-file-loaded nil)
|
|
2536 (defvar vm-window-configurations nil)
|
|
2537 (defvar vm-window-configuration nil)
|
|
2538 (defvar vm-message-id-number 0)
|
|
2539 (defconst vm-spool-directory
|
|
2540 (or (and (boundp 'rmail-spool-directory) rmail-spool-directory)
|
|
2541 "/usr/spool/mail/"))
|
|
2542 (defconst vm-content-length-search-regexp "^Content-Length:.*\n\\|\\(\n\n\\)")
|
|
2543 (defconst vm-content-length-header "Content-Length:")
|
|
2544 (defconst vm-attributes-header-regexp
|
|
2545 "^X-VM-\\(Attributes\\|v5-Data\\):\\(.*\n\\([ \t].*\n\\)*\\)")
|
|
2546 (defconst vm-attributes-header "X-VM-v5-Data:")
|
|
2547 (defconst vm-message-order-header-regexp "^X-VM-Message-Order:")
|
|
2548 (defconst vm-message-order-header "X-VM-Message-Order:")
|
|
2549 (defconst vm-bookmark-header-regexp "^X-VM-Bookmark:")
|
|
2550 (defconst vm-bookmark-header "X-VM-Bookmark:")
|
|
2551 (defconst vm-summary-header-regexp "^X-VM-Summary-Format:")
|
|
2552 (defconst vm-summary-header "X-VM-Summary-Format:")
|
|
2553 (defconst vm-vheader-header-regexp "^X-VM-VHeader:")
|
|
2554 (defconst vm-vheader-header "X-VM-VHeader:")
|
|
2555 (defconst vm-labels-header-regexp "^X-VM-Labels:")
|
|
2556 (defconst vm-labels-header "X-VM-Labels:")
|
|
2557 (defconst vm-berkeley-mail-status-header "Status: ")
|
|
2558 (defconst vm-berkeley-mail-status-header-regexp "^Status: \\(..?\\)\n")
|
|
2559 (defvar vm-matched-header-vector (make-vector 6 nil))
|
|
2560 (defconst vm-supported-folder-types
|
|
2561 '("From_" "From_-with-Content-Length" "mmdf" "babyl"))
|
|
2562 (defconst vm-supported-window-configurations
|
98
|
2563 '(
|
|
2564 ("default")
|
0
|
2565 ("startup")
|
|
2566 ("quitting")
|
|
2567 ("composing-message")
|
|
2568 ("editing-message")
|
|
2569 ("marking-message")
|
|
2570 ("reading-message")
|
|
2571 ("searching-message")
|
98
|
2572 ("vm")
|
|
2573 ("vm-add-message-labels")
|
|
2574 ("vm-apply-virtual-folder")
|
|
2575 ("vm-auto-archive-messages")
|
|
2576 ("vm-beginning-of-message")
|
|
2577 ("vm-burst-digest")
|
|
2578 ("vm-burst-mime-digest")
|
|
2579 ("vm-burst-rfc1153-digest")
|
|
2580 ("vm-burst-rfc934-digest")
|
|
2581 ("vm-change-folder-type")
|
|
2582 ("vm-clear-all-marks")
|
|
2583 ("vm-continue-composing-message")
|
|
2584 ("vm-create-virtual-folder")
|
|
2585 ("vm-decode-mime-message")
|
0
|
2586 ("vm-delete-message")
|
|
2587 ("vm-delete-message-backward")
|
98
|
2588 ("vm-delete-message-labels")
|
|
2589 ("vm-discard-cached-data")
|
70
|
2590 ("vm-edit-message")
|
98
|
2591 ("vm-edit-message-abort")
|
70
|
2592 ("vm-edit-message-end")
|
98
|
2593 ("vm-edit-message-other-frame")
|
|
2594 ("vm-end-of-message")
|
|
2595 ("vm-expose-hidden-headers")
|
|
2596 ("vm-expunge-folder")
|
|
2597 ("vm-followup")
|
|
2598 ("vm-followup-include-text")
|
|
2599 ("vm-followup-include-text-other-frame")
|
|
2600 ("vm-followup-other-frame")
|
|
2601 ("vm-forward-message")
|
|
2602 ("vm-forward-message-all-headers")
|
|
2603 ("vm-forward-message-all-headers-other-frame")
|
|
2604 ("vm-forward-message-other-frame")
|
|
2605 ("vm-get-new-mail")
|
|
2606 ("vm-goto-message")
|
|
2607 ("vm-goto-message-last-seen")
|
|
2608 ("vm-goto-parent-message")
|
|
2609 ("vm-help")
|
|
2610 ("vm-isearch-forward")
|
|
2611 ("vm-kill-subject")
|
|
2612 ("vm-load-init-file")
|
|
2613 ("vm-mail")
|
|
2614 ("vm-mail-other-frame")
|
|
2615 ("vm-mail-other-window")
|
|
2616 ("vm-mail-send")
|
|
2617 ("vm-mail-send-and-exit")
|
|
2618 ("vm-mark-all-messages")
|
|
2619 ("vm-mark-help")
|
|
2620 ("vm-mark-matching-messages")
|
|
2621 ("vm-mark-message")
|
|
2622 ("vm-mark-messages-same-author")
|
|
2623 ("vm-mark-messages-same-subject")
|
|
2624 ("vm-mark-summary-region")
|
|
2625 ("vm-mark-thread-subtree")
|
|
2626 ("vm-mode")
|
|
2627 ("vm-move-message-backward")
|
|
2628 ("vm-move-message-backward-physically")
|
|
2629 ("vm-move-message-forward")
|
|
2630 ("vm-move-message-forward-physically")
|
|
2631 ("vm-next-command-uses-marks")
|
|
2632 ("vm-next-message")
|
|
2633 ("vm-next-message-no-skip")
|
|
2634 ("vm-next-message-no-skip")
|
|
2635 ("vm-next-message-same-subject")
|
|
2636 ("vm-next-unread-message")
|
|
2637 ("vm-other-frame")
|
|
2638 ("vm-other-window")
|
|
2639 ("vm-pipe-message-to-command")
|
|
2640 ("vm-previous-message")
|
|
2641 ("vm-previous-message-no-skip")
|
|
2642 ("vm-previous-message-no-skip")
|
|
2643 ("vm-previous-message-same-subject")
|
|
2644 ("vm-previous-unread-message")
|
70
|
2645 ("vm-quit")
|
98
|
2646 ("vm-quit-just-bury")
|
|
2647 ("vm-quit-just-iconify")
|
|
2648 ("vm-quit-no-change")
|
|
2649 ("vm-reply")
|
|
2650 ("vm-reply-include-text")
|
|
2651 ("vm-reply-include-text-other-frame")
|
|
2652 ("vm-reply-other-frame")
|
|
2653 ("vm-resend-bounced-message")
|
|
2654 ("vm-resend-bounced-message-other-frame")
|
|
2655 ("vm-resend-message")
|
|
2656 ("vm-resend-message-other-frame")
|
|
2657 ("vm-save-and-expunge-folder")
|
0
|
2658 ("vm-save-buffer")
|
|
2659 ("vm-save-folder")
|
98
|
2660 ("vm-save-message")
|
|
2661 ("vm-save-message-sans-headers")
|
|
2662 ("vm-scroll-backward")
|
|
2663 ("vm-scroll-forward")
|
|
2664 ("vm-send-digest")
|
|
2665 ("vm-send-digest-other-frame")
|
|
2666 ("vm-send-mime-digest")
|
|
2667 ("vm-send-mime-digest-other-frame")
|
|
2668 ("vm-send-rfc1153-digest")
|
|
2669 ("vm-send-rfc1153-digest-other-frame")
|
|
2670 ("vm-send-rfc934-digest")
|
|
2671 ("vm-send-rfc934-digest-other-frame")
|
|
2672 ("vm-set-message-attributes")
|
|
2673 ("vm-show-copying-restrictions")
|
|
2674 ("vm-show-no-warranty")
|
|
2675 ("vm-sort-messages")
|
|
2676 ("vm-submit-bug-report")
|
|
2677 ("vm-summarize")
|
|
2678 ("vm-summarize-other-frame")
|
|
2679 ("vm-toggle-read-only")
|
|
2680 ("vm-toggle-threads-display")
|
|
2681 ("vm-undelete-message")
|
|
2682 ("vm-undo")
|
|
2683 ("vm-unmark-matching-messages")
|
|
2684 ("vm-unmark-message")
|
|
2685 ("vm-unmark-messages-same-author")
|
|
2686 ("vm-unmark-messages-same-subject")
|
|
2687 ("vm-unmark-summary-region")
|
|
2688 ("vm-unmark-thread-subtree")
|
|
2689 ("vm-unread-message")
|
|
2690 ("vm-virtual-help")
|
0
|
2691 ("vm-visit-folder")
|
|
2692 ("vm-visit-folder-other-frame")
|
|
2693 ("vm-visit-folder-other-window")
|
|
2694 ("vm-visit-virtual-folder")
|
|
2695 ("vm-visit-virtual-folder-other-frame")
|
98
|
2696 ("vm-visit-virtual-folder-other-window")
|
|
2697 ("vm-write-file")
|
|
2698 ("vm-yank-message")
|
|
2699 ("vm-yank-message-other-folder")
|
|
2700 ))
|
0
|
2701 (defconst vm-supported-sort-keys
|
|
2702 '("date" "reversed-date"
|
|
2703 "author" "reversed-author"
|
|
2704 "subject" "reversed-subject"
|
|
2705 "recipients" "reversed-recipients"
|
|
2706 "line-count" "reversed-line-count"
|
|
2707 "byte-count" "reversed-byte-count"
|
|
2708 "physical-order" "reversed-physical-order"))
|
|
2709 (defconst vm-supported-interactive-virtual-selectors
|
|
2710 '(("any")
|
|
2711 ("header")
|
|
2712 ("label")
|
|
2713 ("text")
|
|
2714 ("recipient")
|
|
2715 ("author")
|
|
2716 ("subject")
|
|
2717 ("sent-before")
|
|
2718 ("sent-after")
|
|
2719 ("more-chars-than")
|
|
2720 ("less-chars-than")
|
|
2721 ("more-lines-than")
|
|
2722 ("less-lines-than")
|
|
2723 ("new")
|
|
2724 ("unread")
|
|
2725 ("read")
|
|
2726 ("deleted")
|
|
2727 ("replied")
|
|
2728 ("forwarded")
|
|
2729 ("filed")
|
|
2730 ("written")
|
|
2731 ("edited")
|
|
2732 ("marked")))
|
|
2733 (defconst vm-supported-attribute-names
|
|
2734 '("new"
|
|
2735 "unread"
|
|
2736 "read"
|
|
2737 "deleted"
|
|
2738 "replied"
|
|
2739 "forwarded"
|
|
2740 "redistributed"
|
|
2741 "filed"
|
|
2742 "written"
|
|
2743 "edited"
|
|
2744 "undeleted"
|
|
2745 "unreplied"
|
|
2746 "unforwarded"
|
|
2747 "unredistributed"
|
|
2748 "unfiled"
|
|
2749 "unwritten"
|
|
2750 "unedited"
|
|
2751 ;; for babyl cogniscenti
|
|
2752 "recent"
|
|
2753 "unseen"
|
|
2754 "answered"
|
|
2755 "unanswered"))
|
|
2756
|
|
2757 (defvar vm-key-functions nil)
|
98
|
2758 (defconst vm-digest-type-alist '(("rfc934") ("rfc1153") ("mime")))
|
0
|
2759 (defvar vm-completion-auto-correct t
|
|
2760 "Non-nil means that minibuffer-complete-file should aggressively erase
|
|
2761 the trailing part of a word that caused completion to fail, and retry
|
|
2762 the completion with the resulting word.")
|
|
2763 (defvar vm-minibuffer-completion-table nil
|
|
2764 "Completion table used by vm-minibuffer-complete-word.
|
|
2765 Should be just a list of strings, not an alist or an obarray.")
|
|
2766 (defvar vm-completion-auto-space t
|
|
2767 "Non-nil value means that vm-minibuffer-complete-word should automatically
|
|
2768 append a space to words that complete unambiguously.")
|
|
2769 (defconst vm-attributes-vector-length 9)
|
70
|
2770 (defconst vm-cache-vector-length 20)
|
98
|
2771 (defconst vm-softdata-vector-length 18)
|
0
|
2772 (defconst vm-location-data-vector-length 6)
|
|
2773 (defconst vm-mirror-data-vector-length 5)
|
|
2774 (defconst vm-startup-message-lines
|
|
2775 '("Please use \\[vm-submit-bug-report] to report bugs."
|
98
|
2776 "For discussion about the VM mail reader, see the gnu.emacs.vm.info newsgroup"
|
0
|
2777 "You may give out copies of VM. Type \\[vm-show-copying-restrictions] to see the conditions"
|
|
2778 "VM comes with ABSOLUTELY NO WARRANTY; type \\[vm-show-no-warranty] for full details"
|
|
2779 "In Stereo (where available)"))
|
|
2780 (defconst vm-startup-message-displayed nil)
|
|
2781 ;; for the mode line
|
|
2782 (defvar vm-mode-line-format
|
|
2783 '("" " %&%& "
|
98
|
2784 ("VM " vm-version ": "
|
0
|
2785 (vm-folder-read-only "read-only ")
|
|
2786 (vm-virtual-folder-definition (vm-virtual-mirror "mirrored "))
|
|
2787 "%b"
|
|
2788 (vm-mail-buffer (vm-ml-sort-keys ("" " by " vm-ml-sort-keys)))
|
|
2789 (vm-message-list
|
|
2790 (" " vm-ml-message-number
|
|
2791 " (of " vm-ml-highest-message-number ")")
|
|
2792 (vm-folder-type
|
|
2793 " (unrecognized folder type)"
|
|
2794 " (no messages)")))
|
100
|
2795 (vm-spooled-mail-waiting " Mail")
|
0
|
2796 (vm-message-list
|
|
2797 (" %[ " vm-ml-message-attributes-alist
|
|
2798 (vm-ml-labels ("; " vm-ml-labels)) " %] ")
|
|
2799 (" %[%] "))
|
|
2800 "%p" " " global-mode-string))
|
|
2801
|
|
2802 (defvar vm-ml-message-attributes-alist
|
|
2803 '((vm-ml-message-new
|
|
2804 "new"
|
|
2805 (vm-ml-message-unread
|
|
2806 "unread"
|
|
2807 (vm-ml-message-read "read")))
|
|
2808 (vm-ml-message-edited " edited")
|
|
2809 (vm-ml-message-filed " filed")
|
|
2810 (vm-ml-message-written " written")
|
|
2811 (vm-ml-message-replied " replied")
|
|
2812 (vm-ml-message-forwarded " forwarded")
|
|
2813 (vm-ml-message-redistributed " redistributed")
|
|
2814 (vm-ml-message-deleted " deleted")
|
|
2815 (vm-ml-message-marked " MARKED")))
|
|
2816 (defvar vm-ml-message-number nil)
|
|
2817 (make-variable-buffer-local 'vm-ml-message-number)
|
|
2818 (defvar vm-ml-highest-message-number nil)
|
|
2819 (make-variable-buffer-local 'vm-ml-highest-message-number)
|
|
2820 (defvar vm-ml-sort-keys nil)
|
|
2821 (make-variable-buffer-local 'vm-ml-sort-keys)
|
|
2822 (defvar vm-ml-labels nil)
|
|
2823 (make-variable-buffer-local 'vm-ml-labels)
|
|
2824 ; unused now
|
|
2825 ;(defvar vm-ml-attributes-string nil)
|
|
2826 ;(make-variable-buffer-local 'vm-ml-attributes-string)
|
|
2827 (defvar vm-ml-message-new nil)
|
|
2828 (make-variable-buffer-local 'vm-ml-message-new)
|
|
2829 (defvar vm-ml-message-unread nil)
|
|
2830 (make-variable-buffer-local 'vm-ml-message-unread)
|
|
2831 (defvar vm-ml-message-read nil)
|
|
2832 (make-variable-buffer-local 'vm-ml-message-read)
|
|
2833 (defvar vm-ml-message-edited nil)
|
|
2834 (make-variable-buffer-local 'vm-ml-message-edited)
|
|
2835 (defvar vm-ml-message-replied nil)
|
|
2836 (make-variable-buffer-local 'vm-ml-message-replied)
|
|
2837 (defvar vm-ml-message-forwarded nil)
|
|
2838 (make-variable-buffer-local 'vm-ml-message-forwarded)
|
|
2839 (defvar vm-ml-message-redistributed nil)
|
|
2840 (make-variable-buffer-local 'vm-ml-message-redistributed)
|
|
2841 (defvar vm-ml-message-deleted nil)
|
|
2842 (make-variable-buffer-local 'vm-ml-message-deleted)
|
|
2843 (defvar vm-ml-message-filed nil)
|
|
2844 (make-variable-buffer-local 'vm-ml-message-filed)
|
|
2845 (defvar vm-ml-message-written nil)
|
|
2846 (make-variable-buffer-local 'vm-ml-message-written)
|
|
2847 (defvar vm-ml-message-marked nil)
|
|
2848 (make-variable-buffer-local 'vm-ml-message-marked)
|
|
2849 ;; to make the tanjed compiler shut up
|
|
2850 (defvar vm-pop-read-point nil)
|
100
|
2851 (defvar vm-pop-ok-to-ask nil)
|
0
|
2852 (defvar vm-reply-list nil)
|
|
2853 (defvar vm-forward-list nil)
|
|
2854 (defvar vm-redistribute-list nil)
|
|
2855 (defvar current-itimer nil)
|
|
2856 (defvar current-menubar nil)
|
|
2857 (defvar scrollbar-height nil)
|
|
2858 (defvar top-toolbar nil)
|
|
2859 (defvar top-toolbar-height nil)
|
|
2860 (defvar bottom-toolbar nil)
|
|
2861 (defvar bottom-toolbar-height nil)
|
|
2862 (defvar right-toolbar nil)
|
|
2863 (defvar right-toolbar-width nil)
|
|
2864 (defvar left-toolbar nil)
|
|
2865 (defvar left-toolbar-width nil)
|
|
2866 ;; this defvar matches the XEmacs one so it doesn't matter if VM
|
|
2867 ;; is loaded before highlight-headers.el
|
|
2868 (defvar highlight-headers-regexp "Subject[ \t]*:")
|
|
2869 (defvar vm-url-regexp
|
98
|
2870 "<URL:\\([^>]+\\)>\\|\\(\\(file\\|ftp\\|gopher\\|http\\|https\\|news\\|wais\\|www\\)://[^ \t\n\f\r\"<>|()]*[^ \t\n\f\r\"<>|.!?(){}]\\)\\|\\(mailto:[^ \t\n\f\r\"<>|()]*[^ \t\n\f\r\"<>|.!?(){}]\\)"
|
|
2871 "Regular expression that matches an absolute URL.
|
|
2872 The URL itself must be matched by a \\(..\\) grouping.
|
|
2873 VM will extract the URL by copying the lowest number grouping
|
|
2874 that has a match.")
|
0
|
2875 (defconst vm-month-alist
|
|
2876 '(("jan" "January" "1")
|
|
2877 ("feb" "February" "2")
|
|
2878 ("mar" "March" "3")
|
|
2879 ("apr" "April" "4")
|
|
2880 ("may" "May" "5")
|
|
2881 ("jun" "June" "6")
|
|
2882 ("jul" "July" "7")
|
|
2883 ("aug" "August" "8")
|
|
2884 ("sep" "September" "9")
|
|
2885 ("oct" "October" "10")
|
|
2886 ("nov" "November" "11")
|
|
2887 ("dec" "December" "12")))
|
|
2888 (defvar vm-pop-passwords nil)
|
|
2889 (defvar pop-up-frames nil)
|
|
2890 (defvar vm-parse-date-workspace (make-vector 6 nil))
|
|
2891 ;; cache so we don't call timezone-make-date-sortable so much.
|
|
2892 ;; messages have their own cache; this is for the virtual folder
|
|
2893 ;; alist selectors.
|
|
2894 (defvar vm-sortable-date-alist nil)
|
|
2895 (defvar vm-summary-=> nil)
|
|
2896 (defvar vm-summary-no-=> nil)
|
|
2897 (defvar vm-summary-overlay nil)
|
|
2898 (make-variable-buffer-local 'vm-summary-overlay)
|
|
2899 (defvar vm-thread-loop-obarray (make-vector 29 0))
|
|
2900 (defvar vm-delete-duplicates-obarray (make-vector 29 0))
|
|
2901 (defvar vm-mail-mode-map-parented nil)
|
|
2902 (defvar vm-xface-cache (make-vector 29 0))
|
98
|
2903 (defconst vm-mime-base64-alphabet
|
|
2904 (concat
|
|
2905 [
|
|
2906 65 66 67 68 69 70 71 72 73 74 75 76 77
|
|
2907 78 79 80 81 82 83 84 85 86 87 88 89 90
|
|
2908 97 98 99 100 101 102 103 104 105 106 107 108 109
|
|
2909 110 111 112 113 114 115 116 117 118 119 120 121 122
|
|
2910 48 49 50 51 52 53 54 55 56 57 43 47
|
|
2911 ]
|
|
2912 ))
|
|
2913 (defconst vm-mime-base64-alphabet-decoding-vector
|
|
2914 [
|
|
2915 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
2916 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
2917 0 0 0 0 0 0 0 0 0 0 0 62 0 0 0 63
|
|
2918 52 53 54 55 56 57 58 59 60 61 0 0 0 0 0 0
|
|
2919 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
|
2920 15 16 17 18 19 20 21 22 23 24 25 0 0 0 0 0
|
|
2921 0 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
|
2922 41 42 43 44 45 46 47 48 49 50 51 0 0 0 0 0
|
|
2923 ])
|
|
2924
|
|
2925 ;;(defconst vm-mime-base64-alphabet-decoding-alist
|
|
2926 ;; '(
|
|
2927 ;; ( 65 . 00) ( 66 . 01) ( 67 . 02) ( 68 . 03) ( 69 . 04) ( 70 . 05)
|
|
2928 ;; ( 71 . 06) ( 72 . 07) ( 73 . 08) ( 74 . 09) ( 75 . 10) ( 76 . 11)
|
|
2929 ;; ( 77 . 12) ( 78 . 13) ( 79 . 14) ( 80 . 15) ( 81 . 16) ( 82 . 17)
|
|
2930 ;; ( 83 . 18) ( 84 . 19) ( 85 . 20) ( 86 . 21) ( 87 . 22) ( 88 . 23)
|
|
2931 ;; ( 89 . 24) ( 90 . 25) ( 97 . 26) ( 98 . 27) ( 99 . 28) (100 . 29)
|
|
2932 ;; (101 . 30) (102 . 31) (103 . 32) (104 . 33) (105 . 34) (106 . 35)
|
|
2933 ;; (107 . 36) (108 . 37) (109 . 38) (110 . 39) (111 . 40) (112 . 41)
|
|
2934 ;; (113 . 42) (114 . 43) (115 . 44) (116 . 45) (117 . 46) (118 . 47)
|
|
2935 ;; (119 . 48) (120 . 49) (121 . 50) (122 . 51) ( 48 . 52) ( 49 . 53)
|
|
2936 ;; ( 50 . 54) ( 51 . 55) ( 52 . 56) ( 53 . 57) ( 54 . 58) ( 55 . 59)
|
|
2937 ;; ( 56 . 60) ( 57 . 61) ( 43 . 62) ( 47 . 63)
|
|
2938 ;; ))
|
|
2939 ;;
|
|
2940 ;;(defvar vm-mime-base64-alphabet-decoding-vector
|
|
2941 ;; (let ((v (make-vector 123 nil))
|
|
2942 ;; (p vm-mime-base64-alphabet-decoding-alist))
|
|
2943 ;; (while p
|
|
2944 ;; (aset v (car (car p)) (cdr (car p)))
|
|
2945 ;; (setq p (cdr p)))
|
|
2946 ;; v ))
|
|
2947
|
|
2948 (defvar vm-message-garbage-alist nil)
|
|
2949 (make-variable-buffer-local 'vm-message-garbage-alist)
|
|
2950 (defvar vm-folder-garbage-alist nil)
|
|
2951 (make-variable-buffer-local 'vm-folder-garbage-alist)
|
|
2952 (defconst vm-mime-header-list '("MIME-Version:" "Content-"))
|
100
|
2953 (defconst vm-mime-mule-charset-to-coding-alist
|
98
|
2954 '(
|
|
2955 ("us-ascii" no-conversion)
|
|
2956 ("iso-8859-1" no-conversion)
|
|
2957 ("iso-8859-2" iso-8859-2)
|
|
2958 ("iso-8859-3" iso-8859-3)
|
|
2959 ("iso-8859-4" iso-8859-4)
|
|
2960 ("iso-8859-5" iso-8859-5)
|
|
2961 ("iso-8859-6" iso-8859-6)
|
|
2962 ("iso-8859-7" iso-8859-7)
|
|
2963 ("iso-8859-8" iso-8859-8)
|
|
2964 ("iso-8859-9" iso-8859-9)
|
|
2965 ("iso-2022-jp" iso-2022-jp)
|
|
2966 ;; probably not correct, but probably better than nothing.
|
|
2967 ("iso-2022-jp-2" iso-2022-jp)
|
|
2968 ("iso-2022-int-1" iso-2022-int-1)
|
|
2969 ("iso-2022-kr" iso-2022-kr)
|
|
2970 ("euc-kr" iso-2022-kr)
|
|
2971 ))
|
100
|
2972 (defvar vm-mime-mule-charset-to-charset-alist
|
|
2973 '(
|
|
2974 (latin-iso8859-1 "iso-8859-1")
|
|
2975 (latin-iso8859-2 "iso-8859-2")
|
|
2976 (latin-iso8859-3 "iso-8859-3")
|
|
2977 (latin-iso8859-4 "iso-8859-4")
|
|
2978 (cyrillic-iso8859-5 "iso-8859-5")
|
|
2979 (arabic-iso8859-6 "iso-8859-6")
|
|
2980 (greek-iso8859-7 "iso-8859-7")
|
|
2981 (hebrew-iso8859-8 "iso-8859-8")
|
|
2982 (latin-iso8859-9 "iso-8859-9")
|
|
2983 (japanese-jisx0208 "iso-2022-jp")
|
|
2984 (korean-ksc5601 "iso-2022-kr")
|
|
2985 (chinese-gb2312 "iso-2022-jp")
|
|
2986 (sisheng "iso-2022-jp")
|
|
2987 (thai-tis620 "iso-2022-jp")
|
|
2988 ))
|
|
2989 (defvar vm-mime-mule-coding-to-charset-alist
|
|
2990 '(
|
|
2991 (iso-2022-8 "iso-2022-jp")
|
|
2992 (iso-2022-7-unix "iso-2022-jp")
|
|
2993 (iso-2022-7-dos "iso-2022-jp")
|
|
2994 (iso-2022-7-mac "iso-2022-jp")
|
|
2995 ))
|
98
|
2996 (defconst vm-mime-charset-completion-alist
|
|
2997 '(
|
|
2998 ("us-ascii")
|
|
2999 ("iso-8859-1")
|
|
3000 ("iso-8859-2")
|
|
3001 ("iso-8859-3")
|
|
3002 ("iso-8859-4")
|
|
3003 ("iso-8859-5")
|
|
3004 ("iso-8859-6")
|
|
3005 ("iso-8859-7")
|
|
3006 ("iso-8859-8")
|
|
3007 ("iso-8859-9")
|
|
3008 ("iso-2022-jp")
|
|
3009 ("iso-2022-jp-2")
|
|
3010 ("iso-2022-int-1")
|
|
3011 ("iso-2022-kr")
|
|
3012 ))
|
|
3013 (defconst vm-mime-type-completion-alist
|
|
3014 '(
|
|
3015 ("text/plain")
|
|
3016 ("text/enriched")
|
|
3017 ("text/html")
|
|
3018 ("audio/basic")
|
|
3019 ("image/jpeg")
|
|
3020 ("image/png")
|
|
3021 ("image/gif")
|
|
3022 ("image/tiff")
|
|
3023 ("video/mpeg")
|
|
3024 ("application/postscript")
|
|
3025 ("application/octet-stream")
|
|
3026 ("message/rfc822")
|
108
|
3027 ("message/news")
|
98
|
3028 ))
|
|
3029 (defconst vm-mime-encoded-word-regexp
|
|
3030 "=\\?\\([^?]+\\)\\?\\([BQ]\\)\\?\\([^?]+\\)\\?=")
|
|
3031 ;; for MS-DOS and Windows NT
|
|
3032 ;; nil value means text file
|
|
3033 ;; t value means binary file
|
|
3034 ;; presumably it controls whether LF -> CRLF mapping is done
|
|
3035 ;; when writing to files.
|
|
3036 (defvar buffer-file-type)
|
|
3037 (defvar vm-frame-list nil)
|
|
3038 (if (not (boundp 'shell-command-switch))
|
|
3039 (defvar shell-command-switch "-c"))
|