From:	CRDGW2::CRDGW2::MRGATE::"SMTP::PREP.AI.MIT.EDU::INFO-GNU-EMACS-REQUEST" 13-JUL-1989 09:47
To:	MRGATE::"ARISIA::EVERHART"
Subj:	VM 4.37 (part 4 of 4)

Received: by life.ai.mit.edu (4.1/AI-4.10) id AA02010; Wed, 12 Jul 89 18:07:32 EDT
Return-Path: <talos!kjones@uunet.uu.net>
Received: from uunet.uu.net by life.ai.mit.edu (4.1/AI-4.10) id AA01708; Wed, 12 Jul 89 17:55:53 EDT
Received: from talos.UUCP by uunet.uu.net (5.61/1.14) with UUCP 
	id AA03293; Wed, 12 Jul 89 17:55:40 -0400
Date: Wed, 12 Jul 89 17:30:53 EDT
From: talos!kjones@uunet.uu.net (Kyle Jones)
Message-Id: <8907122130.AA02148@talos.uucp>
To: info-gnu-emacs@prep.ai.mit.edu
Reply-To: kyle@cs.odu.edu
Subject: VM 4.37 (part 4 of 4)

#!/bin/sh
# this is part 4 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file vm.texinfo continued
#
CurArch=4
if test ! -r s2_seq_.tmp
then echo "Please unpack part 1 first!"
     exit 1; fi
