summaryrefslogtreecommitdiff
path: root/debian/examples
diff options
context:
space:
mode:
authorManoj Srivastava <srivasta@debian.org>2014-04-28 16:31:54 -0700
committerManoj Srivastava <srivasta@debian.org>2014-04-28 16:31:54 -0700
commit920d3d552a2535a91f212d7b7b06f0ae48d7228e (patch)
tree525dd764440b4c9aef6b8774a6089af1cd254fef /debian/examples
vm (8.2.0b-1) unstable; urgency=low
* New upstream release. This has been in Beta for two years now, and seems to work fine. # imported from the archive
Diffstat (limited to 'debian/examples')
-rw-r--r--debian/examples/README13
-rw-r--r--debian/examples/README.windows47
-rw-r--r--debian/examples/dot.abbrevs16
-rw-r--r--debian/examples/dot.emacs53
-rw-r--r--debian/examples/dot.vm52
-rw-r--r--debian/examples/dot.vm-auto-spool13
-rw-r--r--debian/examples/dot.vm-color80
-rw-r--r--debian/examples/dot.vm-hide-ref26
-rw-r--r--debian/examples/dot.vm-hide-ref-234
-rw-r--r--debian/examples/dot.vm-manoj-current653
-rw-r--r--debian/examples/dot.vm.2148
-rw-r--r--debian/examples/full_screen9
-rw-r--r--debian/examples/summary_bottom9
-rw-r--r--debian/examples/summary_right12
-rw-r--r--debian/examples/summary_top9
15 files changed, 1174 insertions, 0 deletions
diff --git a/debian/examples/README b/debian/examples/README
new file mode 100644
index 0000000..cd9b914
--- /dev/null
+++ b/debian/examples/README
@@ -0,0 +1,13 @@
+The files dot.vm, dot.emacs and dot.abbrevs are mine; dot.vm.2 was
+contributed by a friend as an alternative example. Edit them to your
+personal requirements before trying to use them!
+
+If there is demand it should be trivial to write a program to
+translate between other addressbook formats and the abbrev file
+format. (There's no reason you have to use abbrevs for your address
+book, but I like it;-)
+
+README.windows, full_screen and summary_{bottom,right,top} are from
+the windows package distributed with the upstream vm source.
+
+1995-08-19 Richard Kettlewell <richard@elmail.co.uk>
diff --git a/debian/examples/README.windows b/debian/examples/README.windows
new file mode 100644
index 0000000..989e749
--- /dev/null
+++ b/debian/examples/README.windows
@@ -0,0 +1,47 @@
+Here are some window configuration files to get your started.
+There are comments at the top of each file that describe what
+they make VM do.
+
+Pick one of these files and copy it somewhere, like say
+~/.vm.windows. Then put
+
+(setq vm-window-configuration-file "~/.vm.windows")
+
+in your .vm file.
+
+VM's window configuration system works by assigning
+configurations to actions. Nearly every VM command can have its
+own separate configuration. However, there are also
+configurations for classes of actions, like 'startup' and
+'composing-message'. These configuration classes cover all the
+commands that fit into the class. For example, all the commands
+that send out mail fall under the 'composing-message' config.
+
+If there is no command specific configuration, the class
+configuration for that command is used. If there is no class
+configuration, then the 'default' configuration is used. If
+there is no 'default' configuration, VM does <something> to get
+its buffers displayed, and <something> is undefined. If you
+don't set up a window configuration VM might start displaying your
+folders by skywriting or some such. So, for your privacy's sake,
+you should set up window configurations. :)
+
+To set a configuration, you should use normal Emacs window and
+buffer selection and sizing commands to make the screen look like
+you want it to look for a particular action. Then run
+vm-save-window-configuration. This is bound to W S in vm-mode
+buffers, and C-c C-v W S in VM mail-mode and edit-message buffers.
+You can of course use M-x vm-save-window-configuration from any
+other buffer. You will be asked for a configuration name, and
+there is completion for the names. If a configuration for the
+name you select already exists, it will be overwritten.
+
+To delete a configuration, use vm-delete-window-configuration,
+bound to W D in vm-mode buffer. The action that you specify will
+no longer have a configuration associated with it.
+
+vm-apply-window-configuration (W W) makes the screen look like a
+particular configuration. You might use this as an aid to
+setting up configurations based on some common framework. W W is
+an easy way to call up a config instead of recreating it each
+time.
diff --git a/debian/examples/dot.abbrevs b/debian/examples/dot.abbrevs
new file mode 100644
index 0000000..1a03373
--- /dev/null
+++ b/debian/examples/dot.abbrevs
@@ -0,0 +1,16 @@
+;-*-emacs-lisp-*-
+;
+; Rather than editing abbrevs files directly, it's better to use
+; commands like M-X define-mail-abbrev and M-X edit-abbrevs, then save
+; them back with M-X write-abbrev-file
+;
+; (err, this may not be the best way to do it. Watch this space.)
+;
+
+(define-abbrev-table 'mail-abbrevs '(
+ ("debian-bugs-done" "debian-bugs-done@pixar.com" mail-abbrev-expand-hook 0)
+ ("debian-announce" "debian-announce@pixar.com" mail-abbrev-expand-hook 0)
+ ("debian-user" "debian-user@pixar.com" mail-abbrev-expand-hook 0)
+ ("debian-devel" "debian-devel@pixar.com" mail-abbrev-expand-hook 0)
+ ("rjk" "Richard Kettlewell <richard@elmail.co.uk>" mail-abbrev-expand-hook 0)
+ ))
diff --git a/debian/examples/dot.emacs b/debian/examples/dot.emacs
new file mode 100644
index 0000000..a600d6e
--- /dev/null
+++ b/debian/examples/dot.emacs
@@ -0,0 +1,53 @@
+;-*-emacs-lisp-*-
+;
+; Various mail-related things I put in my .emacs file
+;
+
+; use abbrevs in (Resent-)?(To|Cc|Bcc): lines
+
+(add-hook 'mail-setup-hook 'mail-abbrevs-setup)
+
+; load my address book
+
+(load-file "~/.abbrevs")
+
+; set my email address
+
+(setq user-mail-address "richard@elmail.co.uk")
+
+; set quoting character for replies
+
+(setq mail-yank-prefix ">")
+
+; set default Fcc folder
+
+(setq mail-archive-file-name "~/mail/sent-mail")
+
+; see /usr/doc/examples/vm/README.hilit19 for what's going on here
+
+(cond (window-system
+ (setq hilit-mode-enable-list '(not text-mode)
+ hilit-background-mode 'light
+ hilit-inhibit-hooks nil
+ hilit-inhibit-rebinding nil)
+ (require 'hilit19)
+ (add-hook 'vm-summary-pointer-update-hook 'hilit-rehighlight-buffer)
+ (add-hook 'vm-select-message-hook 'hilit-rehighlight-buffer)
+ (hilit-translate comment 'firebrick-bold)
+ (hilit-set-mode-patterns
+ 'outline-mode
+ '(("^\*.*$" nil defun)
+ ))
+ ))
+;; This will return a list of all the buffers in VM mode:
+; (let ((buffers (buffer-list))
+; (vm-buffers '()))
+; (while buffers
+; (if (eq (save-excursion
+; (set-buffer (car buffers))
+; major-mode)
+; 'vm-mode)
+; (setq vm-buffers
+; (cons (car buffers) vm-buffers)))
+; (setq buffers (cdr buffers)))
+; (nreverse vm-buffers))
diff --git a/debian/examples/dot.vm b/debian/examples/dot.vm
new file mode 100644
index 0000000..2385f49
--- /dev/null
+++ b/debian/examples/dot.vm
@@ -0,0 +1,52 @@
+;-*-emacs-lisp-*-
+;
+; Example configuration for VM.
+;
+; Copy this file into ~/.vm and edit to taste; it will be run when vm
+; starts up. See the vm manual - under VM in info - for more details.
+;
+; NOTE to administrators: vm works perfectly OK without this file in
+; everyone's home directory. There's no call for it to be copied to
+; /etc/skel.
+;
+
+(setq vm-startup-with-summary t)
+(setq vm-skip-deleted-messages nil)
+(setq vm-circular-folders nil)
+(setq vm-preview-lines nil)
+(setq vm-highlighted-header-regexp "^From\\|^Subject")
+(setq vm-included-text-prefix ">")
+(setq vm-reply-subject-prefix "Re: ")
+(setq vm-folder-directory "~/mail/")
+(setq vm-delete-after-saving t)
+(setq vm-move-after-deleting t)
+(setq vm-delete-empty-folders)
+(setq vm-visible-headers '("Resent-From:" "From:" "Sender:" "To:" "Apparently-To:" "Cc:" "Subject:" "Date:"))
+
+; A quick tutorial on VM's MIME display variables.
+
+; vm-display-using-mime controls whether MIME is displayed specially
+; at all. Default value is t.
+
+; vm-auto-decode-mime-messages controls whether a MIME message is
+; decoded when the message is selected. Decoding means parsing the
+; message to figure out what MIME types are in it. This can be
+; slow for large messages, so you might not want it to happen
+; automatically. Default value is t.
+
+; vm-auto-displayed-mime-content-types controls which MIME types
+; are displayed immediately after the message is decoded.
+; Default value is ("text" "multipart").
+
+; vm-auto-displayed-mime-content-type-exceptions lists exceptions
+; to the auto-displayed types. So you can specify "text" as an
+; auto-displayed type and '("text/html") as the exceptions list to avoid
+; immediate display of text/html. Default value is nil.
+
+
+
+; For text/html handling you probably want to do this:
+
+; (add-to-list 'vm-mime-internal-content-type-exceptions "text/html")
+; (add-to-list 'vm-mime-external-content-types-alist
+; '("text/html" "netscape -remote 'openFILE(%f)' || netscape %f"))
diff --git a/debian/examples/dot.vm-auto-spool b/debian/examples/dot.vm-auto-spool
new file mode 100644
index 0000000..87b9720
--- /dev/null
+++ b/debian/examples/dot.vm-auto-spool
@@ -0,0 +1,13 @@
+;; Set vm-spool-files based on all filenames in vm-spool-directory.
+;; You probably don't want to do this unless you've set vm-spool-directory
+;; to point to a directory used exclusively for your own spool files.
+
+(cond ((string-equal vm-folder-directory vm-spool-directory)
+ (error "vm-folder-directory and vm-spool-directory must be different."))
+ (t
+ (setq vm-spool-files
+ (mapcar '(lambda(spool-name)
+ (list (concat vm-folder-directory spool-name)
+ (concat vm-spool-directory spool-name)
+ (concat vm-folder-directory spool-name ".CRASH")))
+ (directory-files vm-spool-directory nil "^[^.]")))))
diff --git a/debian/examples/dot.vm-color b/debian/examples/dot.vm-color
new file mode 100644
index 0000000..441f6e4
--- /dev/null
+++ b/debian/examples/dot.vm-color
@@ -0,0 +1,80 @@
+I find font-locking email very useful for colouring quoted text
+differently to the new text. In fact, Gnus manages to colour every
+quoted message differently, which is very handy once you get three or
+four different people quoting each other. Can you get VM to do this?
+
+FWIW, here is the relevant bit of my .vm file (i use XEmacs which may
+(not) be relevant). Before anyone asks i don't know why i need to use
+both vm-mail-mode-hook and mail-setup-hook, but it works for me, and i
+can't be bothered to sort it out.
+
+
+(require 'highlight-headers)
+;;colours
+(set-face-foreground 'message-headers "darkslateblue")
+(set-face-foreground 'message-header-contents "brown")
+(set-face-foreground 'message-highlighted-header-contents "black")
+(set-face-foreground 'message-cited-text "darkgreen")
+(make-face-bold 'message-highlighted-header-contents)
+(make-face-unitalic 'message-header-contents)
+
+;;highlighting
+(defconst kmc-vm-mail-font-lock-keywords
+ (purecopy
+ (list
+ '("^\\([-a-zA-Z0-9]+:\\)[ ]*\\(.*\\)$" 1 message-headers t)
+ '("^\\([-a-zA-Z0-9]+:\\)[ ]*\\(.*\\)$" 2 message-header-contents t)
+ '("Subject[ \t]*:[ ]*\\(.*\\)$" 1 message-highlighted-header-contents t)
+ (list (concat highlight-headers-citation-regexp
+ "\\(.*\\)$") 2 'message-cited-text t)
+ (list (concat "\\("
+ highlight-headers-citation-header-regexp
+ "\\)") 1 'message-headers t)
+ )))
+
+(add-hook 'vm-mail-mode-hook
+ (lambda ()
+ (setq font-lock-keywords kmc-vm-mail-font-lock-keywords)
+ ))
+(add-hook 'mail-setup-hook
+ (lambda ()
+ (setq font-lock-keywords kmc-vm-mail-font-lock-keywords)
+ )
+
+
+======================================================================
+> I've found it useful when you can display the quoted portion in a
+> grey-ish color, rather than my default white on black. It seems to
+> make it easier to focus in on the reply parts. Certainly not
+> critical, but I'd find it a very nice feature.
+
+
+I had to add a new hook to VM for making that:
+vm-presentation-mode-hook. Then, I use the following. It fontifies the
+"From" and "Subject" lines, as well as URLs, quoted text and auto-MIME
+decode zones.
+======================================================================
+
+(setq vm-font-lock-words
+ '(("^Subject: \\(.*\\)$" . font-lock-reference-face)
+ ("^From: \\(.*\\)" . font-lock-type-face)
+ ("^[>|}].*" . font-lock-comment-face)
+ ("^.*\\\[Click .*\\\]$" . font-lock-variable-name-face)
+ ("\\(file\\|ftp\\|gopher\\|http\\|https\\|news\\|wais\\|www\\)://[^ \t\n\f\r\"<>|()]*[^ \t\n\f\r\"<>|.!?(){}]" . font-lock-string-face)
+ )
+)
+
+(defun vm-fontify ()
+ (make-local-variable 'font-lock-defaults)
+ (setq font-lock-defaults '(vm-font-lock-words t))
+ (turn-on-font-lock))
+
+(add-hook 'vm-mode-hook
+ '(lambda ()
+ (local-set-key "r" 'vm-followup)
+ (vm-fontify)))
+
+(add-hook 'vm-presentation-mode-hook
+ '(lambda ()
+ (vm-fontify)))
+
diff --git a/debian/examples/dot.vm-hide-ref b/debian/examples/dot.vm-hide-ref
new file mode 100644
index 0000000..f1863fb
--- /dev/null
+++ b/debian/examples/dot.vm-hide-ref
@@ -0,0 +1,26 @@
+In .emacs
+
+(defun hide-references-hook ()
+ (save-excursion
+ (let (lim)
+ (goto-char (point-min))
+ (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
+ (setq lim (match-beginning 0))
+ (goto-char (point-min))
+ (cond ((re-search-forward "^References:.*\n\\([ \t].*\n\\)*" lim t)
+ (let ((o (make-overlay (match-beginning 0) (match-end 0))))
+ (overlay-put o 'invisible t)))))))
+
+(defun hide-in-reply-to-hook ()
+ (save-excursion
+ (let (lim)
+ (goto-char (point-min))
+ (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
+ (setq lim (match-beginning 0))
+ (goto-char (point-min))
+ (cond ((re-search-forward "^In-Reply-To:.*\n\\([ \t].*\n\\)*" lim t)
+ (let ((o (make-overlay (match-beginning 0) (match-end 0))))
+ (overlay-put o 'invisible t)))))))
+
+(add-hook 'vm-mail-mode-hook 'hide-references-hook)
+(add-hook 'vm-mail-mode-hook 'hide-in-reply-to-hook)
diff --git a/debian/examples/dot.vm-hide-ref-2 b/debian/examples/dot.vm-hide-ref-2
new file mode 100644
index 0000000..d38a76d
--- /dev/null
+++ b/debian/examples/dot.vm-hide-ref-2
@@ -0,0 +1,34 @@
+Here's a hook function that will hide the References header in
+VM's mail-mode buffers. This is for Good 'Ol Emacs only; this
+won't work under XEmacs. You will notice the cursor behaves as
+if the References header is still there... that's because it is
+still there.
+
+(defun hide-references-hook ()
+ (save-excursion
+ (let (lim)
+ (goto-char (point-min))
+ (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
+ (setq lim (match-beginning 0))
+ (goto-char (point-min))
+ (cond ((re-search-forward "^References:.*\n\\([ \t].*\n\\)*" lim t)
+ (let ((o (make-overlay (match-beginning 0) (match-end 0))))
+ (overlay-put o 'invisible t)))))))
+
+(add-hook 'vm-mail-mode-hook 'hide-references-hook)
+
+Here's the XEmacs version of that function. Required change was
+replacing make-overlay with make-extent, and overlay-put with
+set-extent-property.
+
+(defun hide-references-hook ()
+ (save-excursion
+ (let (lim)
+ (goto-char (point-min))
+ (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
+ (setq lim (match-beginning 0))
+ (goto-char (point-min))
+ (cond ((re-search-forward "^References:.*\n\\([ \t].*\n\\)*" lim t)
+ (let ((o (make-extent (match-beginning 0) (match-end 0))))
+ (set-extent-property o 'invisible t)))))))
+
diff --git a/debian/examples/dot.vm-manoj-current b/debian/examples/dot.vm-manoj-current
new file mode 100644
index 0000000..dfd9a88
--- /dev/null
+++ b/debian/examples/dot.vm-manoj-current
@@ -0,0 +1,653 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; To read mail with VM from an IMAP spool, an entry specifying the ;;;
+;;; maildrop is needed in vm-spool-files. This can be configured ;;;
+;;; using, for example: ;;;
+;;; ;;;
+;;; (add-to-list 'vm-spool-files ;;;
+;;; '("~/mail/IMAP-INBOX" ;;;
+;;; "imap:HOST:PORT:MAILBOX:AUTH:USER:PASSWORD" ;;;
+;;; "~/mail/IMAP-INBOX.CRASH")) ;;;
+;;; ;;;
+;;; where PORT is normally 143. To use IMAP over SSL, use, instead: ;;;
+;;; ;;;
+;;; (add-to-list 'vm-spool-files ;;;
+;;; '("~/mail/IMAP-INBOX" ;;;
+;;; "imap-ssl:HOST:PORT:MAILBOX:AUTH:USER:PASSWORD" ;;;
+;;; "~/mail/IMAP-INBOX.CRASH")) ;;;
+;;; ;;;
+;;; where PORT is normally 993. In both cases, if PASSWORD is given ;;;
+;;; as *, it will be prompted for the first time that mail is ;;;
+;;; retrieved. ;;;
+;;; ;;;
+;;; By default, messages are removed from the IMAP server after ;;;
+;;; retrieving them. This is controlled by the variable ;;;
+;;; vm-imap-expunge-after-retrieving, but per-maildrop settings can ;;;
+;;; be made in vm-imap-auto-expunge-alist. ;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; To read mail with VM from a POP spool, an entry specifying the ;;;
+;;; maildrop is needed in vm-spool-files. This can be configured ;;;
+;;; using, for example: ;;;
+;;; ;;;
+;;; (add-to-list 'vm-spool-files ;;;
+;;; '("~/mail/POP-INBOX" ;;;
+;;; "pop:HOST:PORT:AUTH:USER:PASSWORD" ;;;
+;;; "~/mail/POP-INBOX.CRASH")) ;;;
+;;; ;;;
+;;; where PORT is normally 110. To use POP over SSL, use, instead: ;;;
+;;; ;;;
+;;; (add-to-list 'vm-spool-files ;;;
+;;; '("~/mail/POP-INBOX" ;;;
+;;; "pop-ssl:HOST:PORT:AUTH:USER:PASSWORD" ;;;
+;;; "~/mail/POP-INBOX.CRASH")) ;;;
+;;; ;;;
+;;; where PORT is normally 995. In both cases, if PASSWORD is given ;;;
+;;; as *, it will be prompted for the first time that mail is ;;;
+;;; retrieved. ;;;
+;;; ;;;
+;;; AUTH will normally be "pass". See the docstring ;;;
+;;; of vm-spool-files for the other acceptable values and their ;;;
+;;; meanings. ;;;
+;;; ;;;
+;;; By default, messages are removed from the POP server after ;;;
+;;; retrieving them. This is controlled by the variable ;;;
+;;; vm-pop-expunge-after-retrieving, but per-maildrop settings can be ;;;
+;;; made in vm-pop-auto-expunge-alist. ;;;
+;;; ;;;
+;;; Other variables controlling POP behaviour include: ;;;
+;;; ;;;
+;;; vm-pop-bytes-per-session ;;;
+;;; vm-pop-max-message-size ;;;
+;;; vm-pop-messages-per-session ;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'message)
+(load-library "vm-autoloads")
+
+(require 'vm-pine)
+(require 'vm-rfaddons)
+(require 'vm-thread)
+(require 'vm-virtual)
+(require 'vm-delete)
+(require 'vm-sort)
+(require 'bbdb-vm)
+(require 'vm-misc)
+(require 'vm-mime)
+(if window-system
+ (require 'vm-mouse))
+(bbdb-insinuate-vm)
+
+
+(vm-rfaddons-infect-vm)
+
+(require 'u-vm-color)
+(add-hook 'vm-summary-mode-hook 'u-vm-color-summary-mode)
+(add-hook 'vm-select-message-hook 'u-vm-color-fontify-buffer)
+(defadvice vm-decode-mime-message (after u-vm-color activate)
+ (u-vm-color-fontify-buffer-even-more))
+(defadvice vm-fill-paragraphs-containing-long-lines
+ (after u-vm-color activate)
+ (u-vm-color-fontify-buffer))
+
+(setq-default vm-summary-show-threads t)
+
+(setq
+ vm-auto-center-summary 0
+ vm-auto-decode-mime-messages t
+ vm-auto-displayed-mime-content-types
+ '("text" "multipart" "message/rfc822" "plain text" "mail message"
+ "text/x-vcard" "text/enriched" )
+
+ vm-crash-inbox (concat my-mail-dir "/INBOX.CRASH")
+ vm-delete-after-archiving t
+ vm-delete-after-bursting t
+ vm-delete-after-saving t
+ vm-folder-directory (concat my-mail-dir "/")
+ vm-follow-summary-cursor t
+ vm-forwarding-subject-format "Forwarded message from %F, %h %w,%d %m %y"
+ vm-highlighted-header-regexp (if window-system nil "^From\\|^Subject")
+ vm-honor-page-delimiters t
+ vm-honor-mime-content-disposition t
+ ;; vm-in-reply-to-format "%i:%F's message of %h %w,%d %m %y "
+ vm-included-text-headers '("\\bFrom\\b" "\\bSubject\\b" "\\bDate\\b")
+ vm-inhibit-startup-message t
+ vm-keep-sent-messages 2
+ vm-mail-header-from (or user-mail-address (concat (user-login-name)
+ "@acm.org"))
+ vm-mime-internal-content-types
+ '("text" "multipart" "message/rfc822" "plain text" "mail message"
+ "text/x-vcard" "text/enriched" )
+
+ vm-mime-8bit-composition-charset "utf-8"
+ vm-mime-qp-decoder-program "qp-decode"
+ vm-mime-qp-encoder-program "qp-encode"
+ vm-mime-base64-decoder-program "base64-decode"
+ vm-mime-base64-encoder-program "base64-encode"
+ vm-move-after-deleting t
+ vm-move-after-killing t
+ vm-preferences-file "~/etc/vm.preferences"
+ vm-popup-menu-on-mouse-3 t
+ vm-preview-read-messages nil
+ vm-primary-inbox (concat my-mail-dir "/INBOX")
+ vm-reply-ignored-addresses (list (concat "\\b" (regexp-quote
+ (user-login-name)) "\\b"))
+ vm-reply-subject-prefix "Re: "
+ vm-search-using-regexps t
+ vm-skip-deleted-messages 0
+ vm-skip-read-messages nil
+ vm-spool-files
+ (list
+ (list "INBOX" "~/mbox" "INBOX.CRASH" )
+ (list "INBOX" (concat "/var/mail/" (user-login-name)) "INBOX.CRASH" )
+ (list "INBOX" (concat "/var/spool/mail/" (user-login-name))
+ "INBOX.CRASH" )
+ (list "INBOX" (concat "/usr/mail/" (user-login-name)) "INBOX.CRASH" )
+ (list "INBOX" (concat "/usr/spool/mail/" (user-login-name))
+ "INBOX.CRASH" )
+ (list "INBOX" (concat real-home-directory "/var/spool/mail/important")
+ "INBOX.CRASH" )
+ (list "ADMIN" (concat real-home-directory "/var/spool/mail/admin")
+ "ADMIN.CRASH")
+ (list "BCAST" (concat real-home-directory "/var/spool/mail/bcast")
+ "BCAST.CRASH")
+ (list "CONSULT" (concat real-home-directory "/var/spool/mail/consult")
+ "CONSULT.CRASH")
+ (list "DIGITAL" (concat real-home-directory "/var/spool/mail/digital")
+ "DIGITAL.CRASH")
+ (list "GCIF" (concat real-home-directory "/var/spool/mail/gcif")
+ "GCIF.CRASH")
+ (list "GCIFC" (concat real-home-directory "/var/spool/mail/gcifcases")
+ "GCIFC.CRASH")
+ (list "spam" (concat real-home-directory "/var/spool/mail/spam")
+ "spam.CRASH")
+ (list "grey" (concat real-home-directory "/var/spool/mail/grey.mbox")
+ "grey.CRASH")
+ (list "MISC" (concat real-home-directory "/var/spool/mail/misc")
+ "MISC.CRASH")
+ (list "orders" (concat real-home-directory "/var/spool/mail/orders")
+ "orders.CRASH")
+ )
+ vm-startup-with-summary 1
+ vm-strip-reply-headers t
+ vm-summary-format "%2n%UA%*%a %-17.17UB %-3.3m %2d %4l/%-5c %I\"%s\"\n"
+ vm-summary-uninteresting-senders (concat "\\b" (regexp-quote
+ (user-login-name)) "\\b")
+ vm-summary-uninteresting-senders-arrow "==> "
+ vm-use-menus t
+ vm-visit-when-saving 'okay
+ vm-virtual-folder-alist
+ '(
+ ("misc"
+ (("ADMIN" "BCAST" "MISC" ) ;;;;
+ (any)))
+ )
+ vm-window-configuration-file "~/etc/vm.windows"
+)
+
+;;; (setq vm-mime-default-face-charsets
+;;; '("us-ascii" "iso-8859-1" "iso-8859-2" "iso-8859-3" "iso-8859-4"
+;;; "iso-8859-5" "iso-8859-6" "iso-8859-7" "iso-8859-8" "iso-8859-9"
+;;; "windows-1251" "windows-1252" "koi8-r" "us-ascii" "X-roman8"
+;;; )
+;;; )
+;;; (add-to-list 'vm-mime-default-face-charsets "Windows-1251")
+;;; (add-to-list 'vm-mime-default-face-charsets "Windows-1252")
+;;; (add-to-list 'vm-mime-default-face-charsets "Windows-1257")
+
+;; Show all:
+(setq vm-mime-default-face-charsets t)
+
+(setq vm-mime-type-converter-alist
+ '(
+ ("text/html" "text/plain" "links -force_html -dump /dev/stdin")
+ ))
+
+;;;;(require 'browse-url)
+;;;;(defvaralias 'vm-url-browser 'browse-url-browser-function))
+
+;;;; Then tell VM that it should not display text/html internally.
+;(setq vm-mime-internal-content-type-exceptions '("text/html"))
+;(add-to-list 'vm-mime-external-content-types-alist
+; '("text/html" "mozilla -remote 'openFILE(%f)' || mozilla %f"))
+; setq vm-mime-type-converter-alist
+; ;; w3 takes a loong time ... so:
+; '(
+; ("text/html" "text/plain" "w3m -T \"text/html\" -dump")
+; ))
+
+(setq
+ vm-netscape-program "firefox"
+ vm-url-browser 'vm-mouse-send-url-to-netscape
+ vm-netscape-program-switches nil
+ )
+
+
+;(add-to-list 'vm-mime-external-content-types-alist
+; '("image/*" "display %f"))
+
+(defun vm-summary-function-A (m)
+ (if (string-match "Manoj Srivastava" (vm-su-to m)) "+" " "))
+
+;;"%2n %*%a %-17.17F %-3.3m %2d %4l/%-5c \"%s\"\n"
+;;"%2n %*%a %-17.17U %-3.3m %2d %4l/%-5c \"%s\"\n"
+
+(defun my-vm-mode-function ()
+ "Added quitting, no backups, and load a few libs."
+ (interactive)
+ (make-local-variable 'version-control)
+ (setq version-control 'never); keep minimal backups
+;; (load-library "jwz-vm-summary")
+ (require 'sendmail)
+;; (load-library "ml-alias")
+;; (require 'vm-sort)
+ (require 'message)
+ (add-hook 'local-write-file-hooks 'bbdb-offer-save)
+ )
+
+(setq vm-mode-hooks 'my-vm-mode-function)
+(add-hook 'vm-quit-hook 'vm-expunge-folder)
+(add-hook 'vm-quit-hook 'bbdb-save-db)
+;;(bbdb/vm-set-auto-folder-alist)
+
+
+;;; For a while, I used to do a BBDB save only when quitting out of my
+;;; primary "in" box. For that, I did this:
+;;; (add-hook 'vm-quit-hook
+;;; (function
+;;; (lambda ()
+;;; (if (string-equal (buffer-name (current-buffer)) "INBOX")
+;;; (progn
+;;; (bbdb-save-db))))))
+
+(setq mail-yank-ignored-headers
+ (concat
+ "^Content-Length:\\|"
+ "^Content-Type:\\|"
+ "^Email-Version:\\|"
+ "^End-of-Header:\\|"
+ "^End-of-Protocol:\\|"
+ "^Full-Name:\\|"
+ "^Message-Version:\\|"
+ "^Message-Service:\\|"
+ "^Reply-Path:\\|"
+ "^Reply-To:\\|"
+ "^>To:\\|"
+ "^UA-Content-ID:\\|"
+ "^UA-Message-ID:\\|"
+ "^X-at-.*:\\|"
+ mail-yank-ignored-headers)
+ )
+
+
+(defvar vm-ml-ids
+ '(
+ "info-vm-request"
+ "info-mm"
+ "ange-ftp-lovers"
+ "info-gnuplot-request"
+ "lucid-emacs"
+ "Gutenberg"
+ "hyperbole"
+ "auc-tex"
+ "owner-supercite"
+ "fsp-discussion"
+ )
+ "*List of strings naming the mailing lists that VM should know
+ about. VM archives mailing-lists that appear in vm-mailing-lists in
+ their own folder. See also info on function vm-make-mailinglist-regexp.")
+
+(defun vm-make-mailing-list-regexp (listname)
+ "This function is used only to construct the variable
+ vm-auto-folder-alist. It returns the cons of a regexp and a
+ foldername. The regexp is supposed to match the To, Cc, or Sender
+ field in the message. The foldername is the LISTNAME prepended with
+ \"M-\" and the result is used as the name of the folder to append the
+ message to."
+ (cons
+ (concat
+ "\\<" listname
+ "\\|" (upcase listname)
+ "\\|" listname "-list"
+ "\\|" (upcase listname) "-LIST"
+ "\\>")
+ (concat "M-" listname)))
+
+
+(setq
+ vm-auto-folder-alist
+ (list
+ ;; First we check if this is a mailing-list. The name of the
+ ;; mailing-list is usually in the To-field, but sometimes in the Cc-
+ ;; or Sender-field:
+
+
+ (cons "To" (mapcar 'vm-make-mailing-list-regexp vm-ml-ids))
+ (cons "Cc" (mapcar 'vm-make-mailing-list-regexp vm-ml-ids))
+ (cons "Sender" (mapcar 'vm-make-mailing-list-regexp vm-ml-ids))
+ ;; if it's not a mailing list, then use sender's name as folder name:
+ (list "Newsgroups"
+ (cons "gnu.emacs.sources" "emacs")
+ )
+ (list "Subject"
+ (cons ".*[oO]pen ?[lL]ook.*" "xnews")
+ (cons ".*\\(MOTIF\\|X11\\| X \\).*" "x11")
+ (cons ".*\\(OSF\\).*" "osf1")
+ (cons ".*[vV][mM].*" "vm")
+ (cons ".*[cC]\\+\\+.*" "c++")
+ (cons "Returned mail" "Receipts")
+ )
+ (list "From"
+ (cons my-login-name-regexp
+ '(list (list "To"
+ '( "ART" . "gaylord")
+ ;; match id with IN%
+ '( "IN%\"\\([^>@%]+\\)" .
+ (buffer-substring
+ (match-beginning 1) (match-end 1)))
+ ;; match id in <>
+ '( "<\\([^>@%]+\\)" .
+ (buffer-substring
+ (match-beginning 1) (match-end 1)))
+ ;; match id with @
+ '( "\\([^@%:]+\\)[@%]" .
+ (buffer-substring
+ (match-beginning 1) (match-end 1)))
+ ;; match id with ::
+ '("[^:]+\:\:\\(\\w+\\|\\w+\\W\\w+\\)" .
+ (buffer-substring
+ (match-beginning 1) (match-end 1)))
+ ;; match first word
+ '("\\(\\w+\\)" .
+ (buffer-substring
+ (match-beginning 1) (match-end 1)))
+ )
+
+ ))
+ '("IN%\"\\([^>@%]+\\)" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ ;; Kyle's catch-all:
+ '( "ART" . "gaylord")
+ ;; match id with IN%
+ '("<\\([^ \t\n\f@%()<>]+\\)[@%]\\([^ \t\n\f<>()]+\\)>" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ '("<\\([^>]+\\)>" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+;; '("\\([^ \t\n\f@%()<>]+\\)\\([@%]\\([^ \t\n\f<>()]+\\)\\)?"
+;; (buffer-substring (match-beginning 1) (match-end 1)))
+ ;; match id in <>
+ '("<\\([^>@%]+\\)" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ ;; match id with @
+ '("\\([^@%:]+\\)[@%]" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ ;; match id with ::
+ '("[^:]+\:\:\\(\\w+\\|\\w+\\W\\w+\\)" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ ;; match first word
+ '("\\(\\w+\\)" .
+ (buffer-substring (match-beginning 1) (match-end 1)))
+ )
+ ))
+
+(if (eq 'x window-system)
+ (progn
+
+
+ (defun vm-highlight-headers (message window)
+ "Using font-lock; highlight From: and Subject: fields in mail
+ messages displayed by VM."
+ (save-excursion
+ ;; As of v18.52, this call to save-window-excursion is needed!
+ ;; Somehow window point can get fouled in here, and drag the
+ ;; buffer point along with it. This problem only manifests
+ ;; itself when operating VM from the summary buffer, subsequent
+ ;; to using vm-beginning-of-message or vm-end-of-message.
+ ;; After running a next or previous message command, point
+ ;; somehow ends up at the end of the message.
+ (save-window-excursion
+ (font-lock-mode 1)
+ )))
+ ))
+
+(setq tm-vm/automatic-mime-preview nil)
+
+(defun vm-folder-count ()
+ "Count buffers visiting mail folders."
+ (save-excursion
+ (let ((folder-count 0))
+ (mapcar (function
+ (lambda (buf)
+ (set-buffer buf)
+ (and (eq major-mode 'vm-mode)
+ (setq folder-count (+ folder-count 1)))))
+ (buffer-list))
+ folder-count)))
+
+
+(add-hook 'vm-presentation-mode-hook
+ (lambda ()
+ (or buffer-display-table
+ ;; Don't let disp-table.el overwrite standard-display-table:
+ (let ((standard-display-table standard-display-table))
+ (setq buffer-display-table (make-display-table))))
+ ;; Make A0 (\240) (non-breaking space) display as normal space
+ (aset buffer-display-table ?\xA0 [\? ])
+ (aset buffer-display-table ?\x91 [?\'])
+ (aset buffer-display-table ?\x92 [?\'])
+ (aset buffer-display-table ?\x93 [?\"])
+ (aset buffer-display-table ?\x94 [?\"])
+ (aset buffer-display-table ?\x96 [?\-])
+ (aset buffer-display-table ?\x97 [?\-?\-])
+ ;; Make ^M invisible:
+ (aset buffer-display-table ?\x0D [])))
+
+
+(require 'time-date)
+(defun my-vm-print-message-with-faces (&optional filename)
+ "Print the current message to a PostScript printer (or file) with
+ font information"
+ (interactive)
+ (vm-select-folder-buffer)
+ (let* ((msg (vm-real-message-of (car vm-message-pointer)))
+ (buffer (set-buffer (if (vm-mime-plain-message-p msg)
+ (vm-buffer-of msg)
+ vm-presentation-buffer)))
+ (subject-line (or (vm-get-header-contents msg "Subject:")
+ "<No Subject>">))
+ (from-line (concat "From: " (or
+ (vm-get-header-contents msg "From:")
+ "<No Sender>")))
+ (date-line (vm-get-header-contents msg "Date:"))
+ (time (if date-line (date-to-time date-line) (current-time)))
+ (dd-mon-yy (format-time-string "%d %b %y" time))
+ (hh:mm:ss (format-time-string "%T" time))
+ (ps-left-header (list 'subject-line 'from-line))
+ (ps-right-header (list "/pagenumberstring load" 'dd-mon-yy 'hh:mm:ss))
+ (ps-header-lines 2)
+ (ps-print-header-frame t))
+ (if (null filename)
+ (ps-print-buffer-with-faces)
+ (ps-print-buffer-with-faces filename)
+ )))
+
+
+(require 'vm-vcard)
+
+(setq vm-spamassassin-cmd "/usr/bin/spamassassin")
+
+(defun vm-spamassassin-report-spam ()
+ "Report mail as spam by piping the message to spamassassin in reporting
+mode."
+ (interactive)
+ (if (y-or-n-p "Are you sure you want to report this message as spam? ")
+ (vm-pipe-message-to-command
+ (concat vm-spamassassin-cmd " -r -w " user-mail-address)
+ nil)))
+
+(defun vm-spamassassin-add-to-whitelist ()
+ "Add the sender of the message to the spamassassin auto-whitelist, so
+that mail from them is not classified as spam again."
+ (interactive)
+ (vm-pipe-message-to-command (concat vm-spamassassin-cmd " -W") nil))
+
+(require 'vm-menu)
+(setq vm-menu-dispose-menu
+ (append vm-menu-dispose-menu
+ '(
+ "---"
+ ["Add to whitelist" vm-spamassassin-add-to-whitelist vm-message-list ]
+ ["Report as spam" vm-spamassassin-report-spam vm-message-list ])))
+
+;;; ;;; Peronality crisis
+;;; (setq rwh-vm-pcrisis-use-vm-mail-wraparound t)
+;;; (defadvice mail-text (before call-automorph-with-mail-text activate)
+;;; (rwh-vm-pcrisis-automorph) )
+;;; (add-hook 'vm-mail-mode-hook
+;;; '(lambda () (local-set-key [f7] 'rwh-vm-pcrisis-automorph)))
+;;;
+;;; ;;; An action-list can take many forms. The first item in an action-list
+;;; ;;; is a string, which may be any of the following:
+;;;
+;;; ;;; * "pre-function"
+;;; ;;; * "reply-buffer-function"
+;;; ;;; * "signature"
+;;; ;;; * "pre-signature"
+;;; ;;; * "set-to-to"
+;;; ;;; * If none of the above, a string containing the name of a header to
+;;; ;;; add or change in your reply.
+;;;
+;;;(add-to-list 'rwh-vm-pcrisis-headers-to-save "Original-Sender")
+;;; (setq rwh-vm-pcrisis-profiles
+;;; '(
+;;; ( ;;This first recipe causes the contents of the file ~/.sig
+;;; ;; to be inserted as the signature in absolutely all replies.
+;;; ("From" ".*")
+;;; ("signature" "~/.sig")
+;;; )
+;;; ( ;;you DO NOT include a :
+;;; ("From" "^president@whitehouse\\.gov$")
+;;; ("X-Subliminal-Header-Message" "Please lower my taxes.")
+;;; )
+;;; ( ;;the function names should not be placed in quotes.
+;;; ("Content-type" "iso-8859-2") ;; Note 3
+;;; ("pre-function" my-vm-variable-changer-8859-2)
+;;; ("reply-buffer-function" my-change-kbd-layout-to-polish)
+;;; )
+;;; ( ;;To understand this, read *Note pcp Note 4::
+;;; ("Content-type" "html")
+;;; ("From" "\"The HTML Police\" <me@my.mail.address>")
+;;; ("pre-signature" "~/formletters/why_html_is_bad.txt")
+;;; )
+;;; (
+;;; ("Reply-To" "bad_list@some.listserv.com") ;;match-list
+;;; ("set-to-to" "Original-Sender")) ;;action-list
+;;; )
+;;; ) )
+;;;
+;;;
+;;; rwh-vm-pcrisis-automorph-profil
+;;;
+;;; rwh-vm-pcrisis-newmail-profiles
+;;;
+
+
+
+;;; From: kyle_jones@wonderworks.com (Kyle Jones)
+
+;;; > Is there anyway I can get a 50/50 split on everything, without having to
+;;; > explicitly save to *all* window configurations?
+
+;;; Yes. You only need to save to the main classes: startup,
+;;; reading-message, composing-message, editing-message, and for the
+;;; command config for vm-summarize.
+
+;;; ;;;;
+;;; ;;;; Wastebasket support
+;;; ;;;;
+;;; ;;;; By default, deleted mail goes into the "wastebasket" directory,
+;;; ;;;; which is a subdirectory of vm-folder-directory. There is a
+;;; ;;;; wastebasket file for each month; the file name format is
+;;; ;;;; wastebasket-yymm.
+;;; ;;;;
+
+;;; (require 'cl)
+
+;;; (defvar *vm-wastebasket-directory*
+;;; (concat (file-name-as-directory vm-folder-directory)
+;;; (format "wastebasket/wastebasket")))
+
+;;; (defvar *vm-wastebasket-months*
+;;; '("Jan" "Feb" "Mar" "Apr" "May" "Jun"
+;;; "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"))
+
+;;; (defvar *vm-wastebasket-date-regexp*
+;;; (concat "\\(" (mapconcat 'identity *vm-wastebasket-months* "\\|") "\\)"
+;;; ".*"
+;;; "[0-9][0-9]\\([0-9][0-9]\\)"))
+
+;;; (defun vm-wastebasket ()
+;;; (format
+;;; "%s-%s"
+;;; *vm-wastebasket-directory*
+;;; (if (fboundp 'time-yymm) ;Use my private hack first
+;;; (time-yymm)
+;;; (let ((time (current-time-string)))
+;;; (string-match *vm-wastebasket-date-regexp* time)
+;;; (unless (and (match-beginning 1) (match-beginning 2))
+;;; (error "Unable to extract month and year from current-time-string"))
+;;; (let* ((month (substring time (match-beginning 1) (match-end 1)))
+;;; (month-number (1+ (position month *vm-wastebasket-months*
+;;; :test 'string-equal)))
+;;; (year (substring time (match-beginning 2) (match-end 2))))
+;;; (concat year (format "%02d" month-number)))))))
+
+;;; (defun vm-save-in-wastebasket (&rest ignore)
+;;; (interactive)
+;;; (vm-save-message (vm-wastebasket)))
+
+;;; (defun vm-visit-wastebasket (prefix &optional read-only-p)
+;;; (interactive "P")
+;;; (vm-visit-folder (vm-wastebasket) (or prefix read-only-p)))
+
+;;; ;;; Move the "d" key to "D", and add "T" to read the wastebasket
+;;; (define-key vm-mode-map "D" 'vm-delete-message)
+;;; (define-key vm-mode-map "d" 'vm-save-in-wastebasket)
+;;; (define-key vm-mode-map "T" 'vm-visit-wastebasket)
+(define-key vm-mode-map "#" 'vm-expunge-folder)
+
+
+;; Pop mail service using ssh
+;;; # ssh -C -L 4711:mail.server.at.your.domain:110 other.server.at.your.domain
+
+;;; The above statement will setup a local port (4711) that is
+;;; forwarded to the POP port on your mailserver
+;;; (mail.server.at.your.domain) via another machine
+;;; (other.server.at.your.domain). (The -C flags is not necessary, it
+;;; only makes the communication compressed.)
+
+;;; You can then setup your vm-spool-files to point out this local port like this:
+
+;;; (setq vm-spool-files
+;;; (list (list vm-primary-inbox "localhost:4711:pass:username:*" vm-crash-box)))
+
+
+;;; This will return a list of all the buffers in VM mode:
+
+;;; (let ((buffers (buffer-list))
+;;; (vm-buffers '()))
+;;; (while buffers
+;;; (if (eq (save-excursion
+;;; (set-buffer (car buffers))
+;;; major-mode)
+;;; 'vm-mode)
+;;; (setq vm-buffers
+;;; (cons (car buffers) vm-buffers)))
+;;; (setq buffers (cdr buffers)))
+;;; (nreverse vm-buffers))
+
+;;; Local Variables:
+;;; mode: emacs-lisp
+;;; comment-start: ";;; "
+;;; End:
+
diff --git a/debian/examples/dot.vm.2 b/debian/examples/dot.vm.2
new file mode 100644
index 0000000..cd4229d
--- /dev/null
+++ b/debian/examples/dot.vm.2
@@ -0,0 +1,148 @@
+;-*-emacs-lisp-*-
+;From: Ian Jackson <iwj10@cus.cam.ac.uk>
+;To: richard@elmail.co.uk (Richard Kettlewell)
+;Subject: Re: ~/.vm
+;Date: Sat, 12 Aug 95 16:28 BST
+;
+;Richard Kettlewell writes ("~/.vm"):
+;> Do you have a ~/.vm file you would like to contribute to the Debian vm
+;> package?
+;
+;I keep my vm startup stuff in ~/emacs/ian.el. It could probably do
+;with a bit of tweaking, but here it is.
+;
+;Ian.
+
+; In Emacs 19 only, to override the default mouse bindings (which
+; I don't like):
+(add-hook 'vm-mode-hook 'unset-down-mouse-3)
+(add-hook 'vm-mail-mode-hook 'unset-down-mouse-3)
+
+; In my term-setup-hook function:
+(global-set-key "m" 'vm-mail)
+(global-set-key "4m" 'vm-mail-other-window)
+(global-set-key "9" 'vm-visit-folder)
+
+; To purge deleted messages automatically:
+(add-hook 'vm-mode-hook
+ '(lambda ()
+ (local-set-key "Q" 'vm-quit)
+ (local-set-key "q" "#Q")))
+
+; ^X 4 m does the right thing ...
+(defun vm-mail-other-window ()
+ "Like `vm-mail' command, but display buffer in another window."
+ (interactive)
+ (switch-to-buffer-other-window (current-buffer))
+ (vm-mail))
+
+; All my general variables
+(setq vm-included-text-attribution-format "%F writes (\"%s\"):\n"
+ vm-reply-subject-prefix "Re: "
+ vm-folder-directory "~/mail/"
+ vm-delete-after-saving t
+ vm-delete-empty-folders t
+ vm-mutable-windows nil
+ vm-preview-lines nil
+ vm-included-text-prefix "> "
+ vm-confirm-quit 1
+ vm-auto-center-summary t
+ vm-confirm-new-folders t
+ vm-circular-folders nil
+ vm-visit-when-saving t
+ vm-move-after-deleting t
+ vm-keep-sent-messages t
+ vm-follow-summary-cursor t
+ vm-frame-per-composition nil
+ vm-frame-per-edit nil
+ vm-frame-per-summary nil
+ vm-frame-per-folder nil
+ vm-primary-inbox (concat vm-folder-directory "INBOX")
+ vm-uninteresting-senders "ian"
+ vm-spool-files '("~/mbox" "~/mail/Outbound" "~/mail/Record"
+ "~/mail/Import" "/usr/spool/mail/ian" "~/News/r")
+ vm-startup-with-summary nil
+ vm-summary-format "%3n %a %2d %3m %-19.19F %s\n"
+ mail-archive-file-name "~/mail/Outbound")
+
+
+
+; A whole lot of stuff for setting the Precedence header ...
+(setq mail-precedence-key-alist
+ '((?0 . "special-delivery")
+ (?1 . "air-mail")
+ (?2 . "first-class")
+ (?3 . "second-class")
+ (?5 . "third-class")
+ (?\ . nil)
+ (?6 . "bulk")
+ (?9 . "junk")))
+;
+(defun mail-precedence-as-key ()
+ "Set precedence by looking up last command char in mail-precedence-key-alist"
+ (interactive)
+ (message "%s" (concat "Precedence ["
+ (mapconcat '(lambda (c) (char-to-string (car c)))
+ mail-precedence-key-alist "")
+ "] ?"))
+ (let* ((key (read-char))
+ (prec (assoc key mail-precedence-key-alist)))
+ (if prec (mail-precedence (cdr prec))
+ (error "mail-precedence-as-key `%s' not found" key))))
+;
+(defun mail-precedence-as-key-send-and-exit (arg)
+ "Set precedence by looking up last command char in mail-precedence-key-alist,
+then call send-and-exit."
+ (interactive "P")
+ (mail-precedence-as-key)
+ (execute-kbd-macro ""))
+;
+(defun mail-precedence (prec)
+ (save-excursion
+ (mail-position-on-field "Precedence")
+ (let ((p (point)))
+ (beginning-of-line)
+ (delete-region (point) p)
+ (if prec
+ (insert "Precedence: " prec)
+ (delete-char 1)))))
+;
+(defun mail-mode-setup-keys ()
+ (local-set-key "" 'mail-precedence-as-key)
+ (local-set-key "p" 'mail-precedence-as-key-send-and-exit))
+(add-hook 'mail-mode-hook 'mail-mode-setup-keys)
+(add-hook 'vm-mail-mode-hook 'mail-mode-setup-keys)
+;
+
+
+
+; A quick tutorial on VM's MIME display variables.
+
+; vm-display-using-mime controls whether MIME is displayed specially
+; at all. Default value is t.
+
+; vm-auto-decode-mime-messages controls whether a MIME message is
+; decoded when the message is selected. Decoding means parsing the
+; message to figure out what MIME types are in it. This can be
+; slow for large messages, so you might not want it to happen
+; automatically. Default value is t.
+
+; vm-auto-displayed-mime-content-types controls which MIME types
+; are displayed immediately after the message is decoded.
+; Default value is ("text" "multipart").
+
+; vm-auto-displayed-mime-content-type-exceptions lists exceptions
+; to the auto-displayed types. So you can specify "text" as an
+; auto-displayed type and '("text/html") as the exceptions list to avoid
+; immediate display of text/html. Default value is nil.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/debian/examples/full_screen b/debian/examples/full_screen
new file mode 100644
index 0000000..69990ec
--- /dev/null
+++ b/debian/examples/full_screen
@@ -0,0 +1,9 @@
+;-*-emacs-lisp-*-
+
+;; startup = full screen summary
+;; reading-message = full screen folder
+;; composing-message = full screen composition
+;; editing-message = full screen edit
+;; vm-summarize = full screen summary
+
+((editing-message ((((visibility . t) (top . 80) (left . 200) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((0 1 80 39) ((nil edit)) ((nil nil nil t)))))) (startup ((((visibility . t) (top . 140) (left . 140) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((0 1 80 39) ((nil summary)) ((nil nil nil t)))))) (reading-message ((((visibility . t) (top . 80) (left . 200) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((0 1 80 39) ((nil message)) ((nil nil nil t)))))) (comp
diff --git a/debian/examples/summary_bottom b/debian/examples/summary_bottom
new file mode 100644
index 0000000..5255262
--- /dev/null
+++ b/debian/examples/summary_bottom
@@ -0,0 +1,9 @@
+;-*-emacs-lisp-*-
+
+;; startup = full screen summary
+;; reading-message = folder on top, summary on bottom
+;; composing-message = composition on top, summary on bottom
+;; editing-message = edit on top, summary on bottom
+;; vm-summarize = full screen summary
+
+((editing-message ((((visibility . t) (top . 52) (left . 172) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((- (0 1 80 31) (0 31 80 39)) ((nil edit) (nil summary)) ((nil nil nil t) (nil nil nil nil)))))) (startup ((((visibility . t) (top . 140) (left . 140) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((0 1 80 39) ((nil summary)) ((nil nil nil t)))))) (reading-message ((((visibility . t) (top . 52) (left . 172) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((- (0
diff --git a/debian/examples/summary_right b/debian/examples/summary_right
new file mode 100644
index 0000000..5c61771
--- /dev/null
+++ b/debian/examples/summary_right
@@ -0,0 +1,12 @@
+;-*-emacs-lisp-*-
+
+;; This is designed for a very wide display. I used a 163 column
+;; window under X for this. The screen is split horizontally.
+
+;; startup = full screen summary
+;; reading-message = folder on left, summary on right
+;; composing-message = composition on left, folder on right
+;; editing-message = edit on left, summary on right
+;; vm-summarize = full screen summary
+
+((editing-message ((((visibility . t) (top . 50) (left . 8) (unsplittable) (minibuffer . t) (modeline . t) (width . 163) (height . 50) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((| (0 1 80 49) (80 1 163 49)) ((nil edit) (nil summary)) ((nil nil nil t) (nil nil nil nil)))))) (startup ((((visibility . t) (top . 140) (left . 140) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((0 1 80 39) ((nil summary)) ((nil nil nil t)))))) (reading-message ((((visibility . t) (top . 50) (left . 8) (unsplittable) (minibuffer . t) (modeline . t) (width . 163) (height . 50) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((| (0 1
diff --git a/debian/examples/summary_top b/debian/examples/summary_top
new file mode 100644
index 0000000..2db365c
--- /dev/null
+++ b/debian/examples/summary_top
@@ -0,0 +1,9 @@
+;-*-emacs-lisp-*-
+
+;; startup = full screen summary
+;; reading-message = folder on bottom, summary on top
+;; composing-message = composition on bottom, summary on top
+;; editing-message = edit on bottom, summary on top
+;; vm-summarize = full screen summary
+
+((editing-message ((((visibility . t) (top . 50) (left . 170) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((- (0 1 80 10) (0 10 80 39)) ((nil summary) (nil edit)) ((nil nil nil nil) (nil nil nil t)))))) (startup ((((visibility . t) (top . 140) (left . 140) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((0 1 80 39) ((nil summary)) ((nil nil nil t)))))) (reading-message ((((visibility . t) (top . 80) (left . 200) (unsplittable) (minibuffer . t) (modeline . t) (width . 80) (height . 40) (menu-bar-lines . 1) (cursor-type . box) (auto-lower) (auto-raise) (icon-type) (vertical-scroll-bars . t) (internal-border-width . 2) (border-width . 2))) (((- (0