( read Scheck
  if test "$Scheck" != $CurArch
  then echo "Please unpack part $Scheck next!"
       exit 1;
  else exit 0; fi
) < s2_seq_.tmp || exit 1
echo "x - Continuing file vm.texinfo"
sed 's/^X//' << 'SHAR_EOF' >> vm.texinfo
Xvalue of @code{nil} gives no summary; a value of @code{t} gives a full
Xscreen summary.  A value that is neither @code{t} nor @code{nil} splits
Xthe screen between the summary and the folder display.  The latter only
Xworks if the variable @code{pop-up-windows}'s value is non-@code{nil},
Xand the value of @code{vm-mutable-windows} is non-@code{nil}.  The
Xdefault value of @code{vm-startup-with-summary} is @code{nil}.@refill
X
X@vindex vm-mail-window-percentage
XThe variable @code{vm-mail-window-percentage} tells VM what percentage of
Xthe screen should be given to the folder display when both it and the
Xfolder summary are being displayed.  Note that Emacs enforces a minimum
Xwindow size limit, so a very high or very low value for this variable
Xmay squeeze out one of the displays entirely.  This variable's default
Xvalue is 75, which works with Emacs' default minimum window size limit,
Xon a 24 line terminal.  Note that the value of @code{vm-mutable-windows}
Xmust be @code{t} or VM will not do window resizing regardless of the
Xvalue of @code{vm-mail-window-percentage}.@refill
X
X@vindex vm-inhibit-startup-message
XA non-@code{nil} value for the variable @code{vm-inhibit-startup-message}
Xdisables the display of the VM's copyright, copying and warranty
Xdisclaimer.  If you must, set this variable in your own @file{.emacs} file;
Xdon't set it globally for everyone.  Users should be told their rights.
XThe startup messages abort at the first keystroke after startup, so they do not
Ximpede mail reading.@refill
X
X@node Selecting Messages, Sending Messages, Starting Up, Top
X@chapter Selecting Messages
X
X@findex vm-next-message
X@findex vm-previous-message
X@kindex n
X@kindex p
X@vindex vm-skip-deleted-messages
X@vindex vm-skip-read-messages
XThe primary commands for selecting messages in VM are @kbd{n}
X(@code{vm-next-message}) and @kbd{p} (@code{vm-previous-message}).
XThese commands move forward and backward through the current folder.
XWhen they go beyond the end or beginning of the folder they wrap to the
Xbeginning and end respectively.  By default these commands skip messages
Xmarked for deletion.  This behavior can be disabled by setting the value
Xof the variable @code{vm-skip-deleted-messages} to @code{nil}.  These
Xcommands can also be made to skip messages that have been read; set
X@code{vm-skip-read-messages} to @code{t} to do this.  If all the messages
Xin the current folder would be skipped (i.e all are read and/or
Xdeleted), @kbd{n} and @kbd{p} simply move to the next message.@refill
X
XThe commands @kbd{n} and @kbd{p} also take prefix arguments that specify
Xthe number of messages to move forward or backward.  If the magnitude of
Xthe prefix argument is greater than 1, no message skipping will be done
Xregardless of the settings of the previously mentioned skip control
Xvariables.@refill
X
X@vindex vm-circular-folders
XThe variable @code{vm-circular-folders} determines whether VM folders
Xwill be considered circular by various commands.  @dfn{Circular} means VM
Xwill wrap from the end of the folder to the start and vice versa when
Xmoving the message pointer, deleting, undeleting or saving messages
Xbefore or after the current message.@refill
X
XA value of @code{t} causes all VM commands to consider folders circular.
XA value of @code{nil} causes all of VM commands to signal an error if
Xthe start or end of the folder would have to be passed to complete the
Xcommand.  For movement commands, this occurs after the message pointer
Xhas been moved as far it can go.  For other commands the error occurs
Xbefore any part of the command has been executed, i.e. no moves, saves,
Xetc. will be done unless they can be done in their entirety.  A value
Xother than @code{nil} or @code{t} causes only VM's movement
Xcommands to consider folders circular.  Saves, deletes and undeletes
Xwill behave as if the value is @code{nil}.  The default value of
X@code{vm-circular-folders} is @code{0}.@refill
X
XOther commands to select messages:
X
X@iftex
X@table @asis
X@end iftex
X@ifinfo
X@table @key
X@end ifinfo
X@findex vm-goto-message
X@kindex RET
X@item RET (@code{vm-goto-message})
XGo to message number @var{n}.  @var{n} is the prefix argument, if
Xprovided, otherwise it is prompted for in the minibuffer.
X@findex vm-goto-message
X@kindex TAB
X@item TAB (@code{vm-goto-message-last-seen})
XGo to message last previewed or read.
X@findex vm-Next-message
X@findex vm-Previous-message
X@kindex N
X@kindex P
X@item N (@code{vm-Next-message})
X@itemx P (@code{vm-Previous-message})
XGo to the next (previous) message, ignoring the settings of the skip
Xcontrol variables.
X@findex vm-next-unread-message
X@findex vm-previous-unread-message
X@kindex M-n
X@kindex M-p
X@item M-n (@code{vm-next-unread-message})
X@itemx M-p (@code{vm-previous-unread-message})
XMove forward (backward) to the nearest new or unread message.  If no
Xsuch message exists then these commands work like @kbd{n} and @kbd{p}.
X@findex vm-isearch-forward
X@kindex M-s
X@vindex vm-search-using-regexps
X@item M-s (@code{vm-isearch-forward})
XThis works just like Emacs' normal incremental search except that when
Xthe search ends, VM selects the message containing point.  If the value
Xof the variable @code{vm-search-using-regexps} is non-@code{nil},
Xa regular expression may be used instead of a fixed string for the
Xsearch pattern.  VM defaults to the fixed string search.
X@xref{Incremental Search,,,emacs, the GNU Emacs Manual}.@refill
X@end table
X
XSelecting a message within VM normally causes VM to preview it.
X@iftex
X@xref{Previewing}.
X@end iftex
X
X@menu
X* Previewing:: Customizing message previews.
X@end menu
X
X@node Previewing,, Selecting Messages, Selecting Messages
X@section Previewing
X
X@dfn{Previewing} is VM's way of showing you a small portion of a message
Xand allowing you to decide whether you want to read it.  Typing
X@key{SPC} exposes the body of the message.
X
XBy default the sender, recipient, subject and date headers are shown
Xwhen previewing; the rest of the message is hidden.  This behavior may
Xbe augmented by the settings of two variables: @code{vm-visible-headers}
Xand @code{vm-preview-lines}.@refill
X
X@vindex vm-preview-lines
XThe value of @code{vm-preview-lines} should be a number that tells VM
Xhow many lines of the text of the message should be visible.  The default
Xvalue of this variable is 0.  If @code{vm-preview-lines} is @code{nil},
Xthen previewing is not done at all; when a message is first presented it
Xis immediately exposed in its entirety and is marked as read.@refill
X
X@vindex vm-visible-headers
XThe value of @code{vm-visible-headers} should be a list of regular
Xexpressions matching the beginnings of headers that should be made
Xvisible when a message is presented.  The regexps should be listed in
Xthe preferred order of presentation for the headers they match.@refill
X
X@vindex vm-highlighted-header-regexp
XAnother variable of interest is @code{vm-highlighted-header-regexp}.  The
Xvalue of this variable should be a single regular expression that
Xmatches the beginnings of any header that should be presented in inverse
Xvideo when previewing.  For example, a value of @samp{"^From\\|^Subject"}
Xcauses the From and Subject headers to be highlighted.@refill
X
X@vindex vm-preview-read-messages
XBy default VM previews all messages, even if they have already been read.
XTo have VM preview only those messages that have not been read, set the
Xvalue of @code{vm-preview-read-messages} to @code{nil}.
X
X@node Sending Messages, Saving Messages, Selecting Messages, Top
X@chapter Sending Messages
X
XWhen sending messages from within VM, you will be using the standard
XMail major mode provided with GNU Emacs.  @xref{Mail Mode,,,emacs, the
XGNU Emacs Manual}.
XHowever, @samp{*mail*} buffers created by VM have extra command keys:
X
X@iftex
X@table @asis
X@end iftex
X@ifinfo
X@table @key
X@end ifinfo
X@findex vm-yank-message
X@kindex C-c C-y
X@item C-c C-y
XCopies a message from the current folder into the @samp{*mail*} buffer.
XThe message number is read from the minibuffer.  By default each line of
Xthe copy is prepended with the value of the variable
X@code{vm-included-text-prefix}.  If a prefix argument is given, this
Xprepending is not done.@refill
X@kindex C-c C-v
X@item C-c C-v <Any VM command key>
XAll VM commands may be accessed in the @samp{*mail*} buffer by prefixing them
Xwith C-c C-v.
X@end table
X
X@findex vm-mail
X@kindex m
XThe simplest command is @kbd{m} (@code{vm-mail}) which sends a mail
Xmessage much as @kbd{M-x mail} does but allows the added commands
Xdescribed above.@refill
X
X@menu
X* Replying::		Describes the various way to reply to a message.
X* Forwarding Messages::	How to forward a message to a third party.
X@end menu
X
X@node Replying, Forwarding Messages, Sending Messages, Sending Messages
X@section Replying
X
XVM has special commands that make it easy to reply to a message.  When a
Xreply command is invoked VM fills in the subject and recipient headers
Xfor you, since it is apparent to whom the message should be sent.  You
Xcan change these headers manually if you wish.
X
X@vindex vm-included-text-prefix
XVM also helps you quote material from a message to which you are
Xreplying by providing @dfn{included text} as a feature of some of the
Xcommands.  @dfn{Included text} is a copy of the message being replied to with
Xsome fixed string prepended to each line so that included text can be
Xdistinguished from the text of the reply.  The variable
X@code{vm-included-text-prefix} specifies what the prepended string will
Xbe.@refill
X
X@vindex vm-included-text-attribution-format
XThe variable @code{vm-included-text-attribution-format} specifies the
Xformat for the attribution of included text.  This attribution is a line
Xof text that tells who wrote the text that is to be included; it will be
Xinserted before the included text.  If non-@code{nil}, the value of
X@code{vm-included-text-attribution-format} should be a string format
Xspecifiation similar to @code{vm-summary-format}.  @xref{Summaries}.  A
X@code{nil} value causes the attribution to be omitted.@refill
X
X@vindex vm-in-reply-to-format
XThe variable @code{vm-in-reply-to-format} specifies the format of the
XIn-Reply-To header that is inserted into header section of the reply
Xbuffer.  Like @code{vm-included-text-attribution-format},
X@code{vm-in-reply-to-format} should be a string similar to that of
X@code{vm-summary-format}.  A @code{nil} value causes the In-Reply-To
Xheader to be omitted.@refill
X
X@vindex vm-strip-reply-headers
XThe recipient headers generated for reply messages are normally made by
Xsimply copying the appropriate headers for the message to which you are
Xreplying.  This includes any full name information, comments, etc. in
Xthese headers.  If the variable @code{vm-strip-reply-headers} is
Xnon-@code{nil}, the reply headers will stripped of all information but
Xthe actual addresses.
X
XThe reply commands are:
X
X@iftex
X@table @asis
X@end iftex
X@ifinfo
X@table @key
X@end ifinfo
X@findex vm-reply
X@kindex r
X@item r (@code{vm-reply})
XReplies to the author of the current message.
X@findex vm-reply-include-text
X@kindex R
X@item R (@code{vm-reply-include-text})
XReplies to the author of the current message and provides included text.
X@findex vm-followup
X@kindex f
X@item f (@code{vm-followup})
XReplies to the all recipients of the current message.
X@findex vm-followup-include-text
X@kindex F
X@item F (@code{vm-followup-include-text})
XReplies to the all recipients of the current message and provides
Xincluded text.
X@end table
X
XAll the reply commands mark the message to which you are responding as
X``replied'' when the reply is actually sent.@refill
X
X@node Forwarding Messages,, Replying, Sending Messages
X@section Forwarding Messages
X
XVM has two commands to forward messages: @kbd{z}
X(@code{vm-forward-message}) and @key{@@} (@code{vm-send-digest}).@refill
X
X@findex vm-forward-message
X@kindex z
X@vindex vm-rfc934-forwarding
X@vindex vm-forwarding-subject-format
XTyping @kbd{z} puts you into a @samp{*mail*} buffer just like @kbd{m},
Xexcept the current message appears as the body of the message in the
X@samp{*mail*} buffer. The forwarded message is surrounded by RFC 934
Xcomplaint message delimiters.  If the variable
X@code{vm-rfc934-forwarding} is non-@code{nil} "^-" to "- -" character
Xstuffing is done to the forwarded message (this is the default).  This
Xbehavior is required if the recipient of the forwarded message wants to
Xuse a RFC 934 standard bursting agent to access the message.  If the
Xvariable @code{vm-forwarding-subject-format} is non-@code{nil} it should
Xspecify the format of the Subject header of the forwarded message.  This
Xsubject will be used as the contents of the Subject header automatically
Xinserted into the @samp{*mail*} buffer.  A @code{nil} value causes the
XSubject header to be left blank.@refill
X@findex vm-send-digest
X@kindex @@
XThe command @key{@@} (@code{vm-send-digest}) works like @kbd{z} except
Xthat a digest of all the messages in the current folder is made and
Xinserted into the @samp{*mail*} buffer.@refill
X
X@node Saving Messages, Deleting Messages, Sending Messages, Top
X@chapter Saving Messages
X
XMail messages are normally saved to files that contain only mail
Xmessages.  Such files are called @dfn{folders}.
X
X@findex vm-save-message
X@kindex s
XThe VM command to save a message to a folder is @kbd{s}
X(@code{vm-save-message}); invoking this command causes the current
Xmessage to be saved to a folder whose name you specify in the
Xminibuffer.  If @code{vm-save-message} is given a prefix argument
X@var{n}, the current message plus the next @var{n-1} message are saved.
XIf @var{n} is negative, the current message and the previous @var{n-1}
Xmessages are saved.  Messages saved with @code{vm-save-message} are
Xmarked ``filed''.@refill
X
X@vindex vm-confirm-new-folders
XIf the value of the variable @code{vm-confirm-new-folders} is
Xnon-@code{nil}, VM will ask for confirmation before creating a new
Xfolder on interactive saves.@refill
X
X@vindex vm-folder-directory
XIf you have a directory where you keep all your mail folders, you should
Xset the variable @code{vm-folder-directory} to point to it.  If this
Xvariable is set, @code{vm-save-message} will insert this directory name
Xinto the minibuffer before prompting you for a folder name; this will save
Xyou some typing.@refill
X
X@vindex vm-auto-folder-alist
XAnother aid to selecting folders in which to save mail is the variable
X@code{vm-auto-folder-alist}.  The value of this variable should be a
Xlist of the form,@refill
X
X@display
X((@var{header-name}
X   (@var{regexp} . @var{folder-name}) ...)
X  ...)
X@end display
X
Xwhere @var{header-name} and @var{regexp} are strings, and
X@var{folder-name} is a string or an s-expression that evaluates to a
Xstring.@refill
X
XIf any part of the contents of the message header named by
X@var{header-name} is matched by the regular expression @var{regexp}, VM
Xwill evaluate the corresponding @var{folder-name} and use the result as
Xthe default when prompting for a folder to save the message in.  If
Xthe resulting folder name is a relative pathname it resolves to the directory
Xnamed by @code{vm-folder-directory}, or the @code{default-directory} of
Xthe currently visited folder if @code{vm-folder-directory} is nil.@refill
X
XWhen @var{folder-name} is evaluated, the current buffer will contain
Xonly the contents of the header named by @var{header-name}.  It is safe
Xto modify this buffer.  You can use the match data from any
X@samp{\( @dots{} \)} grouping constructs in @var{regexp} along with the
Xfunction buffer-substring to build a folder name based on the header
Xinformation.@refill
X
XAll @code{vm-auto-folder-alist} matching is case sensitive.
X
X@vindex vm-visit-when-saving
XVM can save messages to a folder in two distinct ways.  The message can
Xbe appended directly to the folder on disk, or the folder can be visited
Xas Emacs would visit any other file and the message be appended to that
Xbuffer.  In the latter method you must save the buffer yourself to
Xchange the on-disk copy of the folder.  The variable
X@code{vm-visit-when-saving} controls which method is used.  A @code{nil}
Xvalue (the default) causes VM to append directly to the folder file, a
Xnon-@code{nil} value makes VM load the file into a buffer and append to
Xthat.@refill
X
X@vindex vm-delete-after-saving
XAfter a message is saved to a folder, the usual thing to do next is to
Xdelete it.  If the variable @code{vm-delete-after-saving} is
Xnon-@code{nil} VM will mark messages for deletion automatically after
Xsaving them.  This applies only to saves to folders, not for the @key{w}
Xcommand (see below).@refill
X
XOther commands:
X
X@iftex
X@table @asis
X@end iftex
X@ifinfo
X@table @key
X@end ifinfo
X@findex vm-save-message-sans-headers
X@kindex w
X@item w (@code{vm-save-message-sans-headers})
XSaves a message or messages to a file without their headers.  This
Xcommand responds to a prefix argument exactly as @code{vm-save-message}
Xdoes.  Messages saved this way are @emph{not} marked as filed, as ``filed''
Xis meant to mean saved to a folder.  You should @emph{not} use this
Xcommand to save to mail folders.
X@findex vm-auto-archive-messages
X@kindex A
X@item A (@code{vm-auto-archive-messages})
XSave all unfiled messages that auto-match a folder via
X@code{vm-auto-folder-alist} to their appropriate folders.
X@findex vm-pipe-message-to-command
X@kindex |
X@item | (@code{vm-pipe-message-to-command})
XRuns a shell command with the some or all of the current message as input.
XBy default the entire message is used.@*
X@*
XIf invoked with one @t{C-u} the text portion of the message is used.@*
XIf invoked with two @t{C-u}'s the header portion of the message is used.@*
X@*
XIf the shell command generates any output, it is displayed in a
X@samp{*Shell Command Output*} buffer.  The message is not altered or
Xmarked as filed.
X@end table
X
X@node Deleting Messages, Undoing, Saving Messages, Top
X@chapter Deleting Messages
X
XIn VM messages are marked for deletion, and then are subsequently
X@dfn{expunged} or removed from the folder.  The messages are not removed
Xfrom the on-disk copy of the folder until the folder is saved.
X
X@iftex
X@table @asis
X@end iftex
X@ifinfo
X@table @key
X@end ifinfo
X@findex vm-delete-message
X@kindex d
X@item d (@code{vm-delete-message})
XMarks the current message for deletion.  A prefix argument @var{n}
Xcauses the current message and the next @var{n-1} messages to be marked.
XA negative @var{n} causes the current message and the previous @var{n-1}
Xmessages to be marked.
X@findex vm-undelete-message
X@kindex u
X@item u (@code{vm-undelete-message})
XRemoves the deletion mark from the current message.  A prefix argument @var{n}
Xcauses the current message and the next @var{n-1} messages to be unmarked.
XA negative @var{n} causes the current message and the previous @var{n-1}
Xmessages to be unmarked.
X@findex vm-kill-subject
X@kindex k
X@item k (@code{vm-kill-subject})
XMarks all message with the same subject as the current message (ignoring
X``Re:'') for deletion.
X@findex vm-expunge-folder
X@kindex #
X@item # (@code{vm-expunge-folder})
XDoes the actual removal of messages marked for deletion in the current
Xfolder.
X@end table
X
X@vindex vm-move-after-deleting
XSetting the variable @code{vm-move-after-deleting} non-@code{nil} causes
XVM to move past the messages after marking them for deletion.
X
X@node Undoing, Grouping Messages, Deleting Messages, Top
X@chapter Undoing
X
XVM provides a special form of undo which allows message attribute
Xchanges to be undone.
X
X@findex vm-undo
X@kindex C-x u
X@kindex C-_
XTyping @kbd{C-x u} or @key{C-_} (@code{vm-undo}) undoes the last
Xattribute change.  Consecutive @code{vm-undo}'s undo further and further
Xback.  Any intervening command breaks the undo chain, after which the
Xundos themselves become undoable by subsequent invocations of
X@code{vm-undo}.@refill
X
XNote that expunges and saves are @emph{not} undoable.
X
X@node Grouping Messages, Reading Digests, Undoing, Top
X@chapter Grouping Messages
X
X@findex vm-group-messages
X@kindex G
XIn order to make numerous related messages easier to cope with, VM
Xprovides the command @kbd{G} (@code{vm-group-messages}), which groups
Xall message in a folder according to some criterion.  @dfn{Grouping}
Xcauses messages that are related in some way to be presented
Xconsecutively.  The actual order of the folder is not altered;
Xthe messages are simply numbered and presented differently.  Grouping
Xshould not be confused with sorting; grouping only moves messages that
Xoccur later in the folder backward to ``clump'' with other related
Xmessages.@refill
X
XThe grouping criteria currently supported are:
X@table @samp
X@item subject
XMessages with the same subject (ignoring ``Re:'' prefixes) are grouped
Xtogether.
X@item author
XMessages with the same author are grouped together.
X@item date-sent
XMessages sent on the same day are grouped together.
X@item arrival-time
XMessage presentation reverts to arrival time ordering (the default).
X@end table
X
X@vindex vm-group-by
XIf the variable @code{vm-group-by} has a non-@code{nil} value it
Xspecifies the default grouping that will be used for all folders.  So if
Xyou like having your mail presented to you grouped by subject, then put
X@code{(setq vm-group-by "subject")} in your @file{.emacs} file to get this
Xbehavior.@refill
X
X@node Reading Digests, Summaries, Grouping Messages, Top
X@chapter Reading Digests
X
XA @dfn{digest} is one or more mail messages encapsulated in a single message.
X
XVM supports digests by providing a command to ``burst'' them into their
Xindividual messages.  These messages can then be handled like any other
Xmessages under VM.
X
X@findex vm-burst-digest
X@kindex *
XThe command @kbd{*} (@code{vm-burst-digest}) bursts a digest into its
Xindividual messages and appends them to current folder.  These
Xmessages are then assimilated into the current folder using the default
Xgrouping.  @xref{Grouping Messages}.  The original digest message is not
Xaltered, and the messages extracted from it are not part of the on-disk copy
Xof the folder until a save is done.@refill
X
X@node Summaries, Miscellaneous, Reading Digests, Top
X@chapter Summaries
X
X@findex vm-summarize
X@kindex h
XTyping @kbd{h} (@code{vm-summarize}) causes VM to display a summary of
Xcontents of the current folder.  An arrow @samp{->} appears to the left
Xof the line summarizing the current message.  The information in the
Xsummary is automatically updated as changes are made to the current
Xfolder.@refill
X
X@vindex vm-summary-format
XThe variable @code{vm-summary-format} controls the format of each
Xmessage's summary.  Its value should be a string.  This string should
Xcontain the printf-like ``%'' conversion specifiers which substitute
Xinformation about the message into the final summary.
X
XRecognized specifiers are:
X@display
X   a - attribute indicators (always three characters wide)
X       The first char is  `D', `N', `U' or ` ' for deleted, new, unread
X       and read message respectively.
X       The second char is `F' for filed (saved) messages.
X       The third char is `R' if the message has been replied to.
X   c - number of characters in message (ignoring headers)
X   d - date of month message sent
X   f - author's address
X   F - author's full name (same as f if full name not found)
X   h - hour message sent
X   i - message ID
X   l - number of lines in message (ignoring headers)
X   m - month message sent
X   n - message number
X   s - message subject
X   w - day of the week message sent
X   y - year message sent
X   z - timezone of date when the message was sent
X@end display
X
XUse ``%%'' to get a single ``%''.
X
XA numeric field width may be specified between the ``%'' and the
Xspecifier; this causes right justification of the substituted string.  A
Xnegative field width causes left justification.  The field width may be
Xfollowed by a ``.'' and a number specifying the maximum allowed length
Xof the substituted string.  If the string is longer than this value it
Xis truncated.
X
XThe summary format need not be one line per message but it must end with
Xa newline, otherwise the message pointer will not be displayed correctly
Xin the summary window.
X
XYou can have a summary generated automatically at startup,
X@pxref{Starting Up}.@refill
X
X@vindex vm-follow-summary-cursor
XAll VM commands are available in the summary buffer just as they
Xare in the folder buffer itself.  If you set
X@code{vm-follow-summary-cursor} non-@code{nil}, VM will select the
Xmessage under the cursor in the summary window before executing commands
Xthat operate on the current message.  Note that this occurs @emph{only}
Xwhen executing a command from the summary buffer window.@refill
X
X@node Miscellaneous,, Summaries, Top
X@chapter Miscellaneous
X
XHere are some VM customization variables that don't really fit into the
Xother chapters.
X
X@iftex
X@table @asis
X@end iftex
X@ifinfo
X@table @code
X@end ifinfo
X@vindex vm-berkeley-mail-compatibility
X@item vm-berkeley-mail-compatibility
XA non-@code{nil} value means to read and write BSD @i{Mail(1)} style Status:
Xheaders.  This makes sense if you plan to use VM to read mail archives
Xcreated by @i{Mail}.
X@vindex vm-gargle-uucp
X@item vm-gargle-uucp
XA non-@code{nil} value means to use a crufty regular expression that
Xdoes surprisingly well at beautifying UUCP addresses that are substituted
Xfor %f as part of summary and attribution formats.
X@vindex vm-mode-hooks
X@item vm-mode-hooks
XA non-@code{nil} value should be a list of hook functions to run when a
Xbuffer enters vm-mode.  These hook functions should generally be used to
Xset key bindings and local variables.  Mucking about in the folder
Xbuffer is certainly possible, but it is not encouraged.
X@vindex vm-folder-type
X@item vm-folder-type
XThis variable specifies the type of mail folder VM should expect to read
Xand write.  @code{Nil} means expect the UNIX style folders characterized
Xby the ``\n\nFrom '' message separators.  The only other supported value
Xfor this variable is the symbol @code{mmdf} which causes VM to use
X``^A^A^A^A\n'' MMDF style leaders and trailers.@refill
X@vindex vm-delete-empty-folders
X@item vm-delete-empty-folders
XA non-@code{nil} value for this variable causes VM to remove empty (zero
Xlength) folder files after saving them.
X@vindex vm-mutable-windows
X@item vm-mutable-windows
XThis variable's value controls VM's window usage.  A value of @code{t} gives VM
Xfree run of the Emacs display; it will commandeer the entire screen for
Xits purposes.  A value of @code{nil} restricts VM's window usage to the window
Xfrom which it was invoked.  VM will not create, delete, or use any other
Xwindows, nor will it resize it's own window.  A value that is neither @code{t}
Xnor @code{nil} allows VM to use other windows, but it will not create new ones,
Xor resize or delete the current ones.@refill
X@end table
X
X@node Key Index, Command Index, Top, Top
X@unnumbered Key Index
X@printindex ky
X
X@node Command Index, Variable Index, Key Index, Top
X@unnumbered Command Index
X@printindex fn
X
X@node Variable Index, Introduction, Command Index, Top
X@unnumbered Variable Index
X@printindex vr
X
X@summarycontents
X@contents
X@bye
SHAR_EOF
echo "File vm.texinfo is complete"
chmod 0664 vm.texinfo || echo "restore of vm.texinfo fails"
echo "x - extracting COPYING (Text)"
sed 's/^X//' << 'SHAR_EOF' > COPYING &&
X		    GNU GENERAL PUBLIC LICENSE
X		     Version 1, February 1989
X
X Copyright (C) 1989 Free Software Foundation, Inc.
X                    675 Mass Ave, Cambridge, MA 02139, USA
X Everyone is permitted to copy and distribute verbatim copies
X of this license document, but changing it is not allowed.
X
X			    Preamble
X
X  The license agreements of most software companies try to keep users
Xat the mercy of those companies.  By contrast, our General Public
XLicense is intended to guarantee your freedom to share and change free
Xsoftware--to make sure the software is free for all its users.  The
XGeneral Public License applies to the Free Software Foundation's
Xsoftware and to any other program whose authors commit to using it.
XYou can use it for your programs, too.
X
X  When we speak of free software, we are referring to freedom, not
Xprice.  Specifically, the General Public License is designed to make
Xsure that you have the freedom to give away or sell copies of free
Xsoftware, that you receive source code or can get it if you want it,
Xthat you can change the software or use pieces of it in new free
Xprograms; and that you know you can do these things.
X
X  To protect your rights, we need to make restrictions that forbid
Xanyone to deny you these rights or to ask you to surrender the rights.
XThese restrictions translate to certain responsibilities for you if you
Xdistribute copies of the software, or if you modify it.
X
X  For example, if you distribute copies of a such a program, whether
Xgratis or for a fee, you must give the recipients all the rights that
Xyou have.  You must make sure that they, too, receive or can get the
Xsource code.  And you must tell them their rights.
X
X  We protect your rights with two steps: (1) copyright the software, and
X(2) offer you this license which gives you legal permission to copy,
Xdistribute and/or modify the software.
X
X  Also, for each author's protection and ours, we want to make certain
Xthat everyone understands that there is no warranty for this free
Xsoftware.  If the software is modified by someone else and passed on, we
Xwant its recipients to know that what they have is not the original, so
Xthat any problems introduced by others will not reflect on the original
Xauthors' reputations.
X
X  The precise terms and conditions for copying, distribution and
Xmodification follow.
X
X		    GNU GENERAL PUBLIC LICENSE
X   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
X
X  0. This License Agreement applies to any program or other work which
Xcontains a notice placed by the copyright holder saying it may be
Xdistributed under the terms of this General Public License.  The
X"Program", below, refers to any such program or work, and a "work based
Xon the Program" means either the Program or any work containing the
XProgram or a portion of it, either verbatim or with modifications.  Each
Xlicensee is addressed as "you".
X
X  1. You may copy and distribute verbatim copies of the Program's source
Xcode as you receive it, in any medium, provided that you conspicuously and
Xappropriately publish on each copy an appropriate copyright notice and
Xdisclaimer of warranty; keep intact all the notices that refer to this
XGeneral Public License and to the absence of any warranty; and give any
Xother recipients of the Program a copy of this General Public License
Xalong with the Program.  You may charge a fee for the physical act of
Xtransferring a copy.
X
X  2. You may modify your copy or copies of the Program or any portion of
Xit, and copy and distribute such modifications under the terms of Paragraph
X1 above, provided that you also do the following:
X
X    a) cause the modified files to carry prominent notices stating that
X    you changed the files and the date of any change; and
X
X    b) cause the whole of any work that you distribute or publish, that
X    in whole or in part contains the Program or any part thereof, either
X    with or without modifications, to be licensed at no charge to all
X    third parties under the terms of this General Public License (except
X    that you may choose to grant warranty protection to some or all
X    third parties, at your option).
X
X    c) If the modified program normally reads commands interactively when
X    run, you must cause it, when started running for such interactive use
X    in the simplest and most usual way, to print or display an
X    announcement including an appropriate copyright notice and a notice
X    that there is no warranty (or else, saying that you provide a
X    warranty) and that users may redistribute the program under these
X    conditions, and telling the user how to view a copy of this General
X    Public License.
X
X    d) You may charge a fee for the physical act of transferring a
X    copy, and you may at your option offer warranty protection in
X    exchange for a fee.
X
XMere aggregation of another independent work with the Program (or its
Xderivative) on a volume of a storage or distribution medium does not bring
Xthe other work under the scope of these terms.
X
X  3. You may copy and distribute the Program (or a portion or derivative of
Xit, under Paragraph 2) in object code or executable form under the terms of
XParagraphs 1 and 2 above provided that you also do one of the following:
X
X    a) accompany it with the complete corresponding machine-readable
X    source code, which must be distributed under the terms of
X    Paragraphs 1 and 2 above; or,
X
X    b) accompany it with a written offer, valid for at least three
X    years, to give any third party free (except for a nominal charge
X    for the cost of distribution) a complete machine-readable copy of the
X    corresponding source code, to be distributed under the terms of
X    Paragraphs 1 and 2 above; or,
X
X    c) accompany it with the information you received as to where the
X    corresponding source code may be obtained.  (This alternative is
X    allowed only for noncommercial distribution and only if you
X    received the program in object code or executable form alone.)
X
XSource code for a work means the preferred form of the work for making
Xmodifications to it.  For an executable file, complete source code means
Xall the source code for all modules it contains; but, as a special
Xexception, it need not include source code for modules which are standard
Xlibraries that accompany the operating system on which the executable
Xfile runs, or for standard header files or definitions files that
Xaccompany that operating system.
X
X  4. You may not copy, modify, sublicense, distribute or transfer the
XProgram except as expressly provided under this General Public License.
XAny attempt otherwise to copy, modify, sublicense, distribute or transfer
Xthe Program is void, and will automatically terminate your rights to use
Xthe Program under this License.  However, parties who have received
Xcopies, or rights to use copies, from you under this General Public
XLicense will not have their licenses terminated so long as such parties
Xremain in full compliance.
X
X  5. By copying, distributing or modifying the Program (or any work based
Xon the Program) you indicate your acceptance of this license to do so,
Xand all its terms and conditions.
X
X  6. Each time you redistribute the Program (or any work based on the
XProgram), the recipient automatically receives a license from the original
Xlicensor to copy, distribute or modify the Program subject to these
Xterms and conditions.  You may not impose any further restrictions on the
Xrecipients' exercise of the rights granted herein.
X
X  7. The Free Software Foundation may publish revised and/or new versions
Xof the General Public License from time to time.  Such new versions will
Xbe similar in spirit to the present version, but may differ in detail to
Xaddress new problems or concerns.
X
XEach version is given a distinguishing version number.  If the Program
Xspecifies a version number of the license which applies to it and "any
Xlater version", you have the option of following the terms and conditions
Xeither of that version or of any later version published by the Free
XSoftware Foundation.  If the Program does not specify a version number of
Xthe license, you may choose any version ever published by the Free Software
XFoundation.
X
X  8. If you wish to incorporate parts of the Program into other free
Xprograms whose distribution conditions are different, write to the author
Xto ask for permission.  For software which is copyrighted by the Free
XSoftware Foundation, write to the Free Software Foundation; we sometimes
Xmake exceptions for this.  Our decision will be guided by the two goals
Xof preserving the free status of all derivatives of our free software and
Xof promoting the sharing and reuse of software generally.
X
X			    NO WARRANTY
X
X  9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
XREPAIR OR CORRECTION.
X
X  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
XPOSSIBILITY OF SUCH DAMAGES.
X
X		     END OF TERMS AND CONDITIONS
SHAR_EOF
chmod 0444 COPYING || echo "restore of COPYING fails"
echo "x - extracting README (Text)"
sed 's/^X//' << 'SHAR_EOF' > README &&
XHow to setup VM:
X
X1) Install all the source modules in a Lisp directory that Emacs knows
X   about.
X
X2) Startup an Emacs session.
X
X3) Byte-compile vm.el.
X
X4) Byte-compile the other modules.
X
X5) Visit the vm.texinfo file and execute `M-x texinfo-format-buffer'.
X   Save the resulting "vm.info" buffer and copy the "vm.info" file into
X   Emacs' info directory under the name "vm".  Edit the "dir" file in
X   that directory and add a menu entry for VM.
X
X6) MMDF users must (setq vm-folder-type 'mmdf).
X
XSend bug reports to kyle@cs.odu.edu.
SHAR_EOF
chmod 0664 README || echo "restore of README fails"
rm -f s2_seq_.tmp
echo "You have unpacked the last part"
exit 0
