-</screen>
-
-</para>
-
-<para>
-Nowadays, most mailing list software like GNU Mailman adds a
-<literal>Mail-Followup-To:</literal> header to their emails anyway, so setting
-<literal>lists</literal> is hardly ever necessary in practice.
-</para>
-
-<para>
-
-</para>
-
-<para>
-
-</para>
-
-<!--}}}-->
-</sect3>
-
-<!--}}}-->
-</sect2>
-
-<sect2>
-<title>Editing the message header </title>
-
-<para>
-When editing the header of your outgoing message, there are a couple of
-special features available.
-</para>
-
-<para>
-If you specify
-
-<literal>Fcc:</literal> <emphasis>filename</emphasis>
-
-Mutt-ng will pick up <emphasis>filename</emphasis>
-just as if you had used the <emphasis>edit-fcc</emphasis> function in the <emphasis>compose</emphasis> menu.
-</para>
-
-<para>
-You can also attach files to your message by specifying
-
-<literal>Attach:</literal> <emphasis>filename</emphasis> [ <emphasis>description</emphasis> ]
-
-where <emphasis>filename</emphasis> is the file to attach and <emphasis>description</emphasis> is an
-optional string to use as the description of the attached file.
-</para>
-
-<para>
-When replying to messages, if you remove the <emphasis>In-Reply-To:</emphasis> field from
-the header field, Mutt-ng will not generate a <emphasis>References:</emphasis> field, which
-allows you to create a new message thread.
-</para>
-
-<para>
-Also see <link linkend="edit-headers">edit-headers</link>.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Using Mutt-ng with PGP </title>
-
-<para>
-If you want to use PGP, you can specify
-</para>
-
-<para>
-<literal>Pgp:</literal> [ <literal>E</literal> | <literal>S</literal> | <literal>S</literal><emphasis><id></emphasis> ]
-
-</para>
-
-<para>
-``E'' encrypts, ``S'' signs and
-``S<id>'' signs with the given key, setting <link linkend="pgp-sign-as">pgp-sign-as</link> permanently.
-</para>
-
-<para>
-If you have told mutt to PGP encrypt a message, it will guide you
-through a key selection process when you try to send the message.
-Mutt-ng will not ask you any questions about keys which have a
-certified user ID matching one of the message recipients' mail
-addresses. However, there may be situations in which there are
-several keys, weakly certified user ID fields, or where no matching
-keys can be found.
-</para>
-
-<para>
-In these cases, you are dropped into a menu with a list of keys from
-which you can select one. When you quit this menu, or mutt can't
-find any matching keys, you are prompted for a user ID. You can, as
-usually, abort this prompt using <literal>ˆG</literal>. When you do so, mutt will
-return to the compose screen.
-</para>
-
-<para>
-Once you have successfully finished the key selection, the message
-will be encrypted using the selected public keys, and sent out.
-</para>
-
-<para>
-Most fields of the entries in the key selection menu (see also <link linkend="pgp-entry-format">pgp-entry-format</link>)
-have obvious meanings. But some explanations on the capabilities, flags,
-and validity fields are in order.
-</para>
-
-<para>
-The flags sequence (%f) will expand to one of the following flags:
-
-<screen>
-R The key has been revoked and can't be used.
-X The key is expired and can't be used.
-d You have marked the key as disabled.
-c There are unknown critical self-signature
- packets.
-</screen>
-
-</para>
-
-<para>
-The capabilities field (%c) expands to a two-character sequence
-representing a key's capabilities. The first character gives
-the key's encryption capabilities: A minus sign (<emphasis role="bold">-</emphasis>) means
-that the key cannot be used for encryption. A dot (<emphasis role="bold">.</emphasis>) means that
-it's marked as a signature key in one of the user IDs, but may
-also be used for encryption. The letter <emphasis role="bold">e</emphasis> indicates that
-this key can be used for encryption.
-</para>
-
-<para>
-The second character indicates the key's signing capabilities. Once
-again, a ``<emphasis role="bold">-</emphasis>'' implies ``not for signing'', ``<emphasis role="bold">.</emphasis>'' implies
-that the key is marked as an encryption key in one of the user-ids, and
-``<emphasis role="bold">s</emphasis>'' denotes a key which can be used for signing.
-</para>
-
-<para>
-Finally, the validity field (%t) indicates how well-certified a user-id
-is. A question mark (<emphasis role="bold">?</emphasis>) indicates undefined validity, a minus
-character (<emphasis role="bold">-</emphasis>) marks an untrusted association, a space character
-means a partially trusted association, and a plus character (<emphasis role="bold">+</emphasis>)
-indicates complete validity.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Sending anonymous messages via mixmaster </title>
-
-<para>
-You may also have configured mutt to co-operate with Mixmaster, an
-anonymous remailer. Mixmaster permits you to send your messages
-anonymously using a chain of remailers. Mixmaster support in mutt is for
-mixmaster version 2.04 (beta 45 appears to be the latest) and 2.03.
-It does not support earlier versions or the later so-called version 3 betas,
-of which the latest appears to be called 2.9b23.
-</para>
-
-<para>
-To use it, you'll have to obey certain restrictions. Most
-important, you cannot use the <literal>Cc</literal> and <literal>Bcc</literal> headers. To tell
-Mutt-ng to use mixmaster, you have to select a remailer chain, using
-the mix function on the compose menu.
-</para>
-
-<para>
-The chain selection screen is divided into two parts. In the
-(larger) upper part, you get a list of remailers you may use. In
-the lower part, you see the currently selected chain of remailers.
-</para>
-
-<para>
-You can navigate in the chain using the <literal>chain-prev</literal> and
-<literal>chain-next</literal> functions, which are by default bound to the left
-and right arrows and to the <literal>h</literal> and <literal>l</literal> keys (think vi
-keyboard bindings). To insert a remailer at the current chain
-position, use the <literal>insert</literal> function. To append a remailer behind
-the current chain position, use <literal>select-entry</literal> or <literal>append</literal>.
-You can also delete entries from the chain, using the corresponding
-function. Finally, to abandon your changes, leave the menu, or
-<literal>accept</literal> them pressing (by default) the <literal>Return</literal> key.
-</para>
-
-<para>
-Note that different remailers do have different capabilities,
-indicated in the %c entry of the remailer menu lines (see
-<link linkend="mix-entry-format">mix-entry-format</link>). Most important is
-the ``middleman'' capability, indicated by a capital ``M'': This
-means that the remailer in question cannot be used as the final
-element of a chain, but will only forward messages to other
-mixmaster remailers. For details on the other capabilities, please
-have a look at the mixmaster documentation.
-</para>
-
-<para>
-
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="forwarding-mail">
-<title>Forwarding and Bouncing Mail </title>
-
-<para>
-Often, it is necessary to forward mails to other people.
-Therefore, mutt-ng supports forwarding messages in two different
-ways.
-</para>
-
-<para>
-The first one is regular forwarding, as you probably know it from
-other mail clients. You simply press <literal>f</literal>, enter the recipient
-email address, the subject of the forwarded email, and then you can
-edit the message to be forwarded in the editor. The forwarded
-message is separated from the rest of the message via the two
-following markers:
-</para>
-
-<para>
-
-<screen>
------ Forwarded message from Lucas User <luser@example.com> -----
-
-From: Lucas User <luser@example.com>
-Date: Thu, 02 Dec 2004 03:08:34 +0100
-To: Michael Random <mrandom@example.com>
-Subject: Re: blackmail
-
-Pay me EUR 50,000.- cash or your favorite stuffed animal will die
-a horrible death.
-
-
------ End forwarded message -----
-</screen>
-
-</para>
-
-<para>
-When you're done with editing the mail, save and quit the editor,
-and you will return to the compose menu, the same menu you also
-encounter when composing or replying to mails.
-</para>
-
-<para>
-The second mode of forwarding emails with mutt-ng is the
-so-called <emphasis>bouncing</emphasis>: when you bounce an email to another
-address, it will be sent in practically the same format you send it
-(except for headers that are created during transporting the
-message). To bounce a message, press <literal>b</literal> and enter the recipient
-email address. By default, you are then asked whether you really
-want to bounce the message to the specified recipient. If you answer
-with yes, the message will then be bounced.
-</para>
-
-<para>
-To the recipient, the bounced email will look as if he got it
-like a regular email where he was <literal>Bcc:</literal> recipient. The only
-possibility to find out whether it was a bounced email is to
-carefully study the email headers and to find out which host really
-sent the email.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="postponing-mail">
-<title>Postponing Mail </title>
-
-<para>
-At times it is desirable to delay sending a message that you have
-already begun to compose. When the <emphasis>postpone-message</emphasis> function is
-used in the <emphasis>compose</emphasis> menu, the body of your message and attachments
-are stored in the mailbox specified by the <link linkend="postponed">postponed</link> variable. This means that you can recall the
-message even if you exit Mutt-ng and then restart it at a later time.
-</para>
-
-<para>
-Once a message is postponed, there are several ways to resume it. From the
-command line you can use the ``-p'' option, or if you <emphasis>compose</emphasis> a new
-message from the <emphasis>index</emphasis> or <emphasis>pager</emphasis> you will be prompted if postponed
-messages exist. If multiple messages are currently postponed, the
-<emphasis>postponed</emphasis> menu will pop up and you can select which message you would
-like to resume.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> If you postpone a reply to a message, the reply setting of
-the message is only updated when you actually finish the message and
-send it. Also, you must be in the same folder with the message you
-replied to for the status of the message to be updated.
-</para>
-
-<para>
-See also the <link linkend="postpone">postpone</link> quad-option.
-</para>
-
-<para>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-</chapter>
-
-<chapter>
-<title>Configuration </title>
-
-<sect1>
-<title>Locations of Configuration Files </title>
-
-<para>
-While the default configuration (or ``preferences'') make Mutt-ng usable right out
-of the box, it is often desirable to tailor Mutt-ng to suit your own tastes. When
-Mutt-ng is first invoked, it will attempt to read the ``system'' configuration
-file (defaults set by your local system administrator), unless the ``-n'' <link linkend="commandline">commandline</link> option is specified. This file is
-typically <literal>/usr/local/share/muttng/Muttngrc</literal> or <literal>/etc/Muttngrc</literal>,
-Mutt-ng users will find this file in <literal>/usr/local/share/muttng/Muttrc</literal> or
-<literal>/etc/Muttngrc</literal>. Mutt will next look for a file named <literal>.muttrc</literal>
-in your home directory, Mutt-ng will look for <literal>.muttngrc</literal>. If this file
-does not exist and your home directory has a subdirectory named <literal>.mutt</literal>,
-mutt try to load a file named <literal>.muttng/muttngrc</literal>.
-</para>
-
-<para>
-<literal>.muttrc</literal> (or <literal>.muttngrc</literal> for Mutt-ng) is the file where you will
-usually place your <link linkend="commands">commands</link> to configure Mutt-ng.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="muttrc-syntax">
-<title>Basic Syntax of Initialization Files </title>
-
-<para>
-An initialization file consists of a series of <link linkend="commands">commands</link>. Each line of the file may contain one or more commands.
-When multiple commands are used, they must be separated by a semicolon (;).
-
-<screen>
-set realname='Mutt-ng user' ; ignore x-
-</screen>
-
-The hash mark, or pound sign
-(``#''), is used as a ``comment'' character. You can use it to
-annotate your initialization file. All text after the comment character
-to the end of the line is ignored. For example,
-</para>
-
-<para>
-
-<screen>
-my_hdr X-Disclaimer: Why are you listening to me? # This is a comment
-</screen>
-
-</para>
-
-<para>
-Single quotes (') and double quotes (") can be used to quote strings
-which contain spaces or other special characters. The difference between
-the two types of quotes is similar to that of many popular shell programs,
-namely that a single quote is used to specify a literal string (one that is
-not interpreted for shell variables or quoting with a backslash [see
-next paragraph]), while double quotes indicate a string for which
-should be evaluated. For example, backtics are evaluated inside of double
-quotes, but <emphasis role="bold">not</emphasis> for single quotes.
-</para>
-
-<para>
-\ quotes the next character, just as in shells such as bash and zsh.
-For example, if want to put quotes ``"'' inside of a string, you can use
-``\'' to force the next character to be a literal instead of interpreted
-character.
-
-<screen>
-set realname="Michael \"MuttDude\" Elkins"
-</screen>
-
-</para>
-
-<para>
-``\\'' means to insert a literal ``\'' into the line.
-``\n'' and ``\r'' have their usual C meanings of linefeed and
-carriage-return, respectively.
-</para>
-
-<para>
-A \ at the end of a line can be used to split commands over
-multiple lines, provided that the split points don't appear in the
-middle of command names.
-</para>
-
-<para>
-Please note that, unlike the various shells, mutt-ng interprets a ``\''
-at the end of a line also in comments. This allows you to disable a command
-split over multiple lines with only one ``#''.
-</para>
-
-<para>
-
-<screen>
-# folder-hook . \
- set realname="Michael \"MuttDude\" Elkins"
-</screen>
-
-</para>
-
-<para>
-When testing your config files, beware the following caveat. The backslash
-at the end of the commented line extends the current line with the next line
-- then referred to as a ``continuation line''. As the first line is
-commented with a hash (#) all following continuation lines are also
-part of a comment and therefore are ignored, too. So take care of comments
-when continuation lines are involved within your setup files!
-</para>
-
-<para>
-Abstract example:
-</para>
-
-<para>
-
-<screen>
-line1\
-line2a # line2b\
-line3\
-line4
-line5
-</screen>
-
-</para>
-
-<para>
-line1 ``continues'' until line4. however, the part after the # is a
-comment which includes line3 and line4. line5 is a new line of its own and
-thus is interpreted again.
-</para>
-
-<para>
-The commands understood by mutt are explained in the next paragraphs.
-For a complete list, see the <link linkend="commands">commands</link>.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>Expansion within variables </title>
-
-<para>
-Besides just assign static content to variables, there's plenty of
-ways of adding external and more or less dynamic content.
-</para>
-
-<sect2>
-<title>Commands' Output </title>
-
-<para>
-It is possible to substitute the output of a Unix command in an
-initialization file. This is accomplished by enclosing the command
-in backquotes (``) as in, for example:
-</para>
-
-<para>
-
-<screen>
-my_hdr X-Operating-System: `uname -a`
-</screen>
-
-</para>
-
-<para>
-The output of the Unix command ``uname -a'' will be substituted
-before the line is parsed. Note that since initialization files are
-line oriented, only the first line of output from the Unix command
-will be substituted.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Environment Variables </title>
-
-<para>
-UNIX environments can be accessed like the way it is done in
-shells like sh and bash: Prepend the name of the environment by a
-``$'' sign. For example,
-</para>
-
-<para>
-
-<screen>
-set record=+sent_on_$HOSTNAME
-</screen>
-
-</para>
-
-<para>
-sets the <link linkend="record">record</link> variable to the
-string <emphasis>+sent_on_</emphasis> and appends the value of the evironment
-variable <literal>$HOSTNAME</literal>.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> There will be no warning if an environment variable
-is not defined. The result will of the expansion will then be empty.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Configuration Variables </title>
-
-<para>
-As for environment variables, the values of all configuration
-variables as string can be used in the same way, too. For example,
-</para>
-
-<para>
-
-<screen>
-set imap_home_namespace = $folder
-</screen>
-
-</para>
-
-<para>
-would set the value of <link linkend="imap-home-namespace">imap-home-namespace</link> to the value to
-which <link linkend="folder">folder</link> is <emphasis>currently</emphasis> set
-to.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> There're no logical links established in such cases so
-that the the value for <link linkend="imap-home-namespace">imap-home-namespace</link> won't change even
-if <link linkend="folder">folder</link> gets changed.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> There will be no warning if a configuration variable
-is not defined or is empty. The result will of the expansion will
-then be empty.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Self-Defined Variables </title>
-
-<para>
-Mutt-ng flexibly allows users to define their own variables. To
-avoid conflicts with the standard set and to prevent misleading
-error messages, there's a reserved namespace for them: all
-user-defined variables must be prefixed with <literal>user_</literal> and can be
-used just like any ordinary configuration or environment
-variable.
-</para>
-
-<para>
-For example, to view the manual, users can either define two
-macros like the following
-</para>
-
-<para>
-
-<screen>
-macro generic <F1> "!less -r /path/to/manual" "Show manual"
-macro pager <F1> "!less -r /path/to/manual" "Show manual"
-</screen>
-
-</para>
-
-<para>
-for <literal>generic</literal>, <literal>pager</literal> and <literal>index</literal>. The alternative is to
-define a custom variable like so:
-</para>
-
-<para>
-
-<screen>
-set user_manualcmd = "!less -r /path/to_manual"
-macro generic <F1> "$user_manualcmd<enter>" "Show manual"
-macro pager <F1> "$user_manualcmd<enter>" "Show manual"
-macro index <F1> "$user_manualcmd<enter>" "Show manual"
-</screen>
-
-</para>
-
-<para>
-to re-use the command sequence as in:
-</para>
-
-<para>
-
-<screen>
-macro index <F2> "$user_manualcmd | grep '\^[ ]\\+~. '" "Show Patterns"
-</screen>
-
-</para>
-
-<para>
-Using this feature, arbitrary sequences can be defined once and
-recalled and reused where necessary. More advanced scenarios could
-include to save a variable's value at the beginning of macro
-sequence and restore it at end.
-</para>
-
-<para>
-When the variable is first defined, the first value it gets
-assigned is also the initial value to which it can be reset using
-the <literal>reset</literal> command.
-</para>
-
-<para>
-The complete removal is done via the <literal>unset</literal> keyword.
-</para>
-
-<para>
-After the following sequence:
-</para>
-
-<para>
-
-<screen>
-set user_foo = 42
-set user_foo = 666
-</screen>
-
-</para>
-
-<para>
-the variable <literal>$user_foo</literal> has a current value of 666 and an
-initial of 42. The query
-</para>
-
-<para>
-
-<screen>
-set ?user_foo
-</screen>
-
-</para>
-
-<para>
-will show 666. After doing the reset via
-</para>
-
-<para>
-
-<screen>
-reset user_foo
-</screen>
-
-</para>
-
-<para>
-a following query will give 42 as the result. After unsetting it
-via
-</para>
-
-<para>
-
-<screen>
-unset user_foo
-</screen>
-
-</para>
-
-<para>
-any query or operation (except the noted expansion within other
-statements) will lead to an error message.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Pre-Defined Variables </title>
-
-<para>
-In order to allow users to share one setup over a number of
-different machines without having to change its contents, there's a
-number of pre-defined variables. These are prefixed with
-<literal>muttng_</literal> and are read-only, i.e. they cannot be set, unset or
-reset. The reference chapter lists all available variables.
-</para>
-
-<para>
-<emphasis> Please consult the local copy of your manual for their
-values as they may differ from different manual sources.</emphasis> Where
-the manual is installed in can be queried (already using such a
-variable) by running:
-</para>
-
-<para>
-
-<screen>
-muttng -Q muttng_docdir
-</screen>
-
-</para>
-
-<para>
-To extend the example for viewing the manual via self-defined
-variables, it can be made more readable and more portable by
-changing the real path in:
-</para>
-
-<para>
-
-<screen>
-set user_manualcmd = '!less -r /path/to_manual'
-</screen>
-
-</para>
-
-<para>
-to:
-</para>
-
-<para>
-
-<screen>
-set user_manualcmd = "!less -r $muttng_docdir/manual.txt"
-</screen>
-
-</para>
-
-<para>
-which works everywhere if a manual is installed.
-</para>
-
-<para>
-Please note that by the type of quoting, muttng determines when
-to expand these values: when it finds double quotes, the value will
-be expanded during reading the setup files but when it finds single
-quotes, it'll expand it at runtime as needed.
-</para>
-
-<para>
-For example, the statement
-</para>
-
-<para>
-
-<screen>
-folder-hook . "set user_current_folder = $muttng_folder_name"
-</screen>
-
-</para>
-
-<para>
-will be already be translated to the following when reading the
-startup files:
-</para>
-
-<para>
-
-<screen>
-folder-hook . "set user_current_folder = some_folder"
-</screen>
-
-</para>
-
-<para>
-with <literal>some_folder</literal> being the name of the first folder muttng
-opens. On the contrary,
-</para>
-
-<para>
-
-<screen>
-folder-hook . 'set user_current_folder = $muttng_folder_name'
-</screen>
-
-</para>
-
-<para>
-will be executed at runtime because of the single quotes so that
-<literal>user_current_folder</literal> will always have the value of the currently
-opened folder.
-</para>
-
-<para>
-A more practical example is:
-</para>
-
-<para>
-
-<screen>
-folder-hook . 'source ~/.mutt/score-$muttng_folder_name'
-</screen>
-
-</para>
-
-<para>
-which can be used to source files containing score commands
-depending on the folder the user enters.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Type Conversions </title>
-
-<para>
-A note about variable's types during conversion: internally
-values are stored in internal types but for any dump/query or set
-operation they're converted to and from string. That means that
-there's no need to worry about types when referencing any variable.
-As an example, the following can be used without harm (besides
-makeing muttng very likely behave strange):
-</para>
-
-<para>
-
-<screen>
-set read_inc = 100
-set folder = $read_inc
-set read_inc = $folder
-set user_magic_number = 42
-set folder = $user_magic_number
-</screen>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="alias">
-<title>Defining/Using aliases </title>
-
-<para>
-Usage: <literal>alias</literal> <emphasis>key</emphasis> <emphasis>address</emphasis> [ , <emphasis>address</emphasis>, ... ]
-</para>
-
-<para>
-It's usually very cumbersome to remember or type out the address of someone
-you are communicating with. Mutt-ng allows you to create ``aliases'' which map
-a short string to a full address.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> if you want to create an alias for a group (by specifying more than
-one address), you <emphasis role="bold">must</emphasis> separate the addresses with a comma (``,'').
-</para>
-
-<para>
-To remove an alias or aliases (``*'' means all aliases):
-</para>
-
-<para>
-<literal>unalias</literal> [ * | <emphasis>key</emphasis> <emphasis>...</emphasis> ]
-</para>
-
-<para>
-
-<screen>
-alias muttdude me@cs.hmc.edu (Michael Elkins)
-alias theguys manny, moe, jack
-</screen>
-
-</para>
-
-<para>
-Unlike other mailers, Mutt-ng doesn't require aliases to be defined
-in a special file. The <literal>alias</literal> command can appear anywhere in
-a configuration file, as long as this file is <link linkend="source">source</link>. Consequently, you can have multiple alias files, or
-you can have all aliases defined in your muttrc.
-</para>
-
-<para>
-On the other hand, the <link linkend="create-alias">create-alias</link>
-function can use only one file, the one pointed to by the <link linkend="alias-file">alias-file</link> variable (which is
-<literal>˜/.muttrc</literal> by default). This file is not special either,
-in the sense that Mutt-ng will happily append aliases to any file, but in
-order for the new aliases to take effect you need to explicitly <link linkend="source">source</link> this file too.
-</para>
-
-<para>
-For example:
-</para>
-
-<para>
-
-<screen>
-source /usr/local/share/Mutt-ng.aliases
-source ~/.mail_aliases
-set alias_file=~/.mail_aliases
-</screen>
-
-</para>
-
-<para>
-To use aliases, you merely use the alias at any place in mutt where mutt
-prompts for addresses, such as the <emphasis>To:</emphasis> or <emphasis>Cc:</emphasis> prompt. You can
-also enter aliases in your editor at the appropriate headers if you have the
-<link linkend="edit-headers">edit-headers</link> variable set.
-</para>
-
-<para>
-In addition, at the various address prompts, you can use the tab character
-to expand a partial alias to the full alias. If there are multiple matches,
-mutt will bring up a menu with the matching aliases. In order to be
-presented with the full list of aliases, you must hit tab with out a partial
-alias, such as at the beginning of the prompt or after a comma denoting
-multiple addresses.
-</para>
-
-<para>
-In the alias menu, you can select as many aliases as you want with the
-<emphasis>select-entry</emphasis> key (default: RET), and use the <emphasis>exit</emphasis> key
-(default: q) to return to the address prompt.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="bind">
-<title>Changing the default key bindings </title>
-
-<para>
-Usage: <literal>bind</literal> <emphasis>map</emphasis> <emphasis>key</emphasis> <emphasis>function</emphasis>
-</para>
-
-<para>
-This command allows you to change the default key bindings (operation
-invoked when pressing a key).
-</para>
-
-<para>
-<emphasis>map</emphasis> specifies in which menu the binding belongs. Multiple maps may
-be specified by separating them with commas (no additional whitespace is
-allowed). The currently defined maps are:
-</para>
-
-<para>
-<anchor id="maps"/>
-<variablelist>
-
-<varlistentry>
-<term>generic</term>
-<listitem>
-<para>
-This is not a real menu, but is used as a fallback for all of the other
-menus except for the pager and editor modes. If a key is not defined in
-another menu, Mutt-ng will look for a binding to use in this menu. This allows
-you to bind a key to a certain function in multiple menus instead of having
-multiple bind statements to accomplish the same task.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>alias</term>
-<listitem>
-<para>
-The alias menu is the list of your personal aliases as defined in your
-muttrc. It is the mapping from a short alias name to the full email
-address(es) of the recipient(s).
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>attach</term>
-<listitem>
-<para>
-The attachment menu is used to access the attachments on received messages.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>browser</term>
-<listitem>
-<para>
-The browser is used for both browsing the local directory structure, and for
-listing all of your incoming mailboxes.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>editor</term>
-<listitem>
-<para>
-The editor is the line-based editor the user enters text data.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>index</term>
-<listitem>
-<para>
-The index is the list of messages contained in a mailbox.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>compose</term>
-<listitem>
-<para>
-The compose menu is the screen used when sending a new message.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>pager</term>
-<listitem>
-<para>
-The pager is the mode used to display message/attachment data, and help
-listings.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>pgp</term>
-<listitem>
-<para>
-The pgp menu is used to select the OpenPGP keys used for encrypting outgoing
-messages.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>postpone</term>
-<listitem>
-<para>
-The postpone menu is similar to the index menu, except is used when
-recalling a message the user was composing, but saved until later.
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-<emphasis>key</emphasis> is the key (or key sequence) you wish to bind. To specify a
-control character, use the sequence <emphasis>\Cx</emphasis>, where <emphasis>x</emphasis> is the
-letter of the control character (for example, to specify control-A use
-``\Ca''). Note that the case of <emphasis>x</emphasis> as well as <emphasis>\C</emphasis> is
-ignored, so that <emphasis>\CA</emphasis>, <emphasis>\Ca</emphasis>, <emphasis>\cA</emphasis> and <emphasis>\ca</emphasis> are all
-equivalent. An alternative form is to specify the key as a three digit
-octal number prefixed with a ``\'' (for example <emphasis>\177</emphasis> is
-equivalent to <emphasis>\c?</emphasis>).
-</para>
-
-<para>
-In addition, <emphasis>key</emphasis> may consist of:
-</para>
-
-<para>
-
-<screen>
-\t tab
-<tab> tab
-<backtab> backtab / shift-tab
-\r carriage return
-\n newline
-\e escape
-<esc> escape
-<up> up arrow
-<down> down arrow
-<left> left arrow
-<right> right arrow
-<pageup> Page Up
-<pagedown> Page Down
-<backspace> Backspace
-<delete> Delete
-<insert> Insert
-<enter> Enter
-<return> Return
-<home> Home
-<end> End
-<space> Space bar
-<f1> function key 1
-<f10> function key 10
-</screen>
-
-</para>
-
-<para>
-<emphasis>key</emphasis> does not need to be enclosed in quotes unless it contains a
-space (`` '').
-</para>
-
-<para>
-<emphasis>function</emphasis> specifies which action to take when <emphasis>key</emphasis> is pressed.
-For a complete list of functions, see the <link linkend="functions">functions</link>. The special function <literal>noop</literal> unbinds the specified key
-sequence.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="charset-hook">
-<title>Defining aliases for character sets </title>
-
-<para>
-Usage: <literal>charset-hook</literal> <emphasis>alias</emphasis> <emphasis>charset</emphasis>
-
-Usage: <literal>iconv-hook</literal> <emphasis>charset</emphasis> <emphasis>local-charset</emphasis>
-</para>
-
-<para>
-The <literal>charset-hook</literal> command defines an alias for a character set.
-This is useful to properly display messages which are tagged with a
-character set name not known to mutt.
-</para>
-
-<para>
-The <literal>iconv-hook</literal> command defines a system-specific name for a
-character set. This is helpful when your systems character
-conversion library insists on using strange, system-specific names
-for character sets.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="folder-hook">
-<title>Setting variables based upon mailbox </title>
-
-<para>
-Usage: <literal>folder-hook</literal> [!]<emphasis>regexp</emphasis> <emphasis>command</emphasis>
-</para>
-
-<para>
-It is often desirable to change settings based on which mailbox you are
-reading. The folder-hook command provides a method by which you can execute
-any configuration command. <emphasis>regexp</emphasis> is a regular expression specifying
-in which mailboxes to execute <emphasis>command</emphasis> before loading. If a mailbox
-matches multiple folder-hook's, they are executed in the order given in the
-muttrc.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> if you use the ``!'' shortcut for <link linkend="spoolfile">spoolfile</link> at the beginning of the pattern, you must place it
-inside of double or single quotes in order to distinguish it from the
-logical <emphasis>not</emphasis> operator for the expression.
-</para>
-
-<para>
-Note that the settings are <emphasis>not</emphasis> restored when you leave the mailbox.
-For example, a command action to perform is to change the sorting method
-based upon the mailbox being read:
-</para>
-
-<para>
-
-<screen>
-folder-hook mutt set sort=threads
-</screen>
-
-</para>
-
-<para>
-However, the sorting method is not restored to its previous value when
-reading a different mailbox. To specify a <emphasis>default</emphasis> command, use the
-pattern ``.'':
-</para>
-
-<para>
-
-<screen>
-folder-hook . set sort=date-sent
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="macro">
-<title>Keyboard macros </title>
-
-<para>
-Usage: <literal>macro</literal> <emphasis>menu</emphasis> <emphasis>key</emphasis> <emphasis>sequence</emphasis> [ <emphasis>description</emphasis> ]
-</para>
-
-<para>
-Macros are useful when you would like a single key to perform a series of
-actions. When you press <emphasis>key</emphasis> in menu <emphasis>menu</emphasis>, Mutt-ng will behave as if
-you had typed <emphasis>sequence</emphasis>. So if you have a common sequence of commands
-you type, you can create a macro to execute those commands with a single
-key.
-</para>
-
-<para>
-<emphasis>menu</emphasis> is the <link linkend="maps">maps</link> which the macro will be bound.
-Multiple maps may be specified by separating multiple menu arguments by
-commas. Whitespace may not be used in between the menu arguments and the
-commas separating them.
-</para>
-
-<para>
-<emphasis>key</emphasis> and <emphasis>sequence</emphasis> are expanded by the same rules as the <link linkend="bind">bind</link>. There are some additions however. The
-first is that control characters in <emphasis>sequence</emphasis> can also be specified
-as <emphasis>ˆx</emphasis>. In order to get a caret (`ˆ'') you need to use
-<emphasis>ˆˆ</emphasis>. Secondly, to specify a certain key such as <emphasis>up</emphasis>
-or to invoke a function directly, you can use the format
-<emphasis><key name></emphasis> and <emphasis><function name></emphasis>. For a listing of key
-names see the section on <link linkend="bind">bind</link>. Functions
-are listed in the <link linkend="functions">functions</link>.
-</para>
-
-<para>
-The advantage with using function names directly is that the macros will
-work regardless of the current key bindings, so they are not dependent on
-the user having particular key definitions. This makes them more robust
-and portable, and also facilitates defining of macros in files used by more
-than one user (eg. the system Muttngrc).
-</para>
-
-<para>
-Optionally you can specify a descriptive text after <emphasis>sequence</emphasis>,
-which is shown in the help screens.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> Macro definitions (if any) listed in the help screen(s), are
-silently truncated at the screen width, and are not wrapped.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="color">
-<title>Using color and mono video attributes </title>
-
-<para>
-Usage: <literal>color</literal> <emphasis>object</emphasis> <emphasis>foreground</emphasis> <emphasis>background</emphasis> [ <emphasis>regexp</emphasis> ]
-
-Usage: <literal>color</literal> index <emphasis>foreground</emphasis> <emphasis>background</emphasis> <emphasis>pattern</emphasis>
-
-Usage: <literal>uncolor</literal> index <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
-
-</para>
-
-<para>
-If your terminal supports color, you can spice up Mutt-ng by creating your own
-color scheme. To define the color of an object (type of information), you
-must specify both a foreground color <emphasis role="bold">and</emphasis> a background color (it is not
-possible to only specify one or the other).
-</para>
-
-<para>
-<emphasis>object</emphasis> can be one of:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-attachment
-</para>
-</listitem>
-<listitem>
-
-<para>
-body (match <emphasis>regexp</emphasis> in the body of messages)
-</para>
-</listitem>
-<listitem>
-
-<para>
-bold (highlighting bold patterns in the body of messages)
-</para>
-</listitem>
-<listitem>
-
-<para>
-error (error messages printed by Mutt-ng)
-</para>
-</listitem>
-<listitem>
-
-<para>
-header (match <emphasis>regexp</emphasis> in the message header)
-</para>
-</listitem>
-<listitem>
-
-<para>
-hdrdefault (default color of the message header in the pager)
-</para>
-</listitem>
-<listitem>
-
-<para>
-index (match <emphasis>pattern</emphasis> in the message index)
-</para>
-</listitem>
-<listitem>
-
-<para>
-indicator (arrow or bar used to indicate the current item in a menu)
-</para>
-</listitem>
-<listitem>
-
-<para>
-markers (the ``+'' markers at the beginning of wrapped lines in the pager)
-</para>
-</listitem>
-<listitem>
-
-<para>
-message (informational messages)
-</para>
-</listitem>
-<listitem>
-
-<para>
-normal
-</para>
-</listitem>
-<listitem>
-
-<para>
-quoted (text matching <link linkend="quote-regexp">quote-regexp</link> in the body of a message)
-</para>
-</listitem>
-<listitem>
-
-<para>
-quoted1, quoted2, ..., quoted<emphasis role="bold">N</emphasis> (higher levels of quoting)
-</para>
-</listitem>
-<listitem>
-
-<para>
-search (highlighting of words in the pager)
-</para>
-</listitem>
-<listitem>
-
-<para>
-signature
-</para>
-</listitem>
-<listitem>
-
-<para>
-status (mode lines used to display info about the mailbox or message)
-</para>
-</listitem>
-<listitem>
-
-<para>
-tilde (the ``˜'' used to pad blank lines in the pager)
-</para>
-</listitem>
-<listitem>
-
-<para>
-tree (thread tree drawn in the message index and attachment menu)
-</para>
-</listitem>
-<listitem>
-
-<para>
-underline (highlighting underlined patterns in the body of messages)
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-<emphasis>foreground</emphasis> and <emphasis>background</emphasis> can be one of the following:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-white
-</para>
-</listitem>
-<listitem>
-
-<para>
-black
-</para>
-</listitem>
-<listitem>
-
-<para>
-green
-</para>
-</listitem>
-<listitem>
-
-<para>
-magenta
-</para>
-</listitem>
-<listitem>
-
-<para>
-blue
-</para>
-</listitem>
-<listitem>
-
-<para>
-cyan
-</para>
-</listitem>
-<listitem>
-
-<para>
-yellow
-</para>
-</listitem>
-<listitem>
-
-<para>
-red
-</para>
-</listitem>
-<listitem>
-
-<para>
-default
-</para>
-</listitem>
-<listitem>
-
-<para>
-color<emphasis>x</emphasis>
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-<emphasis>foreground</emphasis> can optionally be prefixed with the keyword <literal>bright</literal> to make
-the foreground color boldfaced (e.g., <literal>brightred</literal>).
-</para>
-
-<para>
-If your terminal supports it, the special keyword <emphasis>default</emphasis> can be
-used as a transparent color. The value <emphasis>brightdefault</emphasis> is also valid.
-If Mutt-ng is linked against the <emphasis>S-Lang</emphasis> library, you also need to set
-the <emphasis>COLORFGBG</emphasis> environment variable to the default colors of your
-terminal for this to work; for example (for Bourne-like shells):
-</para>
-
-<para>
-
-<screen>
-set COLORFGBG="green;black"
-export COLORFGBG
-</screen>
-
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> The <emphasis>S-Lang</emphasis> library requires you to use the <emphasis>lightgray</emphasis>
-and <emphasis>brown</emphasis> keywords instead of <emphasis>white</emphasis> and <emphasis>yellow</emphasis> when
-setting this variable.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> The uncolor command can be applied to the index object only. It
-removes entries from the list. You <emphasis role="bold">must</emphasis> specify the same pattern
-specified in the color command for it to be removed. The pattern ``*'' is
-a special token which means to clear the color index list of all entries.
-</para>
-
-<para>
-Mutt-ng also recognizes the keywords <emphasis>color0</emphasis>, <emphasis>color1</emphasis>, …,
-<emphasis>color</emphasis><emphasis role="bold">N-1</emphasis> (<emphasis role="bold">N</emphasis> being the number of colors supported
-by your terminal). This is useful when you remap the colors for your
-display (for example by changing the color associated with <emphasis>color2</emphasis>
-for your xterm), since color names may then lose their normal meaning.
-</para>
-
-<para>
-If your terminal does not support color, it is still possible change the video
-attributes through the use of the ``mono'' command:
-</para>
-
-<para>
-Usage: <literal>mono</literal> <emphasis><object> <attribute></emphasis> [ <emphasis>regexp</emphasis> ]
-
-Usage: <literal>mono</literal> index <emphasis>attribute</emphasis> <emphasis>pattern</emphasis>
-
-Usage: <literal>unmono</literal> index <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
-
-</para>
-
-<para>
-where <emphasis>attribute</emphasis> is one of the following:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-none
-</para>
-</listitem>
-<listitem>
-
-<para>
-bold
-</para>
-</listitem>
-<listitem>
-
-<para>
-underline
-</para>
-</listitem>
-<listitem>
-
-<para>
-reverse
-</para>
-</listitem>
-<listitem>
-
-<para>
-standout
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="ignore">
-<title>Ignoring (weeding) unwanted message headers </title>
-
-<para>
-Usage: <literal>[un]ignore</literal> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
-</para>
-
-<para>
-Messages often have many header fields added by automatic processing systems,
-or which may not seem useful to display on the screen. This command allows
-you to specify header fields which you don't normally want to see.
-</para>
-
-<para>
-You do not need to specify the full header field name. For example,
-``ignore content-'' will ignore all header fields that begin with the pattern
-``content-''. ``ignore *'' will ignore all headers.
-</para>
-
-<para>
-To remove a previously added token from the list, use the ``unignore'' command.
-The ``unignore'' command will make Mutt-ng display headers with the given pattern.
-For example, if you do ``ignore x-'' it is possible to ``unignore x-mailer''.
-</para>
-
-<para>
-``unignore *'' will remove all tokens from the ignore list.
-</para>
-
-<para>
-For example:
-
-<screen>
-# Sven's draconian header weeding
-ignore *
-unignore from date subject to cc
-unignore organization organisation x-mailer: x-newsreader: x-mailing-list:
-unignore posted-to:
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="alternates">
-<title>Alternative addresses </title>
-
-<para>
-Usage: <literal>[un]alternates</literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
-
-</para>
-
-<para>
-With various functions, mutt will treat messages differently,
-depending on whether you sent them or whether you received them from
-someone else. For instance, when replying to a message that you
-sent to a different party, mutt will automatically suggest to send
-the response to the original message's recipients -- responding to
-yourself won't make much sense in many cases. (See <link linkend="reply-to">reply-to</link>.)
-</para>
-
-<para>
-Many users receive e-mail under a number of different addresses. To
-fully use mutt's features here, the program must be able to
-recognize what e-mail addresses you receive mail under. That's the
-purpose of the <literal>alternates</literal> command: It takes a list of regular
-expressions, each of which can identify an address under which you
-receive e-mail.
-</para>
-
-<para>
-The <literal>unalternates</literal> command can be used to write exceptions to
-<literal>alternates</literal> patterns. If an address matches something in an
-<literal>alternates</literal> command, but you nonetheless do not think it is
-from you, you can list a more precise pattern under an <literal>unalternates</literal>
-command.
-</para>
-
-<para>
-To remove a regular expression from the <literal>alternates</literal> list, use the
-<literal>unalternates</literal> command with exactly the same <emphasis>regexp</emphasis>.
-Likewise, if the <emphasis>regexp</emphasis> for a <literal>alternates</literal> command matches
-an entry on the <literal>unalternates</literal> list, that <literal>unalternates</literal>
-entry will be removed. If the <emphasis>regexp</emphasis> for <literal>unalternates</literal>
-is ``*'', <emphasis>all entries</emphasis> on <literal>alternates</literal> will be removed.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>Format = Flowed </title>
-
-<sect2>
-<title>Introduction </title>
-
-<para>
-Mutt-ng contains support for so-called <literal>format=flowed</literal> messages.
-In the beginning of email, each message had a fixed line width, and
-it was enough for displaying them on fixed-size terminals. But times
-changed, and nowadays hardly anybody still uses fixed-size terminals:
-more people nowaydays use graphical user interfaces, with dynamically
-resizable windows. This led to the demand of a new email format that
-makes it possible for the email client to make the email look nice
-in a resizable window without breaking quoting levels and creating
-an incompatible email format that can also be displayed nicely on
-old fixed-size terminals.
-</para>
-
-<para>
-For introductory information on <literal>format=flowed</literal> messages, see
-<ulink
-URL="http://www.joeclark.org/ffaq.html"
-><http://www.joeclark.org/ffaq.html></ulink
->.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Receiving: Display Setup </title>
-
-<para>
-When you receive emails that are marked as <literal>format=flowed</literal>
-messages, and is formatted correctly, mutt-ng will try to reformat
-the message to optimally fit on your terminal. If you want a fixed
-margin on the right side of your terminal, you can set the
-following:
-</para>
-
-<para>
-
-<screen>
- set wrapmargin = 10
-
-</screen>
-
-</para>
-
-<para>
-The code above makes the line break 10 columns before the right
-side of the terminal.
-</para>
-
-<para>
-If your terminal is so wide that the lines are embarrassingly long,
-you can also set a maximum line length:
-</para>
-
-<para>
-
-<screen>
- set max_line_length = 120
-
-</screen>
-
-</para>
-
-<para>
-The example above will give you lines not longer than 120
-characters.
-</para>
-
-<para>
-When you view at <literal>format=flowed</literal> messages, you will often see
-the quoting hierarchy like in the following example:
-</para>
-
-<para>
-
-<screen>
- >Bill, can you please send last month's progress report to Mr.
- >Morgan? We also urgently need the cost estimation for the new
- >production server that we want to set up before our customer's
- >project will go live.
-
-</screen>
-
-</para>
-
-<para>
-This obviously doesn't look very nice, and it makes it very
-hard to differentiate between text and quoting character. The
-solution is to configure mutt-ng to "stuff" the quoting:
-</para>
-
-<para>
-
-<screen>
- set stuff_quoted
-
-</screen>
-
-</para>
-
-<para>
-This will lead to a nicer result that is easier to read:
-</para>
-
-<para>
-
-<screen>
- > Bill, can you please send last month's progress report to Mr.
- > Morgan? We also urgently need the cost estimation for the new
- > production server that we want to set up before our customer's
- > project will go live.
-
-</screen>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Sending </title>
-
-<para>
-If you want mutt-ng to send emails with <literal>format=flowed</literal> set, you
-need to explicitly set it:
-</para>
-
-<para>
-
-<screen>
- set text_flowed
-
-</screen>
-
-</para>
-
-<para>
-Additionally, you have to use an editor which supports writing
-<literal>format=flowed</literal>-conforming emails. For vim, this is done by
-adding <literal>w</literal> to the formatoptions (see <literal>:h formatoptions</literal> and
-<literal>:h fo-table</literal>) when writing emails.
-</para>
-
-<para>
-Also note that <emphasis>format=flowed</emphasis> knows about ``space-stuffing'',
-that is, when sending messages, some kinds of lines have to be
-indented with a single space on the sending side. On the receiving
-side, the first space (if any) is removed. As a consequence and in
-addition to the above simple setting, please keep this in mind when
-making manual formattings within the editor. Also note that mutt-ng
-currently violates the standard (RfC 3676) as it does not
-space-stuff lines starting with:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-<literal>></literal> This is <emphasis>not</emphasis> the quote character but a right
-angle used for other reasons
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-<literal>From</literal> with a trailing space.
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-just a space for formatting reasons
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-Please make sure that you manually prepend a space to each of them.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Additional Notes</title>
-
-<para>
- For completeness, the <link linkend="delete-space">delete-space</link> variable provides the mechanism
-to generate a <literal>DelSp=yes</literal> parameter on <emphasis>outgoing</emphasis> messages.
-According to the standard, clients receiving a <literal>format=flowed</literal>
-messages should delete the last space of a flowed line but still
-interpret the line as flowed. Because flowed lines usually contain
-only one space at the end, this parameter would make the receiving
-client concatenate the last word of the previous with the first of
-the current line <emphasis>without</emphasis> a space. This makes ordinary text
-unreadable and is intended for languages rarely using spaces. So
-please use this setting only if you're sure what you're doing.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="lists">
-<title>Mailing lists </title>
-
-<para>
-Usage: <literal>[un]lists</literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
-
-Usage: <literal>[un]subscribe</literal> <emphasis>regexp</emphasis> [ <emphasis>regexp</emphasis> ... ]
-</para>
-
-<para>
-Mutt-ng has a few nice features for <link linkend="using-lists">using-lists</link>. In order to take advantage of them, you must
-specify which addresses belong to mailing lists, and which mailing
-lists you are subscribed to. Once you have done this, the <link linkend="func-list-reply">list-reply</link> function will work for all known lists.
-Additionally, when you send a message to a subscribed list, mutt will
-add a Mail-Followup-To header to tell other users' mail user agents
-not to send copies of replies to your personal address. Note that
-the Mail-Followup-To header is a non-standard extension which is not
-supported by all mail user agents. Adding it is not bullet-proof against
-receiving personal CCs of list messages. Also note that the generation
-of the Mail-Followup-To header is controlled by the <link linkend="followup-to">followup-to</link> configuration variable.
-</para>
-
-<para>
-More precisely, Mutt-ng maintains lists of patterns for the addresses
-of known and subscribed mailing lists. Every subscribed mailing
-list is known. To mark a mailing list as known, use the ``lists''
-command. To mark it as subscribed, use ``subscribe''.
-</para>
-
-<para>
-You can use regular expressions with both commands. To mark all
-messages sent to a specific bug report's address on mutt's bug
-tracking system as list mail, for instance, you could say
-``subscribe [0-9]*@bugs.guug.de''. Often, it's sufficient to just
-give a portion of the list's e-mail address.
-</para>
-
-<para>
-Specify as much of the address as you need to to remove ambiguity. For
-example, if you've subscribed to the Mutt-ng mailing list, you will receive mail
-addressed to <emphasis>mutt-users@mutt.org</emphasis>. So, to tell Mutt-ng that this is a
-mailing list, you could add ``lists mutt-users'' to your
-initialization file. To tell mutt that you are subscribed to it,
-add ``subscribe mutt-users'' to your initialization file instead.
-If you also happen to get mail from someone whose address is
-<emphasis>mutt-users@example.com</emphasis>, you could use ``lists mutt-users@mutt\\.org''
-or ``subscribe mutt-users@mutt\\.org'' to
-match only mail from the actual list.
-</para>
-
-<para>
-The ``unlists'' command is used to remove a token from the list of
-known and subscribed mailing-lists. Use ``unlists *'' to remove all
-tokens.
-</para>
-
-<para>
-To remove a mailing list from the list of subscribed mailing lists,
-but keep it on the list of known mailing lists, use ``unsubscribe''.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="mbox-hook">
-<title>Using Multiple spool mailboxes </title>
-
-<para>
-Usage: <literal>mbox-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
-</para>
-
-<para>
-This command is used to move read messages from a specified mailbox to a
-different mailbox automatically when you quit or change folders.
-<emphasis>pattern</emphasis> is a regular expression specifying the mailbox to treat as a
-``spool'' mailbox and <emphasis>mailbox</emphasis> specifies where mail should be saved when
-read.
-</para>
-
-<para>
-Unlike some of the other <emphasis>hook</emphasis> commands, only the <emphasis>first</emphasis> matching
-pattern is used (it is not possible to save read mail in more than a single
-mailbox).
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="mailboxes">
-<title>Defining mailboxes which receive mail </title>
-
-<para>
-Usage: <literal>[un]mailboxes</literal> [!]<emphasis>filename</emphasis> [ <emphasis>filename</emphasis> ... ]
-</para>
-
-<para>
-This command specifies folders which can receive mail and
-which will be checked for new messages. By default, the
-main menu status bar displays how many of these folders have
-new messages.
-</para>
-
-<para>
-When changing folders, pressing <emphasis>space</emphasis> will cycle
-through folders with new mail.
-</para>
-
-<para>
-Pressing TAB in the directory browser will bring up a menu showing the files
-specified by the <literal>mailboxes</literal> command, and indicate which contain new
-messages. Mutt-ng will automatically enter this mode when invoked from the
-command line with the <literal>-y</literal> option.
-</para>
-
-<para>
-The ``unmailboxes'' command is used to remove a token from the list
-of folders which receive mail. Use ``unmailboxes *'' to remove all
-tokens.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> new mail is detected by comparing the last modification time to
-the last access time. Utilities like <literal>biff</literal> or <literal>frm</literal> or any other
-program which accesses the mailbox might cause Mutt-ng to never detect new mail
-for that mailbox if they do not properly reset the access time. Backup
-tools are another common reason for updated access times.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> the filenames in the <literal>mailboxes</literal> command are resolved when
-the command is executed, so if these names contain <link linkend="shortcuts">shortcuts</link> (such as ``='' and ``!''), any variable
-definition that affect these characters (like <link linkend="folder">folder</link> and <link linkend="spoolfile">spoolfile</link>)
-should be executed before the <literal>mailboxes</literal> command.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="my-hdr">
-<title>User defined headers </title>
-
-<para>
-Usage:
-
-<literal>my_hdr</literal> <emphasis>string</emphasis>
-
-<literal>unmy_hdr</literal> <emphasis>field</emphasis> [ <emphasis>field</emphasis> ... ]
-</para>
-
-<para>
-The ``my_hdr'' command allows you to create your own header
-fields which will be added to every message you send.
-</para>
-
-<para>
-For example, if you would like to add an ``Organization:'' header field to
-all of your outgoing messages, you can put the command
-</para>
-
-<para>
-<screen>
-my_hdr Organization: A Really Big Company, Anytown, USA
-</screen>
-</para>
-
-<para>
-in your <literal>.muttrc</literal>.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> space characters are <emphasis>not</emphasis> allowed between the keyword and
-the colon (``:''). The standard for electronic mail (RFC822) says that
-space is illegal there, so Mutt-ng enforces the rule.
-</para>
-
-<para>
-If you would like to add a header field to a single message, you should
-either set the <link linkend="edit-headers">edit-headers</link> variable,
-or use the <emphasis>edit-headers</emphasis> function (default: ``E'') in the send-menu so
-that you can edit the header of your message along with the body.
-</para>
-
-<para>
-To remove user defined header fields, use the ``unmy_hdr''
-command. You may specify an asterisk (``*'') to remove all header
-fields, or the fields to remove. For example, to remove all ``To'' and
-``Cc'' header fields, you could use:
-</para>
-
-<para>
-<screen>
-unmy_hdr to cc
-</screen>
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="hdr-order">
-<title>Defining the order of headers when viewing messages </title>
-
-<para>
-Usage: <literal>hdr_order</literal> <emphasis>header1</emphasis> <emphasis>header2</emphasis> <emphasis>header3</emphasis>
-</para>
-
-<para>
-With this command, you can specify an order in which mutt will attempt
-to present headers to you when viewing messages.
-</para>
-
-<para>
-``unhdr_order *'' will clear all previous headers from the order list,
-thus removing the header order effects set by the system-wide startup
-file.
-</para>
-
-<para>
-
-<screen>
-hdr_order From Date: From: To: Cc: Subject:
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="save-hook">
-<title>Specify default save filename </title>
-
-<para>
-Usage: <literal>save-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>filename</emphasis>
-</para>
-
-<para>
-This command is used to override the default filename used when saving
-messages. <emphasis>filename</emphasis> will be used as the default filename if the message is
-<emphasis>From:</emphasis> an address matching <emphasis>regexp</emphasis> or if you are the author and the
-message is addressed <emphasis>to:</emphasis> something matching <emphasis>regexp</emphasis>.
-</para>
-
-<para>
-See <link linkend="pattern-hook">pattern-hook</link> for information on the exact format of <emphasis>pattern</emphasis>.
-</para>
-
-<para>
-Examples:
-</para>
-
-<para>
-
-<screen>
-save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
-save-hook aol\\.com$ +spam
-</screen>
-
-</para>
-
-<para>
-Also see the <link linkend="fcc-save-hook">fcc-save-hook</link> command.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="fcc-hook">
-<title>Specify default Fcc: mailbox when composing </title>
-
-<para>
-Usage: <literal>fcc-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
-</para>
-
-<para>
-This command is used to save outgoing mail in a mailbox other than
-<link linkend="record">record</link>. Mutt-ng searches the initial list of
-message recipients for the first matching <emphasis>regexp</emphasis> and uses <emphasis>mailbox</emphasis>
-as the default Fcc: mailbox. If no match is found the message will be saved
-to <link linkend="record">record</link> mailbox.
-</para>
-
-<para>
-See <link linkend="pattern-hook">pattern-hook</link> for information on the exact format of <emphasis>pattern</emphasis>.
-</para>
-
-<para>
-Example: <literal>fcc-hook [@.]aol\\.com$ +spammers</literal>
-</para>
-
-<para>
-The above will save a copy of all messages going to the aol.com domain to
-the `+spammers' mailbox by default. Also see the <link linkend="fcc-save-hook">fcc-save-hook</link> command.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="fcc-save-hook">
-<title>Specify default save filename and default Fcc: mailbox at once </title>
-
-<para>
-Usage: <literal>fcc-save-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>mailbox</emphasis>
-</para>
-
-<para>
-This command is a shortcut, equivalent to doing both a <link linkend="fcc-hook">fcc-hook</link>
-and a <link linkend="save-hook">save-hook</link> with its arguments.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="send-hook">
-<title>Change settings based upon message recipients </title>
-
-<para>
-Usage: <literal>reply-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
-
-Usage: <literal>send-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
-
-Usage: <literal>send2-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
-</para>
-
-<para>
-These commands can be used to execute arbitrary configuration commands based
-upon recipients of the message. <emphasis>pattern</emphasis> is a regular expression
-matching the desired address. <emphasis>command</emphasis> is executed when <emphasis>regexp</emphasis>
-matches recipients of the message.
-</para>
-
-<para>
-<literal>reply-hook</literal> is matched against the message you are <emphasis>replying</emphasis>
-<emphasis role="bold">to</emphasis>, instead of the message you are <emphasis>sending</emphasis>. <literal>send-hook</literal> is
-matched against all messages, both <emphasis>new</emphasis> and <emphasis>replies</emphasis>. <emphasis role="bold">Note:</emphasis>
-<literal>reply-hook</literal>s are matched <emphasis role="bold">before</emphasis> the <literal>send-hook</literal>, <emphasis role="bold">regardless</emphasis>
-of the order specified in the users's configuration file.
-</para>
-
-<para>
-<literal>send2-hook</literal> is matched every time a message is changed, either
-by editing it, or by using the compose menu to change its recipients
-or subject. <literal>send2-hook</literal> is executed after <literal>send-hook</literal>, and
-can, e.g., be used to set parameters such as the <link linkend="sendmail">sendmail</link> variable depending on the message's sender
-address.
-</para>
-
-<para>
-For each type of <literal>send-hook</literal> or <literal>reply-hook</literal>, when multiple matches
-occur, commands are executed in the order they are specified in the muttrc
-(for that type of hook).
-</para>
-
-<para>
-See <link linkend="pattern-hook">pattern-hook</link> for information on the exact format of <emphasis>pattern</emphasis>.
-</para>
-
-<para>
-Example: <literal>send-hook mutt "set mime_forward signature=''"</literal>
-</para>
-
-<para>
-Another typical use for this command is to change the values of the
-<link linkend="attribution">attribution</link>, <link linkend="signature">signature</link> and <link linkend="locale">locale</link>
-variables in order to change the language of the attributions and
-signatures based upon the recipients.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> the send-hook's are only executed ONCE after getting the initial
-list of recipients. Adding a recipient after replying or editing the
-message will NOT cause any send-hook to be executed. Also note that
-my_hdr commands which modify recipient headers, or the message's
-subject, don't have any effect on the current message when executed
-from a send-hook.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="message-hook">
-<title>Change settings before formatting a message </title>
-
-<para>
-Usage: <literal>message-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>command</emphasis>
-</para>
-
-<para>
-This command can be used to execute arbitrary configuration commands
-before viewing or formatting a message based upon information about the message.
-<emphasis>command</emphasis> is executed if the <emphasis>pattern</emphasis> matches the message to be
-displayed. When multiple matches occur, commands are executed in the order
-they are specified in the muttrc.
-</para>
-
-<para>
-See <link linkend="pattern-hook">pattern-hook</link> for
-information on the exact format of <emphasis>pattern</emphasis>.
-</para>
-
-<para>
-Example:
-
-<screen>
-message-hook ~A 'set pager=builtin'
-message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject: .*\""'
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="crypt-hook">
-<title>Choosing the cryptographic key of the recipient </title>
-
-<para>
-Usage: <literal>crypt-hook</literal> <emphasis>pattern</emphasis> <emphasis>keyid</emphasis>
-</para>
-
-<para>
-When encrypting messages with PGP or OpenSSL, you may want to associate a certain
-key with a given e-mail address automatically, either because the
-recipient's public key can't be deduced from the destination address,
-or because, for some reasons, you need to override the key Mutt-ng would
-normally use. The crypt-hook command provides a method by which you can
-specify the ID of the public key to be used when encrypting messages to
-a certain recipient.
-</para>
-
-<para>
-The meaning of "key id" is to be taken broadly in this context: You
-can either put a numerical key ID here, an e-mail address, or even
-just a real name.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="push">
-<title>Adding key sequences to the keyboard buffer </title>
-
-<para>
-Usage: <literal>push</literal> <emphasis>string</emphasis>
-</para>
-
-<para>
-This command adds the named string to the keyboard buffer. The string may
-contain control characters, key names and function names like the sequence
-string in the <link linkend="macro">macro</link> command. You may use it to
-automatically run a sequence of commands at startup, or when entering
-certain folders.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="exec">
-<title>Executing functions </title>
-
-<para>
-Usage: <literal>exec</literal> <emphasis>function</emphasis> [ <emphasis>function</emphasis> ... ]
-</para>
-
-<para>
-This command can be used to execute any function. Functions are
-listed in the <link linkend="functions">functions</link>.
-``exec function'' is equivalent to ``push <function>''.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="score-command">
-<title>Message Scoring </title>
-
-<para>
-Usage: <literal>score</literal> <emphasis>pattern</emphasis> <emphasis>value</emphasis>
-
-Usage: <literal>unscore</literal> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
-</para>
-
-<para>
-In situations where you have to cope with a lot of emails, e.g.
-when you read many different mailing lists, and take part in
-discussions, it is always useful to have the important messages
-marked and the annoying messages or the ones that you aren't
-interested in deleted. For this purpose, mutt-ng features a
-mechanism called ``scoring''.
-</para>
-
-<para>
-When you use scoring, every message has a base score of 0. You
-can then use the <literal>score</literal> command to define patterns and a
-positive or negative value associated with it. When a pattern
-matches a message, the message's score will be raised or lowered by
-the amount of the value associated with the pattern.
-</para>
-
-<para>
-
-<screen>
-score "~f nion@muttng\.org" 50
-score "~f @sco\.com" -100
-</screen>
-
-</para>
-
-<para>
-If the pattern matches, it is also possible to set the score
-value of the current message to a certain value and then stop
-evaluation:
-</para>
-
-<para>
-
-<screen>
-score "~f santaclaus@northpole\.int" =666
-</screen>
-
-</para>
-
-<para>
-What is important to note is that negative score values will be
-rounded up to 0.
-</para>
-
-<para>
-To make scoring actually useful, the score must be applied in
-some way. That's what the <emphasis>score thresholds</emphasis> are for. Currently,
-there are three score thresholds:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-flag threshold: when a message has a score value equal or higher
-than the flag threshold, it will be flagged.
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-read threshold: when a message has a score value equal or lower
-than the read threshold, it will be marked as read.
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-delete threshold: when a message has a score value equal or
-lower than the delete threshold, it will be marked as deleted.
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-These three thresholds can be set via the variables <link linkend="score-threshold-flag">score-threshold-flag</link>, <link linkend="score-threshold-read">score-threshold-read</link>, <link linkend="score-threshold-delete">score-threshold-delete</link> and. By
-default, <link linkend="score-threshold-read">score-threshold-read</link> and <link linkend="score-threshold-delete">score-threshold-delete</link> are set to
-<literal>-1</literal>, which means that in the default threshold configuration no
-message will ever get marked as read or deleted.
-</para>
-
-<para>
-Scoring gets especially interesting when combined with the <literal>color</literal> command
-and the <literal>˜n</literal> pattern:
-</para>
-
-<para>
-
-<screen>
-color index black yellow "~n 10-"
-color index red yellow "~n 100-"
-</screen>
-
-</para>
-
-<para>
-The rules above mark all messages with a score between 10 and 99
-with black and yellow, and messages with a score greater or equal
-100 with red and yellow. This might be unusual to you if you're used
-to e.g. slrn's scoring mechanism, but it is more flexible, as it
-visually marks different scores.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="spam">
-<title>Spam detection </title>
-
-<para>
-Usage: <literal>spam</literal> <emphasis>pattern</emphasis> <emphasis>format</emphasis>
-
-Usage: <literal>nospam</literal> <emphasis>pattern</emphasis>
-</para>
-
-<para>
-Mutt-ng has generalized support for external spam-scoring filters.
-By defining your spam patterns with the <literal>spam</literal> and <literal>nospam</literal>
-commands, you can <emphasis>limit</emphasis>, <emphasis>search</emphasis>, and <emphasis>sort</emphasis> your
-mail based on its spam attributes, as determined by the external
-filter. You also can display the spam attributes in your index
-display using the <literal>%H</literal> selector in the <link linkend="index-format">index-format</link> variable. (Tip: try <literal>%?H?[%H] ?</literal>
-to display spam tags only when they are defined for a given message.)
-</para>
-
-<para>
-Your first step is to define your external filter's spam patterns using
-the <literal>spam</literal> command. <emphasis>pattern</emphasis> should be a regular expression
-that matches a header in a mail message. If any message in the mailbox
-matches this regular expression, it will receive a ``spam tag'' or
-``spam attribute'' (unless it also matches a <literal>nospam</literal> pattern -- see
-below.) The appearance of this attribute is entirely up to you, and is
-governed by the <emphasis>format</emphasis> parameter. <emphasis>format</emphasis> can be any static
-text, but it also can include back-references from the <emphasis>pattern</emphasis>
-expression. (A regular expression ``back-reference'' refers to a
-sub-expression contained within parentheses.) <literal>%1</literal> is replaced with
-the first back-reference in the regex, <literal>%2</literal> with the second, etc.
-</para>
-
-<para>
-If you're using multiple spam filters, a message can have more than
-one spam-related header. You can define <literal>spam</literal> patterns for each
-filter you use. If a message matches two or more of these patterns, and
-the $spam_separator variable is set to a string, then the
-message's spam tag will consist of all the <emphasis>format</emphasis> strings joined
-together, with the value of $spam_separator separating
-them.
-</para>
-
-<para>
-For example, suppose I use DCC, SpamAssassin, and PureMessage. I might
-define these spam settings:
-
-<screen>
-spam "X-DCC-.*-Metrics:.*(....)=many" "90+/DCC-%1"
-spam "X-Spam-Status: Yes" "90+/SA"
-spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM"
-set spam_separator=", "
-</screen>
-
-</para>
-
-<para>
-If I then received a message that DCC registered with ``many'' hits
-under the ``Fuz2'' checksum, and that PureMessage registered with a
-97% probability of being spam, that message's spam tag would read
-<literal>90+/DCC-Fuz2, 97/PM</literal>. (The four characters before ``=many'' in a
-DCC report indicate the checksum used -- in this case, ``Fuz2''.)
-</para>
-
-<para>
-If the $spam_separator variable is unset, then each
-spam pattern match supersedes the previous one. Instead of getting
-joined <emphasis>format</emphasis> strings, you'll get only the last one to match.
-</para>
-
-<para>
-The spam tag is what will be displayed in the index when you use
-<literal>%H</literal> in the <literal>$index_format</literal> variable. It's also the
-string that the <literal>˜H</literal> pattern-matching expression matches against for
-<emphasis>search</emphasis> and <emphasis>limit</emphasis> functions. And it's what sorting by spam
-attribute will use as a sort key.
-</para>
-
-<para>
-That's a pretty complicated example, and most people's actual
-environments will have only one spam filter. The simpler your
-configuration, the more effective mutt can be, especially when it comes
-to sorting.
-</para>
-
-<para>
-Generally, when you sort by spam tag, mutt will sort <emphasis>lexically</emphasis> --
-that is, by ordering strings alphnumerically. However, if a spam tag
-begins with a number, mutt will sort numerically first, and lexically
-only when two numbers are equal in value. (This is like UNIX's
-<literal>sort -n</literal>.) A message with no spam attributes at all -- that is, one
-that didn't match <emphasis>any</emphasis> of your <literal>spam</literal> patterns -- is sorted at
-lowest priority. Numbers are sorted next, beginning with 0 and ranging
-upward. Finally, non-numeric strings are sorted, with ``a'' taking lower
-priority than ``z''. Clearly, in general, sorting by spam tags is most
-effective when you can coerce your filter to give you a raw number. But
-in case you can't, mutt can still do something useful.
-</para>
-
-<para>
-The <literal>nospam</literal> command can be used to write exceptions to <literal>spam</literal>
-patterns. If a header pattern matches something in a <literal>spam</literal> command,
-but you nonetheless do not want it to receive a spam tag, you can list a
-more precise pattern under a <literal>nospam</literal> command.
-</para>
-
-<para>
-If the <emphasis>pattern</emphasis> given to <literal>nospam</literal> is exactly the same as the
-<emphasis>pattern</emphasis> on an existing <literal>spam</literal> list entry, the effect will be to
-remove the entry from the spam list, instead of adding an exception.
-Likewise, if the <emphasis>pattern</emphasis> for a <literal>spam</literal> command matches an entry
-on the <literal>nospam</literal> list, that <literal>nospam</literal> entry will be removed. If the
-<emphasis>pattern</emphasis> for <literal>nospam</literal> is ``*'', <emphasis>all entries on both lists</emphasis>
-will be removed. This might be the default action if you use <literal>spam</literal>
-and <literal>nospam</literal> in conjunction with a <literal>folder-hook</literal>.
-</para>
-
-<para>
-You can have as many <literal>spam</literal> or <literal>nospam</literal> commands as you like.
-You can even do your own primitive spam detection within mutt -- for
-example, if you consider all mail from <literal>MAILER-DAEMON</literal> to be spam,
-you can use a <literal>spam</literal> command like this:
-</para>
-
-<para>
-
-<screen>
-spam "^From: .*MAILER-DAEMON" "999"
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="set">
-<title>Setting variables </title>
-
-<para>
-Usage: <literal>set</literal> [no|inv]<emphasis>variable</emphasis>[=<emphasis>value</emphasis>] [ <emphasis>variable</emphasis> ... ]
-
-Usage: <literal>toggle</literal> <emphasis>variable</emphasis> [<emphasis>variable</emphasis> ... ]
-
-Usage: <literal>unset</literal> <emphasis>variable</emphasis> [<emphasis>variable</emphasis> ... ]
-
-Usage: <literal>reset</literal> <emphasis>variable</emphasis> [<emphasis>variable</emphasis> ... ]
-</para>
-
-<para>
-This command is used to set (and unset) <link linkend="variables">variables</link>. There are four basic types of variables:
-boolean, number, string and quadoption. <emphasis>boolean</emphasis> variables can be
-<emphasis>set</emphasis> (true) or <emphasis>unset</emphasis> (false). <emphasis>number</emphasis> variables can be
-assigned a positive integer value.
-</para>
-
-<para>
-<emphasis>string</emphasis> variables consist of any number of printable characters.
-<emphasis>strings</emphasis> must be enclosed in quotes if they contain spaces or tabs. You
-may also use the ``C'' escape sequences <emphasis role="bold">\n</emphasis> and <emphasis role="bold">\t</emphasis> for
-newline and tab, respectively.
-</para>
-
-<para>
-<emphasis>quadoption</emphasis> variables are used to control whether or not to be prompted
-for certain actions, or to specify a default action. A value of <emphasis>yes</emphasis>
-will cause the action to be carried out automatically as if you had answered
-yes to the question. Similarly, a value of <emphasis>no</emphasis> will cause the the
-action to be carried out as if you had answered ``no.'' A value of
-<emphasis>ask-yes</emphasis> will cause a prompt with a default answer of ``yes'' and
-<emphasis>ask-no</emphasis> will provide a default answer of ``no.''
-</para>
-
-<para>
-Prefixing a variable with ``no'' will unset it. Example: <literal>set noaskbcc</literal>.
-</para>
-
-<para>
-For <emphasis>boolean</emphasis> variables, you may optionally prefix the variable name with
-<literal>inv</literal> to toggle the value (on or off). This is useful when writing
-macros. Example: <literal>set invsmart_wrap</literal>.
-</para>
-
-<para>
-The <literal>toggle</literal> command automatically prepends the <literal>inv</literal> prefix to all
-specified variables.
-</para>
-
-<para>
-The <literal>unset</literal> command automatically prepends the <literal>no</literal> prefix to all
-specified variables.
-</para>
-
-<para>
-Using the enter-command function in the <emphasis>index</emphasis> menu, you can query the
-value of a variable by prefixing the name of the variable with a question
-mark:
-</para>
-
-<para>
-
-<screen>
-set ?allow_8bit
-</screen>
-
-</para>
-
-<para>
-The question mark is actually only required for boolean and quadoption
-variables.
-</para>
-
-<para>
-The <literal>reset</literal> command resets all given variables to the compile time
-defaults (hopefully mentioned in this manual). If you use the command
-<literal>set</literal> and prefix the variable with ``&'' this has the same
-behavior as the reset command.
-</para>
-
-<para>
-With the <literal>reset</literal> command there exists the special variable ``all'',
-which allows you to reset all variables to their system defaults.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="source">
-<title>Reading initialization commands from another file </title>
-
-<para>
-Usage: <literal>source</literal> <emphasis>filename</emphasis> [ <emphasis>filename</emphasis> ... ]
-</para>
-
-<para>
-This command allows the inclusion of initialization commands
-from other files. For example, I place all of my aliases in
-<literal>˜/.mail_aliases</literal> so that I can make my
-<literal>˜/.muttrc</literal> readable and keep my aliases private.
-</para>
-
-<para>
-If the filename begins with a tilde (``˜''), it will be expanded to the
-path of your home directory.
-</para>
-
-<para>
-If the filename ends with a vertical bar (|), then <emphasis>filename</emphasis> is
-considered to be an executable program from which to read input (eg.
-<literal>source ˜/bin/myscript|</literal>).
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="unhook">
-<title>Removing hooks </title>
-
-<para>
-Usage: <literal>unhook</literal> [ * | <emphasis>hook-type</emphasis> ]
-</para>
-
-<para>
-This command permits you to flush hooks you have previously defined.
-You can either remove all hooks by giving the ``*'' character as an
-argument, or you can remove all hooks of a specific type by saying
-something like <literal>unhook send-hook</literal>.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="sect:sharingsetups">
-<title>Sharing Setups </title>
-
-<sect2>
-<title>Character Sets </title>
-
-<para>
-As users may run mutt-ng on different systems, the configuration
-must be maintained because it's likely that people want to use the
-setup everywhere they use mutt-ng. And mutt-ng tries to help where it
-can.
-</para>
-
-<para>
-To not produce conflicts with different character sets, mutt-ng
-allows users to specify in which character set their configuration
-files are encoded. Please note that while reading the configuration
-files, this is only respected after the corresponding declaration
-appears. It's advised to put the following at the very beginning of a
-users muttngrc:
-</para>
-
-<para>
-
-<screen>
-set config_charset = "..."
-</screen>
-
-</para>
-
-<para>
-and replacing the dots with the actual character set. To avoid
-problems while maintaining the setup, vim user's may want to use
-modelines as show in:
-</para>
-
-<para>
-
-<screen>
-# vim:fileencoding=...:
-</screen>
-
-</para>
-
-<para>
-while, again, replacing the dots with the appropriate name. This
-tells vim as which character set to read and save the file.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Modularization </title>
-
-<para>
-``Modularization'' means to divide the setup into several files
-while sorting the options or commands by topic. Especially for
-longer setups (e.g. with many hooks), this helps maintaining it
-and solving trouble.
-</para>
-
-<para>
-When using separation, setups may be, as a whole or in
-fractions, shared over different systems.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Conditional parts </title>
-
-<para>
-When using a configuration on different systems, the user may not
-always have influence on how mutt-ng is installed and which features
-it includes.
-</para>
-
-<para>
-To solve this, mutt-ng contain a feature based on the ``ifdef''
-patch written for mutt. Its basic syntax is:
-</para>
-
-<para>
-
-<screen>
-ifdef <item> <command>
-ifndef <item> <command>
-</screen>
-
-</para>
-
-<para>
-...whereby <literal><item></literal> can be one of:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-a function name
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-a variable name
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-a menu name
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-a feature name
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-All available functions, variables and menus are documented
-elsewhere in this manual but ``features'' is specific to these two
-commands. To test for one, prefix one of the following keywords with
-<literal>feature_</literal>:
-</para>
-
-<para>
-
-<screen>
-ncurses, slang, iconv, idn, dotlock, standalone, pop, nntp, imap, ssl,
-gnutls, sasl, sasl2, libesmtp, compressed, color, classic_pgp,
-classic_smime, gpgme, header_cache
-</screen>
-
-</para>
-
-<para>
-As an example, one can use the following in
-<literal>˜/.muttngrc</literal>:
-</para>
-
-<para>
-
-<screen>
-ifdef feature_imap 'source ~/.mutt-ng/setup-imap'
-ifdef feature_pop 'source ~/.mutt-ng/setup-pop'
-ifdef feature_nntp 'source ~/.mutt-ng/setup-nntp'
-</screen>
-
-</para>
-
-<para>
-...to only source <literal>˜/.mutt-ng/setup-imap</literal> if IMAP
-support is built in, only source <literal>˜/.mutt-ng/setup-pop</literal>
-if POP support is built in and only source
-<literal>˜/.mutt-ng/setup-nntp</literal> if NNTP support is built in.
-</para>
-
-<para>
-An example for testing for variable names can be used if users
-use different revisions of mutt-ng whereby the older one may not
-have a certain variable. To test for the availability of <link linkend="imap-mail-check">imap-mail-check</link>,
-use:
-</para>
-
-<para>
-
-<screen>
-ifdef imap_mail_check 'set imap_mail_check = 300'
-</screen>
-
-</para>
-
-<para>
-Provided for completeness is the test for menu names. To set <link linkend="pager-index-lines">pager-index-lines</link> only if the pager
-menu is available, use:
-</para>
-
-<para>
-
-<screen>
-ifdef pager 'set pager_index_lines = 10'
-</screen>
-
-</para>
-
-<para>
-For completeness, too, the opposite of <literal>ifdef</literal> is provided:
-<literal>ifndef</literal> which only executes the command if the test fails. For
-example, the following two examples are equivalent:
-</para>
-
-<para>
-
-<screen>
-ifdef feature_ncurses 'source ~/.mutt-ng/setup-ncurses'
-ifndef feature_ncurses 'source ~/.mutt-ng/setup-slang'
-</screen>
-
-</para>
-
-<para>
-...and...
-</para>
-
-<para>
-
-<screen>
-ifdef feature_slang 'source ~/.mutt-ng/setup-slang'
-ifndef feature_slang 'source ~/.mutt-ng/setup-ncurses'
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1>
-<title>Obsolete Variables </title>
-
-<para>
-In the process of ensuring and creating more consistency, many
-variables have been renamed and some of the old names were already
-removed. Please see <link linkend="sect-obsolete">sect-obsolete</link>
-for a complete list.
-</para>
-
-<para>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-</chapter>
-
-<chapter>
-<title>Advanced Usage </title>
-
-<sect1 id="regexp">
-<title>Regular Expressions </title>
-
-<para>
-All string patterns in Mutt-ng including those in more complex
-<link linkend="patterns">patterns</link> must be specified
-using regular expressions (regexp) in the ``POSIX extended'' syntax (which
-is more or less the syntax used by egrep and GNU awk). For your
-convenience, we have included below a brief description of this syntax.
-</para>
-
-<para>
-The search is case sensitive if the pattern contains at least one upper
-case letter, and case insensitive otherwise. Note that ``\''
-must be quoted if used for a regular expression in an initialization
-command: ``\\''.
-</para>
-
-<para>
-A regular expression is a pattern that describes a set of strings.
-Regular expressions are constructed analogously to arithmetic
-expressions, by using various operators to combine smaller expressions.
-</para>
-
-<para>
-Note that the regular expression can be enclosed/delimited by either "
-or ' which is useful if the regular expression includes a white-space
-character. See <link linkend="muttrc-syntax">muttrc-syntax</link>
-for more information on " and ' delimiter processing. To match a
-literal " or ' you must preface it with \ (backslash).
-</para>
-
-<para>
-The fundamental building blocks are the regular expressions that match
-a single character. Most characters, including all letters and digits,
-are regular expressions that match themselves. Any metacharacter with
-special meaning may be quoted by preceding it with a backslash.
-</para>
-
-<para>
-The period ``.'' matches any single character. The caret ``ˆ'' and
-the dollar sign ``$'' are metacharacters that respectively match
-the empty string at the beginning and end of a line.
-</para>
-
-<para>
-A list of characters enclosed by ``['' and ``]'' matches any
-single character in that list; if the first character of the list
-is a caret ``ˆ'' then it matches any character <emphasis role="bold">not</emphasis> in the
-list. For example, the regular expression <emphasis role="bold">[0123456789]</emphasis>
-matches any single digit. A range of ASCII characters may be specified
-by giving the first and last characters, separated by a hyphen
-``-''. Most metacharacters lose their special meaning inside
-lists. To include a literal ``]'' place it first in the list.
-Similarly, to include a literal ``ˆ'' place it anywhere but first.
-Finally, to include a literal hyphen ``-'' place it last.
-</para>
-
-<para>
-Certain named classes of characters are predefined. Character classes
-consist of ``[:'', a keyword denoting the class, and ``:]''.
-The following classes are defined by the POSIX standard:
-</para>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term>[:alnum:]</term>
-<listitem>
-<para>
-Alphanumeric characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:alpha:]</term>
-<listitem>
-<para>
-Alphabetic characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:blank:]</term>
-<listitem>
-<para>
-Space or tab characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:cntrl:]</term>
-<listitem>
-<para>
-Control characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:digit:]</term>
-<listitem>
-<para>
-Numeric characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:graph:]</term>
-<listitem>
-<para>
-Characters that are both printable and visible. (A space is printable,
-but not visible, while an ``a'' is both.)
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:lower:]</term>
-<listitem>
-<para>
-Lower-case alphabetic characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:print:]</term>
-<listitem>
-<para>
-Printable characters (characters that are not control characters.)
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:punct:]</term>
-<listitem>
-<para>
-Punctuation characters (characters that are not letter, digits, control
-characters, or space characters).
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:space:]</term>
-<listitem>
-<para>
-Space characters (such as space, tab and formfeed, to name a few).
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:upper:]</term>
-<listitem>
-<para>
-Upper-case alphabetic characters.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>[:xdigit:]</term>
-<listitem>
-<para>
-Characters that are hexadecimal digits.
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-A character class is only valid in a regular expression inside the
-brackets of a character list. Note that the brackets in these
-class names are part of the symbolic names, and must be included
-in addition to the brackets delimiting the bracket list. For
-example, <emphasis role="bold">[[:digit:]]</emphasis> is equivalent to
-<emphasis role="bold">[0-9]</emphasis>.
-</para>
-
-<para>
-Two additional special sequences can appear in character lists. These
-apply to non-ASCII character sets, which can have single symbols (called
-collating elements) that are represented with more than one character,
-as well as several characters that are equivalent for collating or
-sorting purposes:
-</para>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term>Collating Symbols</term>
-<listitem>
-<para>
-A collating symbol is a multi-character collating element enclosed in
-``[.'' and ``.]''. For example, if ``ch'' is a collating
-element, then <emphasis role="bold">[[.ch.]]</emphasis> is a regexp that matches
-this collating element, while <emphasis role="bold">[ch]</emphasis> is a regexp that
-matches either ``c'' or ``h''.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>Equivalence Classes</term>
-<listitem>
-<para>
-An equivalence class is a locale-specific name for a list of
-characters that are equivalent. The name is enclosed in ``[=''
-and ``=]''. For example, the name ``e'' might be used to
-represent all of ``è'' ``é'' and ``e''. In this case,
-<emphasis role="bold">[[=e=]]</emphasis> is a regexp that matches any of
-``è'', ``é'' and ``e''.
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-A regular expression matching a single character may be followed by one
-of several repetition operators:
-</para>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term>?</term>
-<listitem>
-<para>
-The preceding item is optional and matched at most once.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>*</term>
-<listitem>
-<para>
-The preceding item will be matched zero or more times.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>+</term>
-<listitem>
-<para>
-The preceding item will be matched one or more times.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>{n}</term>
-<listitem>
-<para>
-The preceding item is matched exactly <emphasis>n</emphasis> times.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>{n,}</term>
-<listitem>
-<para>
-The preceding item is matched <emphasis>n</emphasis> or more times.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>{,m}</term>
-<listitem>
-<para>
-The preceding item is matched at most <emphasis>m</emphasis> times.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>{n,m}</term>
-<listitem>
-<para>
-The preceding item is matched at least <emphasis>n</emphasis> times, but no more than
-<emphasis>m</emphasis> times.
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-Two regular expressions may be concatenated; the resulting regular
-expression matches any string formed by concatenating two substrings
-that respectively match the concatenated subexpressions.
-</para>
-
-<para>
-Two regular expressions may be joined by the infix operator ``|'';
-the resulting regular expression matches any string matching either
-subexpression.
-</para>
-
-<para>
-Repetition takes precedence over concatenation, which in turn takes
-precedence over alternation. A whole subexpression may be enclosed in
-parentheses to override these precedence rules.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> If you compile Mutt-ng with the GNU <emphasis>rx</emphasis> package, the
-following operators may also be used in regular expressions:
-</para>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term>\\y</term>
-<listitem>
-<para>
-Matches the empty string at either the beginning or the end of a word.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\B</term>
-<listitem>
-<para>
-Matches the empty string within a word.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\<</term>
-<listitem>
-<para>
-Matches the empty string at the beginning of a word.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\></term>
-<listitem>
-<para>
-Matches the empty string at the end of a word.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\w</term>
-<listitem>
-<para>
-Matches any word-constituent character (letter, digit, or underscore).
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\W</term>
-<listitem>
-<para>
-Matches any character that is not word-constituent.
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\`</term>
-<listitem>
-<para>
-Matches the empty string at the beginning of a buffer (string).
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term>\\'</term>
-<listitem>
-<para>
-Matches the empty string at the end of a buffer.
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-Please note however that these operators are not defined by POSIX, so
-they may or may not be available in stock libraries on various systems.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>Patterns </title>
-
-<para>
-Mutt-ng's pattern language provides a simple yet effective way to
-set up rules to match messages, e.g. for operations like tagging and
-scoring. A pattern consists of one or more sub-pattern, which can be
-logically grouped, ORed, and negated. For a complete listing of
-these patterns, please refer to table <link linkend="patterns">patterns</link> in the Reference chapter.
-</para>
-
-<para>
-It must be noted that in this table, <literal>EXPR</literal>, <literal>USER</literal>,
-<literal>ID</literal> and <literal>SUBJECT</literal> are regular expressions. For ranges, the
-forms <literal><[MAX]</literal>, <literal>>>[MIN]</literal>, <literal>[MIN]-</literal> and <literal>-[MAX]</literal>
-are also possible.
-</para>
-
-<sect2>
-<title>Complex Patterns </title>
-
-<para>
-It is possible to combine several sub-patterns to a more complex
-pattern. The most simple possibility is to logically AND several
-patterns by stringing them together:
-</para>
-
-<para>
-
-<screen>
-~s 'SPAM' ~U
-</screen>
-
-</para>
-
-<para>
-The pattern above matches all messages that contain ``SPAM'' in
-the subject and are unread.
-</para>
-
-<para>
-To logical OR patterns, simply use the <literal>|</literal> operator. This one
-especially useful when using local groups:
-</para>
-
-<para>
-
-<screen>
-~f ("nion@muttng\.org"|"ak@muttng\.org"|"pdmef@muttng\.org")
-(~b mutt-ng|~s Mutt-ng)
-!~x '@synflood\.at'
-</screen>
-
-</para>
-
-<para>
-The first pattern matches all messages that were sent by one of
-the mutt-ng maintainers, while the seconds pattern matches all
-messages that contain ``mutt-ng'' in the message body or ``Mutt-ng''
-in the subject. The third pattern matches all messages that do not
-contain ``@synflood\.at'' in the <literal>References:</literal> header, i.e.
-messages that are not an (indirect) reply to one of my messages. A
-pattern can be logicall negated using the <literal>!</literal> operator.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Patterns and Dates </title>
-
-<para>
-When using dates in patterns, the dates must be specified in a
-special format, i.e. <literal>DD/MM/YYYY</literal>. If you don't specify
-month or year, they default to the current month or year. When using
-date ranges, and you specify only the minimum or the maximum, the
-specified date will be excluded, e.g. <literal>01/06/2005-</literal> matches
-against all messages <emphasis>after</emphasis> Juni 1st, 2005.
-</para>
-
-<para>
-It is also possible to use so-called ``error margins'' when
-specifying date ranges. You simply specify a date, and then the
-error margin. This margin needs to contain the information whether
-it goes ``forth'' or ``back'' in time, by using <literal>+</literal> and <literal>-</literal>.
-Then follows a number and a unit, i.e. <literal>y</literal> for years, <literal>m</literal> for
-months, <literal>w</literal> for weeks and <literal>d</literal> for days. If you use the special
-<literal>*</literal> sign, it means that the error margin goes to both
-``directions'' in time.
-</para>
-
-<para>
-
-<screen>
-~d 01/01/2005+1y
-~d 18/10/2004-2w
-~d 28/12/2004*1d
-</screen>
-
-</para>
-
-<para>
-The first pattern matches all dates between January 1st, 2005 and
-January 1st 2006. The second pattern matches all dates between
-October 18th, 2004 and October 4th 2004 (2 weeks before 18/10/2004),
-while the third pattern matches all dates 1 day around December
-28th, 2004 (i.e. Dec 27th, 28th and 29th).
-</para>
-
-<para>
-Relative dates are also very important, as they make it possible
-to specify date ranges between a fixed number of units and the
-current date. How this works can be seen in the following example:
-</para>
-
-<para>
-
-<screen>
-~d >2w # messages older than two weeks
-~d <3d # messages newer than 3 days
-~d =1m # messages that are exactly one month old
-</screen>
-
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1>
-<title>Format Strings </title>
-
-<sect2>
-<title>Introduction </title>
-
-<para>
-The so called <emphasis>Format Strings</emphasis> offer great flexibility when
-configuring mutt-ng. In short, they describe what items to print
-out how in menus and status messages.
-</para>
-
-<para>
-Basically, they work as this: for different menus and bars,
-there's a variable specifying the layout. For every item
-available, there is a so called <emphasis>expando</emphasis>.
-</para>
-
-<para>
-For example, when running mutt-ng on different machines or
-different versions for testing purposes, it may be interesting to
-have the following information always printed on screen when one
-is in the index:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-the current hostname
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-the current mutt-ng version number
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-The setting for the status bar of the index is controlled via the
-<link linkend="status-format">status-format</link>
-variable. For the hostname and version string, there's an expando
-for <literal>$status_format</literal>: <literal>%h</literal> expands to the
-hostname and <literal>%v</literal> to the version string. When just configuring:
-</para>
-
-<para>
-
-<screen>
-set status_format = "%v on %h: ..."
-</screen>
-
-</para>
-
-<para>
-mutt-ng will replace the sequence <literal>%v</literal> with the version string
-and <literal>%h</literal> with the host's name. When you are, for example, running
-mutt-ng version <literal>1.5.9i</literal> on host <literal>mailhost</literal>, you'll see the
-following when you're in the index:
-</para>
-
-<para>
-
-<screen>
-Mutt-ng 1.5.9i on mailhost: ...
-</screen>
-
-</para>
-
-<para>
-In the index, there're more useful information one could want to
-see:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-which mailbox is open
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-how man new, flagged or postponed messages
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-...
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-To include the mailbox' name is as easy as:
-</para>
-
-<para>
-
-<screen>
-set status_format = "%v on %h: %B: ...
-</screen>
-
-</para>
-
-<para>
-When the currently opened mailbox is <literal>Inbox</literal>, this will be expanded
-to:
-</para>
-
-<para>
-
-<screen>
-Mutt-ng 1.5.9i on mailhost: Inbox: ...
-</screen>
-
-</para>
-
-<para>
-For the number of certain types of messages, one more feature of the format
-strings is extremely useful. If there aren't messages of a certain type, it
-may not be desired to print just that there aren't any but instead only
-print something if there are any.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Conditional Expansion </title>
-
-<para>
-To only print the number of messages if there are new messages in
-the current mailbox, further extend
-<literal>$status_format</literal> to:
-</para>
-
-<para>
-
-<screen>
-set status_format = "%v on %h: %B %?n?%n new? ...
-</screen>
-
-</para>
-
-<para>
-This feature is called <emphasis>nonzero-printing</emphasis> and works as this:
-some expandos may be optionally printed nonzero, i.e. a portion
-of the format string is only evaluated if the value of the expando
-is different from zero. The basic syntax is:
-</para>
-
-<para>
-
-<screen>
-%?<item>?<string if nonzero>?
-</screen>
-
-</para>
-
-<para>
-which tells mutt-ng to only look at <literal><string if
-nonzero></literal> if the value of the <literal>%<item%gt;</literal>
-expando is different from zero. In our example, we used <literal>n</literal> as
-the expando to check for and <literal>%n new</literal> as the optional nonzero
-string.
-</para>
-
-<para>
-But this is not all: this feature only offers one alternative:
-``print something if not zero.'' Mutt-ng does, as you might guess,
-also provide a logically complete version: ``if zero, print
-something and else print something else.'' This is achieved by the
-following syntax for those expandos which may be printed nonzero:
-</para>
-
-<para>
-
-<screen>
-%?<item>?<string if nonzero>&<string if zero>?
-</screen>
-
-</para>
-
-<para>
-Using this we can make mutt-ng to do the following:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
- make it print ``<emphasis>n</emphasis> new messages'' whereby <emphasis>n</emphasis> is the
-count but only if there new ones
-
-</para>
-</listitem>
-<listitem>
-
-<para>
- and make it print ``no new messages'' if there aren't any
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-The corresponding configuration is:
-</para>
-
-<para>
-
-<screen>
-set status_format = "%v on %h: %B: %?n?%n new messages&no new messages? ...
-</screen>
-
-</para>
-
-<para>
-This doubles the use of the ``new messages'' string because it'll get
-always printed. Thus, it can be shortened to:
-</para>
-
-<para>
-
-<screen>
-set status_format = "%v on %h: %B: %?n?%n&no? new messages ...
-</screen>
-
-</para>
-
-<para>
-As you might see from this rather simple example, one can create
-very complex but fancy status messages. Please see the reference
-chapter for expandos and those which may be printed nonzero.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Modifications and Padding </title>
-
-<para>
-Besides the information given so far, there're even more features of
-format strings:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-When specifying <literal>%_<item></literal> instead of
-just <literal>%<item></literal>, mutt-ng will convert all
-characters in the expansion of <literal><item></literal> to
-lowercase.
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-When specifying <literal>%:<item></literal> instead of just
-<literal>%<item></literal>, mutt-ng will convert all dots in the
-expansion of <literal><item></literal> to underscores
-(<literal>_</literal>).
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-Also, there's a feature called <emphasis>Padding</emphasis> supplied by the
-following two expandos: <literal>%|X</literal> and <literal>%>X</literal>.
-</para>
-
-<para>
-<variablelist>
-
-<varlistentry>
-<term><literal>%|X</literal></term>
-<listitem>
-<para>
-When this occurs, mutt-ng will fill the
-rest of the line with the character <literal>X</literal>. In our example,
-filling the rest of the line with dashes is done by setting:
-</para>
-
-<para>
-
-<screen>
-set status_format = "%v on %h: %B: %?n?%n&no? new messages %|-"
-</screen>
-
-</para>
-</listitem></varlistentry>
-<varlistentry>
-<term><literal>%>X</literal></term>
-<listitem>
-<para>
-Since the previous expando stops at
-the end of line, there must be a way to fill the gap between
-two items via the <literal>%>X</literal> expando: it puts as many
-characters <literal>X</literal> in between two items so that the rest of
-the line will be right-justified. For example, to not put the
-version string and hostname of our example on the left but on
-the right and fill the gap with spaces, one might use (note
-the space after <literal>%></literal>):
-</para>
-
-<para>
-
-<screen>
-set status_format = "%B: %?n?%n&no? new messages %> (%v on %h)"
-</screen>
-
-</para>
-</listitem></varlistentry>
-</variablelist>
-</para>
-
-<para>
-
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1>
-<title>Using Tags </title>
-
-<para>
-Sometimes it is desirable to perform an operation on a group of
-messages all at once rather than one at a time. An example might be
-to save messages to a mailing list to a separate folder, or to
-delete all messages with a given subject. To tag all messages
-matching a pattern, use the tag-pattern function, which is bound to
-``shift-T'' by default. Or you can select individual messages by
-hand using the ``tag-message'' function, which is bound to ``t'' by
-default. See <link linkend="patterns">patterns</link> for Mutt-ng's pattern
-matching syntax.
-</para>
-
-<para>
-Once you have tagged the desired messages, you can use the
-``tag-prefix'' operator, which is the ``;'' (semicolon) key by default.
-When the ``tag-prefix'' operator is used, the <emphasis role="bold">next</emphasis> operation will
-be applied to all tagged messages if that operation can be used in that
-manner. If the <link linkend="auto-tag">auto-tag</link>
-variable is set, the next operation applies to the tagged messages
-automatically, without requiring the ``tag-prefix''.
-</para>
-
-<para>
-In <link linkend="macro">macro</link> or <link linkend="push">push</link> commands,
-you can use the ``tag-prefix-cond'' operator. If there are no tagged
-messages, mutt will "eat" the rest of the macro to abort it's execution.
-Mutt-ng will stop "eating" the macro when it encounters the ``end-cond''
-operator; after this operator the rest of the macro will be executed as
-normal.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="hooks">
-<title>Using Hooks </title>
-
-<para>
-A <emphasis>hook</emphasis> is a concept borrowed from the EMACS editor which allows you to
-execute arbitrary commands before performing some operation. For example,
-you may wish to tailor your configuration based upon which mailbox you are
-reading, or to whom you are sending mail. In the Mutt-ng world, a <emphasis>hook</emphasis>
-consists of a <link linkend="regexp">regexp</link> or
-<link linkend="patterns">patterns</link> along with a
-configuration option/command. See
-
-<itemizedlist>
-<listitem>
-
-<para>
-<link linkend="folder-hook">folder-hook</link>
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="send-hook">send-hook</link>
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="message-hook">message-hook</link>
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="save-hook">save-hook</link>
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="mbox-hook">mbox-hook</link>
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="fcc-hook">fcc-hook</link>
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="fcc-save-hook">fcc-save-hook</link>
-</para>
-</listitem>
-
-</itemizedlist>
-
-for specific details on each type of <emphasis>hook</emphasis> available.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> if a hook changes configuration settings, these changes remain
-effective until the end of the current mutt session. As this is generally
-not desired, a default hook needs to be added before all other hooks to
-restore configuration defaults. Here is an example with send-hook and the
-my_hdr directive:
-</para>
-
-<para>
-
-<screen>
-send-hook . 'unmy_hdr From:'
-send-hook ~C'^b@b\.b$' my_hdr from: c@c.c
-</screen>
-
-</para>
-
-<sect2 id="pattern-hook">
-<title>Message Matching in Hooks</title>
-
-<para>
-Hooks that act upon messages (<literal>send-hook, save-hook, fcc-hook,
-message-hook</literal>) are evaluated in a slightly different manner. For the other
-types of hooks, a <link linkend="regexp">regexp</link> is
-sufficient. But in dealing with messages a finer grain of control is
-needed for matching since for different purposes you want to match
-different criteria.
-</para>
-
-<para>
-Mutt-ng allows the use of the <link linkend="patterns">patterns</link>
-language for matching messages in hook commands. This works in
-exactly the same way as it would when <emphasis>limiting</emphasis> or
-<emphasis>searching</emphasis> the mailbox, except that you are restricted to those
-operators which match information mutt extracts from the header of
-the message (i.e. from, to, cc, date, subject, etc.).
-</para>
-
-<para>
-For example, if you wanted to set your return address based upon sending
-mail to a specific address, you could do something like:
-
-<screen>
-send-hook '~t ^me@cs\.hmc\.edu$' 'my_hdr From: Mutt-ng User <user@host>'
-</screen>
-
-which would execute the given command when sending mail to
-<emphasis>me@cs.hmc.edu</emphasis>.
-</para>
-
-<para>
-However, it is not required that you write the pattern to match using the
-full searching language. You can still specify a simple <emphasis>regular
-expression</emphasis> like the other hooks, in which case Mutt-ng will translate your
-pattern into the full language, using the translation specified by the
-<link linkend="default-hook">default-hook</link> variable. The
-pattern is translated at the time the hook is declared, so the value of
-<link linkend="default-hook">default-hook</link> that is in effect
-at that time will be used.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="sidebar">
-<title>Using the sidebar </title>
-
-<para>
-The sidebar, a feature specific to Mutt-ng, allows you to use a mailbox listing
-which looks very similar to the ones you probably know from GUI mail clients.
-The sidebar lists all specified mailboxes, shows the number in each
-and highlights the ones with new email
-Use the following configuration commands:
-
-<screen>
-set sidebar_visible="yes"
-set sidebar_width=25
-</screen>
-
-</para>
-
-<para>
-If you want to specify the mailboxes you can do so with:
-
-<screen>
-set mbox='=INBOX'
-mailboxes INBOX \
- MBOX1 \
- MBOX2 \
- ...
-</screen>
-
-</para>
-
-<para>
-You can also specify the colors for mailboxes with new mails by using:
-
-<screen>
-color sidebar_new red black
-color sidebar white black
-</screen>
-
-</para>
-
-<para>
-The available functions are:
-
-<screen>
-sidebar-scroll-up Scrolls the mailbox list up 1 page
-sidebar-scroll-down Scrolls the mailbox list down 1 page
-sidebar-next Highlights the next mailbox
-sidebar-next-new Highlights the next mailbox with new mail
-sidebar-previous Highlights the previous mailbox
-sidebar-open Opens the currently highlighted mailbox
-</screen>
-
-</para>
-
-<para>
-Reasonable key bindings look e.g. like this:
-
-<screen>
-bind index \Cp sidebar-prev
-bind index \Cn sidebar-next
-bind index \Cb sidebar-open
-bind pager \Cp sidebar-prev
-bind pager \Cn sidebar-next
-bind pager \Cb sidebar-open
-
-macro index B ':toggle sidebar_visible^M'
-macro pager B ':toggle sidebar_visible^M'
-</screen>
-
-</para>
-
-<para>
-You can then go up and down by pressing Ctrl-P and Ctrl-N, and
-switch on and off the sidebar simply by pressing 'B'.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="query">
-<title>External Address Queries </title>
-
-<para>
-Mutt-ng supports connecting to external directory databases such as LDAP,
-ph/qi, bbdb, or NIS through a wrapper script which connects to mutt
-using a simple interface. Using the <link linkend="query-command">query-command</link> variable, you specify the wrapper
-command to use. For example:
-</para>
-
-<para>
-
-<screen>
-set query_command = "mutt_ldap_query.pl '%s'"
-</screen>
-
-</para>
-
-<para>
-The wrapper script should accept the query on the command-line. It
-should return a one line message, then each matching response on a
-single line, each line containing a tab separated address then name then
-some other optional information. On error, or if there are no matching
-addresses, return a non-zero exit code and a one line error message.
-</para>
-
-<para>
-An example multiple response output:
-
-<screen>
-Searching database ... 20 entries ... 3 matching:
-me@cs.hmc.edu Michael Elkins mutt dude
-blong@fiction.net Brandon Long mutt and more
-roessler@guug.de Thomas Roessler mutt pgp
-</screen>
-
-</para>
-
-<para>
-There are two mechanisms for accessing the query function of mutt. One
-is to do a query from the index menu using the query function (default: Q).
-This will prompt for a query, then bring up the query menu which will
-list the matching responses. From the query menu, you can select
-addresses to create aliases, or to mail. You can tag multiple addresses
-to mail, start a new query, or have a new query appended to the current
-responses.
-</para>
-
-<para>
-The other mechanism for accessing the query function is for address
-completion, similar to the alias completion. In any prompt for address
-entry, you can use the complete-query function (default: ˆT) to run a
-query based on the current address you have typed. Like aliases, mutt
-will look for what you have typed back to the last space or comma. If
-there is a single response for that query, mutt will expand the address
-in place. If there are multiple responses, mutt will activate the query
-menu. At the query menu, you can select one or more addresses to be
-added to the prompt.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>Mailbox Formats </title>
-
-<para>
-Mutt-ng supports reading and writing of four different mailbox formats:
-mbox, MMDF, MH and Maildir. The mailbox type is autodetected, so there
-is no need to use a flag for different mailbox types. When creating new
-mailboxes, Mutt-ng uses the default specified with the <link linkend="mbox-type">mbox-type</link> variable.
-</para>
-
-<para>
-<emphasis role="bold">mbox</emphasis>. This is the most widely used mailbox format for UNIX. All
-messages are stored in a single file. Each message has a line of the form:
-</para>
-
-<para>
-
-<screen>
-From me@cs.hmc.edu Fri, 11 Apr 1997 11:44:56 PST
-</screen>
-
-</para>
-
-<para>
-to denote the start of a new message (this is often referred to as the
-``From_'' line).
-</para>
-
-<para>
-<emphasis role="bold">MMDF</emphasis>. This is a variant of the <emphasis>mbox</emphasis> format. Each message is
-surrounded by lines containing ``ˆAˆAˆAˆA'' (four control-A's).
-</para>
-
-<para>
-<emphasis role="bold">MH</emphasis>. A radical departure from <emphasis>mbox</emphasis> and <emphasis>MMDF</emphasis>, a mailbox
-consists of a directory and each message is stored in a separate file.
-The filename indicates the message number (however, this is may not
-correspond to the message number Mutt-ng displays). Deleted messages are
-renamed with a comma (,) prepended to the filename. <emphasis role="bold">Note:</emphasis> Mutt
-detects this type of mailbox by looking for either <literal>.mh_sequences</literal>
-or <literal>.xmhcache</literal> (needed to distinguish normal directories from MH
-mailboxes).
-</para>
-
-<para>
-<emphasis role="bold">Maildir</emphasis>. The newest of the mailbox formats, used by the Qmail MTA (a
-replacement for sendmail). Similar to <emphasis>MH</emphasis>, except that it adds three
-subdirectories of the mailbox: <emphasis>tmp</emphasis>, <emphasis>new</emphasis> and <emphasis>cur</emphasis>. Filenames
-for the messages are chosen in such a way they are unique, even when two
-programs are writing the mailbox over NFS, which means that no file locking
-is needed.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="shortcuts">
-<title>Mailbox Shortcuts </title>
-
-<para>
-There are a number of built in shortcuts which refer to specific mailboxes.
-These shortcuts can be used anywhere you are prompted for a file or mailbox
-path.
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-! -- refers to your <link linkend="spoolfile">spoolfile</link> (incoming) mailbox
-</para>
-</listitem>
-<listitem>
-
-<para>
-> -- refers to your <link linkend="mbox">mbox</link> file
-</para>
-</listitem>
-<listitem>
-
-<para>
-< -- refers to your <link linkend="record">record</link> file
-</para>
-</listitem>
-<listitem>
-
-<para>
-ˆ -- refers to the current mailbox
-</para>
-</listitem>
-<listitem>
-
-<para>
-- or !! -- refers to the file you've last visited
-</para>
-</listitem>
-<listitem>
-
-<para>
-˜ -- refers to your home directory
-</para>
-</listitem>
-<listitem>
-
-<para>
-= or + -- refers to your <link linkend="folder">folder</link> directory
-</para>
-</listitem>
-<listitem>
-
-<para>
-@<emphasis>alias</emphasis> -- refers to the <link linkend="save-hook">save-hook</link> as determined by the address of the alias
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1 id="using-lists">
-<title>Handling Mailing Lists </title>
-
-<para>
-Mutt-ng has a few configuration options that make dealing with large
-amounts of mail easier. The first thing you must do is to let Mutt
-know what addresses you consider to be mailing lists (technically
-this does not have to be a mailing list, but that is what it is most
-often used for), and what lists you are subscribed to. This is
-accomplished through the use of the <link linkend="lists">lists</link> commands in your muttrc.
-</para>
-
-<para>
-Now that Mutt-ng knows what your mailing lists are, it can do several
-things, the first of which is the ability to show the name of a list
-through which you received a message (i.e., of a subscribed list) in
-the <emphasis>index</emphasis> menu display. This is useful to distinguish between
-personal and list mail in the same mailbox. In the <link linkend="index-format">index-format</link> variable, the escape ``%L''
-will return the string ``To <list>'' when ``list'' appears in the
-``To'' field, and ``Cc <list>'' when it appears in the ``Cc''
-field (otherwise it returns the name of the author).
-</para>
-
-<para>
-Often times the ``To'' and ``Cc'' fields in mailing list messages
-tend to get quite large. Most people do not bother to remove the
-author of the message they are reply to from the list, resulting in
-two or more copies being sent to that person. The ``list-reply''
-function, which by default is bound to ``L'' in the <emphasis>index</emphasis> menu
-and <emphasis>pager</emphasis>, helps reduce the clutter by only replying to the
-known mailing list addresses instead of all recipients (except as
-specified by <literal>Mail-Followup-To</literal>, see below).
-</para>
-
-<para>
-Mutt-ng also supports the <literal>Mail-Followup-To</literal> header. When you send
-a message to a list of recipients which includes one or several
-subscribed mailing lists, and if the <link linkend="followup-to">followup-to</link> option is set, mutt will generate
-a Mail-Followup-To header which contains all the recipients to whom
-you send this message, but not your address. This indicates that
-group-replies or list-replies (also known as ``followups'') to this
-message should only be sent to the original recipients of the
-message, and not separately to you - you'll receive your copy through
-one of the mailing lists you are subscribed to.
-</para>
-
-<para>
-Conversely, when group-replying or list-replying to a message which
-has a <literal>Mail-Followup-To</literal> header, mutt will respect this header if
-the <link linkend="honor-followup-to">honor-followup-to</link> configuration
-variable is set. Using list-reply will in this case also make sure
-that the reply goes to the mailing list, even if it's not specified
-in the list of recipients in the <literal>Mail-Followup-To</literal>.
-</para>
-
-<para>
-Note that, when header editing is enabled, you can create a
-<literal>Mail-Followup-To</literal> header manually. Mutt-ng will only auto-generate
-this header if it doesn't exist when you send the message.
-</para>
-
-<para>
-The other method some mailing list admins use is to generate a
-``Reply-To'' field which points back to the mailing list address rather
-than the author of the message. This can create problems when trying
-to reply directly to the author in private, since most mail clients
-will automatically reply to the address given in the ``Reply-To''
-field. Mutt-ng uses the <link linkend="reply-to">reply-to</link>
-variable to help decide which address to use. If set to <emphasis>ask-yes</emphasis> or
-<emphasis>ask-no</emphasis>, you will be
-prompted as to whether or not you would like to use the address given in
-the ``Reply-To'' field, or reply directly to the address given in the
-``From'' field. When set to <emphasis>yes</emphasis>, the ``Reply-To'' field will be used when
-present.
-</para>
-
-<para>
-The ``X-Label:'' header field can be used to further identify mailing
-lists or list subject matter (or just to annotate messages
-individually). The <link linkend="index-format">index-format</link> variable's ``%y'' and
-``%Y'' escapes can be used to expand ``X-Label:'' fields in the
-index, and Mutt-ng's pattern-matcher can match regular expressions to
-``X-Label:'' fields with the ``˜y'' selector. ``X-Label:'' is not a
-standard message header field, but it can easily be inserted by procmail
-and other mail filtering agents.
-</para>
-
-<para>
-Lastly, Mutt-ng has the ability to <link linkend="sort">sort</link> the mailbox into
-<link linkend="threads">threads</link>. A thread is a group of messages which all relate to the same
-subject. This is usually organized into a tree-like structure where a
-message and all of its replies are represented graphically. If you've ever
-used a threaded news client, this is the same concept. It makes dealing
-with large volume mailing lists easier because you can easily delete
-uninteresting threads and quickly find topics of value.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>Editing threads </title>
-
-<para>
-Mutt-ng has the ability to dynamically restructure threads that are broken
-either by misconfigured software or bad behavior from some
-correspondents. This allows to clean your mailboxes formats) from these
-annoyances which make it hard to follow a discussion.
-</para>
-
-<sect2>
-<title>Linking threads</title>
-
-<para>
-Some mailers tend to "forget" to correctly set the "In-Reply-To:" and
-"References:" headers when replying to a message. This results in broken
-discussions because Mutt-ng has not enough information to guess the correct
-threading.
-You can fix this by tagging the reply, then moving to the parent message
-and using the ``link-threads'' function (bound to & by default). The
-reply will then be connected to this "parent" message.
-</para>
-
-<para>
-You can also connect multiple children at once, tagging them and using the
-tag-prefix command (';') or the auto_tag option.
-</para>
-
-</sect2>
-
-<sect2>
-<title>Breaking threads</title>
-
-<para>
-On mailing lists, some people are in the bad habit of starting a new
-discussion by hitting "reply" to any message from the list and changing
-the subject to a totally unrelated one.
-You can fix such threads by using the ``break-thread'' function (bound
-by default to #), which will turn the subthread starting from the
-current message into a whole different thread.
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="dsn">
-<title>Delivery Status Notification (DSN) Support </title>
-
-<para>
-RFC1894 defines a set of MIME content types for relaying information
-about the status of electronic mail messages. These can be thought of as
-``return receipts.''
-</para>
-
-<para>
-Users can make use of it in one of the following two ways:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-Berkeley sendmail 8.8.x currently has some command line options
-in which the mail client can make requests as to what type of status
-messages should be returned.
-</para>
-</listitem>
-<listitem>
-
-<para>
-The SMTP support via libESMTP supports it, too.
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-To support this, there are two variables:
-</para>
-
-<para>
-
-<itemizedlist>
-<listitem>
-
-<para>
-<link linkend="dsn-notify">dsn-notify</link> is used
-to request receipts for different results (such as failed message,
-message delivered, etc.).
-
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="dsn-return">dsn-return</link> requests
-how much of your message should be returned with the receipt
-(headers or full message).
-
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-Please see the reference chapter for possible values.
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>POP3 Support (OPTIONAL) </title>
-
-<para>
-If Mutt-ng was compiled with POP3 support (by running the <emphasis>configure</emphasis>
-script with the <emphasis>--enable-pop</emphasis> flag), it has the ability to work
-with mailboxes located on a remote POP3 server and fetch mail for local
-browsing.
-</para>
-
-<para>
-You can access the remote POP3 mailbox by selecting the folder
-<literal>pop://popserver/</literal>.
-</para>
-
-<para>
-You can select an alternative port by specifying it with the server, i.e.:
-<literal>pop://popserver:port/</literal>.
-</para>
-
-<para>
-You can also specify different username for each folder, i.e.:
-<literal>pop://username@popserver[:port]/</literal>.
-</para>
-
-<para>
-Polling for new mail is more expensive over POP3 than locally. For this
-reason the frequency at which Mutt-ng will check for mail remotely can be
-controlled by the
-<link linkend="pop-mail-check">pop-mail-check</link>
-variable, which defaults to every 60 seconds.
-</para>
-
-<para>
-If Mutt-ng was compiled with SSL support (by running the <emphasis>configure</emphasis>
-script with the <emphasis>--with-ssl</emphasis> flag), connections to POP3 servers
-can be encrypted. This naturally requires that the server supports
-SSL encrypted connections. To access a folder with POP3/SSL, you should
-use pops: prefix, ie:
-<literal>pops://[username@]popserver[:port]/</literal>.
-</para>
-
-<para>
-Another way to access your POP3 mail is the <emphasis>fetch-mail</emphasis> function
-(default: G). It allows to connect to <link linkend="pop-host">pop-host</link>, fetch all your new mail and place it in the
-local <link linkend="spoolfile">spoolfile</link>. After this
-point, Mutt-ng runs exactly as if the mail had always been local.
-</para>
-
-<para>
-<emphasis role="bold">Note:</emphasis> If you only need to fetch all messages to local mailbox
-you should consider using a specialized program, such as <ulink
-URL="http://www.ccil.org/~esr/fetchmail"
->fetchmail</ulink
->
-</para>
-
-<para>
-
-</para>
-
-</sect1>
-
-<sect1>
-<title>IMAP Support (OPTIONAL) </title>
-
-<para>
-If Mutt-ng was compiled with IMAP support (by running the <emphasis>configure</emphasis>
-script with the <emphasis>--enable-imap</emphasis> flag), it has the ability to work
-with folders located on a remote IMAP server.
-</para>
-
-<para>
-You can access the remote inbox by selecting the folder
-<literal>imap://imapserver/INBOX</literal>, where <literal>imapserver</literal> is the name of the
-IMAP server and <literal>INBOX</literal> is the special name for your spool mailbox on
-the IMAP server. If you want to access another mail folder at the IMAP
-server, you should use <literal>imap://imapserver/path/to/folder</literal> where
-<literal>path/to/folder</literal> is the path of the folder you want to access.
-</para>
-
-<para>
-You can select an alternative port by specifying it with the server, i.e.:
-<literal>imap://imapserver:port/INBOX</literal>.
-</para>
-
-<para>
-You can also specify different username for each folder, i.e.:
-<literal>imap://username@imapserver[:port]/INBOX</literal>.
-</para>
-
-<para>
-If Mutt-ng was compiled with SSL support (by running the <emphasis>configure</emphasis>
-script with the <emphasis>--with-ssl</emphasis> flag), connections to IMAP servers
-can be encrypted. This naturally requires that the server supports
-SSL encrypted connections. To access a folder with IMAP/SSL, you should
-use <literal>imaps://[username@]imapserver[:port]/path/to/folder</literal> as your
-folder path.
-</para>
-
-<para>
-Pine-compatible notation is also supported, i.e.
-<literal>{[username@]imapserver[:port][/ssl]}path/to/folder</literal>
-</para>
-
-<para>
-Note that not all servers use / as the hierarchy separator. Mutt-ng should
-correctly notice which separator is being used by the server and convert
-paths accordingly.
-</para>
-
-<para>
-When browsing folders on an IMAP server, you can toggle whether to look
-at only the folders you are subscribed to, or all folders with the
-<emphasis>toggle-subscribed</emphasis> command. See also the
-<link linkend="imap-list-subscribed">imap-list-subscribed</link> variable.
-</para>
-
-<para>
-Polling for new mail on an IMAP server can cause noticeable delays. So, you'll
-want to carefully tune the
-<link linkend="imap-mail-check">imap-mail-check</link>
-and
-<link linkend="timeout">timeout</link>
-variables.
-</para>
-
-<para>
-Note that if you are using mbox as the mail store on UW servers prior to
-v12.250, the server has been reported to disconnect a client if another client
-selects the same folder.
-</para>
-
-<sect2>
-<title>The Folder Browser</title>
-
-<para>
-As of version 1.2, mutt supports browsing mailboxes on an IMAP
-server. This is mostly the same as the local file browser, with the
-following differences:
-
-<itemizedlist>
-<listitem>
-
-<para>
-Instead of file permissions, mutt displays the string "IMAP",
-possibly followed by the symbol "+", indicating
-that the entry contains both messages and subfolders. On
-Cyrus-like servers folders will often contain both messages and
-subfolders.
-</para>
-</listitem>
-<listitem>
-
-<para>
-For the case where an entry can contain both messages and
-subfolders, the selection key (bound to <literal>enter</literal> by default)
-will choose to descend into the subfolder view. If you wish to view
-the messages in that folder, you must use <literal>view-file</literal> instead
-(bound to <literal>space</literal> by default).
-</para>
-</listitem>
-<listitem>
-
-<para>
-You can create, delete and rename mailboxes with the
-<literal>create-mailbox</literal>, <literal>delete-mailbox</literal>, and
-<literal>rename-mailbox</literal> commands (default bindings: <literal>C</literal>,
-<literal>d</literal> and <literal>r</literal>, respectively). You may also
-<literal>subscribe</literal> and <literal>unsubscribe</literal> to mailboxes (normally
-these are bound to <literal>s</literal> and <literal>u</literal>, respectively).
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-</sect2>
-
-<sect2>
-<title>Authentication</title>
-
-<para>
-Mutt-ng supports four authentication methods with IMAP servers: SASL,
-GSSAPI, CRAM-MD5, and LOGIN (there is a patch by Grant Edwards to add
-NTLM authentication for you poor exchange users out there, but it has
-yet to be integrated into the main tree). There is also support for
-the pseudo-protocol ANONYMOUS, which allows you to log in to a public
-IMAP server without having an account. To use ANONYMOUS, simply make
-your username blank or "anonymous".
-</para>
-
-<para>
-SASL is a special super-authenticator, which selects among several protocols
-(including GSSAPI, CRAM-MD5, ANONYMOUS, and DIGEST-MD5) the most secure
-method available on your host and the server. Using some of these methods
-(including DIGEST-MD5 and possibly GSSAPI), your entire session will be
-encrypted and invisible to those teeming network snoops. It is the best
-option if you have it. To use it, you must have the Cyrus SASL library
-installed on your system and compile mutt with the <emphasis>--with-sasl</emphasis> flag.
-</para>
-
-<para>
-Mutt-ng will try whichever methods are compiled in and available on the server,
-in the following order: SASL, ANONYMOUS, GSSAPI, CRAM-MD5, LOGIN.
-</para>
-
-<para>
-There are a few variables which control authentication:
-
-<itemizedlist>
-<listitem>
-
-<para>
-<link linkend="imap-user">imap-user</link> - controls
-the username under which you request authentication on the IMAP server,
-for all authenticators. This is overridden by an explicit username in
-the mailbox path (i.e. by using a mailbox name of the form
-<literal>{user@host}</literal>).
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="imap-pass">imap-pass</link> - a
-password which you may preset, used by all authentication methods where
-a password is needed.
-</para>
-</listitem>
-<listitem>
-
-<para>
-<link linkend="imap-authenticators">imap-authenticators</link> - a colon-delimited list of IMAP
-authentication methods to try, in the order you wish to try them. If
-specified, this overrides mutt's default (attempt everything, in the order
-listed above).
-</para>
-</listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>
-
-</para>
-
-</sect2>
-
-</sect1>
-
-<sect1 id="reading-news">
-<title>NNTP Support (OPTIONAL) </title>
-
-<para>
-If compiled with ``--enable-nntp'' option, Mutt-ng can read news from
-a newsserver via NNTP. You can open a newsgroup with the
-``change-newsgroup'' function from the index/pager which is by default
-bound to <literal>i</literal>.
-</para>
-
-<para>
-The Default newsserver can be obtained from the
-<literal>$NNTPSERVER</literal> environment variable. Like other news readers,
-info about subscribed newsgroups is saved in a file as specified by the
-<link linkend="nntp-newsrc">nntp-newsrc</link> variable.
-Article headers are cached and can be loaded from a file when a
-newsgroup is entered instead loading from newsserver; currently, this
-caching mechanism still is different from the header caching for
-maildir/IMAP.
-</para>
-
-<sect2>
-<title>Again: Scoring </title>
-
-<para>
-Especially for Usenet, people often ask for advanced filtering
-and scoring functionality. Of course, mutt-ng has scoring and
-allows a killfile, too. How to use a killfile has been discussed
-in <link linkend="score-command">score-command</link>.
-</para>
-
-<para>
-What has not been discusses in detail is mutt-ng's built-in
-realname filter. For may newsreaders including those for
-``advanced users'' like <emphasis>slrn</emphasis> or <emphasis>tin</emphasis>, there are frequent
-request for such functionality. The solutions offered often are
-complicated regular expressions.
-</para>
-
-<para>
-In mutt-ng this is as easy as
-</para>
-
-<para>
-
-<screen>
-score ~* =42
-
-</screen>
-
-</para>
-
-<para>
-This tells mutt-ng to apply a score of 42 to all messages whose
-sender specified a valid realname and a valid email address. Using
-</para>
-
-<para>
-
-<screen>
-score !~* =42
+ <sect1 id="mbox-hook">
+ <title>Using Multiple spool mailboxes </title>
+
+ <para>
+ Usage: <literal>mbox-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ mailbox
+ </emphasis>
+ </para>
+
+ <para>
+ This command is used to move read messages from a specified mailbox to
+ adifferent mailbox automatically when you quit or change folders.
+ <emphasis>pattern</emphasis> is a regular expression specifying the
+ mailbox to treat as a
+ ``spool'' mailbox and <emphasis>mailbox</emphasis> specifies where mail
+ should be saved when
+ read.
+ </para>
+
+ <para>
+ Unlike some of the other <emphasis>hook</emphasis> commands, only the <emphasis>
+ first
+ </emphasis>
+ matching
+ pattern is used (it is not possible to save read mail in more than a
+ single
+ mailbox).
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="mailboxes">
+ <title>Defining mailboxes which receive mail </title>
+
+ <para>
+ Usage: <literal>[un]mailboxes</literal> [!]<emphasis>
+ filename
+ </emphasis>
+ [ <emphasis>filename</emphasis> ... ]
+ </para>
+
+ <para>
+ This command specifies folders which can receive mail and
+ which will be checked for new messages. By default, the
+ main menu status bar displays how many of these folders have
+ new messages.
+ </para>
+
+ <para>
+ When changing folders, pressing <emphasis>space</emphasis> will cycle
+ through folders with new mail.
+ </para>
+
+ <para>
+ Pressing TAB in the directory browser will bring up a menu showing the
+ files
+ specified by the <literal>mailboxes</literal> command, and indicate
+ which contain new
+ messages. Mutt-ng will automatically enter this mode when invoked from
+ the
+ command line with the <literal>-y</literal> option.
+ </para>
+
+ <para>
+ The ``unmailboxes'' command is used to remove a token from the list
+ of folders which receive mail. Use ``unmailboxes *'' to remove all
+ tokens.
+ </para>
+
+ <para>
+ <emphasis role="bold">Note:</emphasis> new mail is detected by
+ comparing the last modification time to
+ the last access time. Utilities like <literal>biff</literal> or <literal>
+ frm
+ </literal>
+ or any other
+ program which accesses the mailbox might cause Mutt-ng to never detect
+ new mail
+ for that mailbox if they do not properly reset the access time. Backup
+ tools are another common reason for updated access times.
+ </para>
+
+ <para>
+ <emphasis role="bold">Note:</emphasis> the filenames in the <literal>
+ mailboxes
+ </literal>
+ command are resolved when
+ the command is executed, so if these names contain <link linkend="shortcuts">
+ shortcuts
+ </link>
+ (such as ``='' and ``!''), any variable
+ definition that affect these characters (like <link linkend="folder">
+ folder
+ </link>
+ and <link linkend="spoolfile">spoolfile</link>)
+ should be executed before the <literal>mailboxes</literal> command.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="my-hdr">
+ <title>User defined headers </title>
+
+ <para>
+ Usage:
+
+ <literal>my_hdr</literal> <emphasis>string</emphasis>
+
+ <literal>unmy_hdr</literal> <emphasis>field</emphasis> [ <emphasis>
+ field
+ </emphasis>
+ ... ]
+ </para>
+
+ <para>
+ The ``my_hdr'' command allows you to create your own header
+ fields which will be added to every message you send.
+ </para>
+
+ <para>
+ For example, if you would like to add an ``Organization:'' header field
+ to
+ all of your outgoing messages, you can put the command
+ </para>
+
+ <para>
+ <screen>
+my_hdr Organization: A Really Big Company, Anytown, USA</screen>
+ </para>
+
+ <para>
+ in your <literal>.muttrc</literal>.
+ </para>
+
+ <para>
+ <emphasis role="bold">Note:</emphasis> space characters are <emphasis>
+ not
+ </emphasis>
+ allowed between the keyword and
+ the colon (``:''). The standard for electronic mail (RFC822) says that
+ space is illegal there, so Mutt-ng enforces the rule.
+ </para>
+
+ <para>
+ If you would like to add a header field to a single message, you should
+ either set the <link linkend="edit-headers">edit-headers</link>
+ variable,
+ or use the <emphasis>edit-headers</emphasis> function (default: ``E'')
+ in the send-menu so
+ that you can edit the header of your message along with the body.
+ </para>
+
+ <para>
+ To remove user defined header fields, use the ``unmy_hdr''
+ command. You may specify an asterisk (``*'') to remove all header
+ fields, or the fields to remove. For example, to remove all ``To'' and
+ ``Cc'' header fields, you could use:
+ </para>
+
+ <para>
+ <screen>
+unmy_hdr to cc</screen>
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="hdr-order">
+ <title>Defining the order of headers when viewing messages </title>
+
+ <para>
+ Usage: <literal>hdr_order</literal> <emphasis>header1</emphasis>
+ <emphasis>header2</emphasis> <emphasis>header3</emphasis>
+ </para>
+
+ <para>
+ With this command, you can specify an order in which mutt will attempt
+ to present headers to you when viewing messages.
+ </para>
+
+ <para>
+ ``unhdr_order *'' will clear all previous headers from the order
+ list,
+ thus removing the header order effects set by the system-wide startup
+ file.
+ </para>
+
+ <para>
+
+ <screen>
+hdr_order From Date: From: To: Cc: Subject:</screen>
+
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="save-hook">
+ <title>Specify default save filename </title>
+
+ <para>
+ Usage: <literal>save-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ filename
+ </emphasis>
+ </para>
+
+ <para>
+ This command is used to override the default filename used when saving
+ messages. <emphasis>filename</emphasis> will be used as the default
+ filename if the message is
+ <emphasis>From:</emphasis> an address matching <emphasis>regexp</emphasis> or if you are the author and the
+ message is addressed <emphasis>to:</emphasis> something matching <emphasis>
+ regexp
+ </emphasis>
+ .
+ </para>
+
+ <para>
+ See <link linkend="pattern-hook">pattern-hook</link> for information on
+ the exact format of <emphasis>pattern</emphasis>.
+ </para>
+
+ <para>
+ Examples:
+ </para>
+
+ <para>
+
+ <screen>
+save-hook me@(turing\\.)?cs\\.hmc\\.edu$ +elkins
+save-hook aol\\.com$ +spam</screen>
+
+ </para>
+
+ <para>
+ Also see the <link linkend="fcc-save-hook">fcc-save-hook</link>
+ command.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="fcc-hook">
+ <title>Specify default Fcc: mailbox when composing </title>
+
+ <para>
+ Usage: <literal>fcc-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ mailbox
+ </emphasis>
+ </para>
+
+ <para>
+ This command is used to save outgoing mail in a mailbox other than
+ <link linkend="record">record</link>. Mutt-ng searches the initial
+ list of
+ message recipients for the first matching <emphasis>regexp</emphasis>
+ and uses <emphasis>mailbox</emphasis>
+ as the default Fcc: mailbox. If no match is found the message will be
+ saved
+ to <link linkend="record">record</link> mailbox.
+ </para>
+
+ <para>
+ See <link linkend="pattern-hook">pattern-hook</link> for information on
+ the exact format of <emphasis>pattern</emphasis>.
+ </para>
+
+ <para>
+ Example: <literal>fcc-hook [@.]aol\\.com$
+ +spammers
+ </literal>
+ </para>
+
+ <para>
+ The above will save a copy of all messages going to the aol.com domain
+ to
+ the `+spammers' mailbox by default. Also see the <link linkend="fcc-save-hook">
+ fcc-save-hook
+ </link>
+ command.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="fcc-save-hook">
+ <title>Specify default save filename and default Fcc: mailbox at once </title>
+
+ <para>
+ Usage: <literal>fcc-save-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ mailbox
+ </emphasis>
+ </para>
+
+ <para>
+ This command is a shortcut, equivalent to doing both a <link linkend="fcc-hook">
+ fcc-hook
+ </link>
+ and a <link linkend="save-hook">save-hook</link> with its arguments.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="send-hook">
+ <title>Change settings based upon message recipients </title>
+
+ <para>
+ Usage: <literal>reply-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ command
+ </emphasis>
+
+ Usage: <literal>send-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ command
+ </emphasis>
+
+ Usage: <literal>send2-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ command
+ </emphasis>
+ </para>
+
+ <para>
+ These commands can be used to execute arbitrary configuration commands
+ based
+ upon recipients of the message. <emphasis>pattern</emphasis> is a
+ regular expression
+ matching the desired address. <emphasis>command</emphasis> is executed
+ when <emphasis>regexp</emphasis>
+ matches recipients of the message.
+ </para>
+
+ <para>
+ <literal>reply-hook</literal> is matched against the message you are <emphasis>
+ replying
+ </emphasis>
+ <emphasis role="bold">to</emphasis>, instead of the message you are <emphasis>
+ sending
+ </emphasis>
+ .<literal>send-hook</literal> is
+ matched against all messages, both <emphasis>new</emphasis> and <emphasis>
+ replies
+ </emphasis>
+ .<emphasis role="bold">Note:</emphasis>
+ <literal>reply-hook</literal>s are matched <emphasis role="bold">before</emphasis> the <literal>
+ send-hook
+ </literal>
+ ,<emphasis role="bold">regardless</emphasis>
+ of the order specified in the users's configuration file.
+ </para>
+
+ <para>
+ <literal>send2-hook</literal> is matched every time a message is
+ changed, either
+ by editing it, or by using the compose menu to change its recipients
+ or subject. <literal>send2-hook</literal> is executed after <literal>
+ send-hook
+ </literal>
+ ,and
+ can, e.g., be used to set parameters such as the <link linkend="sendmail">
+ sendmail
+ </link>
+ variable depending on the message's sender
+ address.
+ </para>
+
+ <para>
+ For each type of <literal>send-hook</literal> or <literal>reply-hook</literal>, when multiple matches
+ occur, commands are executed in the order they are specified in the
+ muttrc
+ (for that type of hook).
+ </para>
+
+ <para>
+ See <link linkend="pattern-hook">pattern-hook</link> for information on
+ the exact format of <emphasis>pattern</emphasis>.
+ </para>
+
+ <para>
+ Example: <literal>send-hook mutt "set mime_forward
+ signature=''"
+ </literal>
+ </para>
+
+ <para>
+ Another typical use for this command is to change the values of the
+ <link linkend="attribution">attribution</link>, <link linkend="signature">
+ signature
+ </link>
+ and <link linkend="locale">locale</link>
+ variables in order to change the language of the attributions and
+ signatures based upon the recipients.
+ </para>
+
+ <para>
+ <emphasis role="bold">Note:</emphasis> the send-hook's are only
+ executed ONCE after getting the initial
+ list of recipients. Adding a recipient after replying or editing the
+ message will NOT cause any send-hook to be executed. Also note that
+ my_hdr commands which modify recipient headers, or the message's
+ subject, don't have any effect on the current message when executed
+ from a send-hook.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="message-hook">
+ <title>Change settings before formatting a message </title>
+
+ <para>
+ Usage: <literal>message-hook</literal> [!]<emphasis>pattern</emphasis> <emphasis>
+ command
+ </emphasis>
+ </para>
+
+ <para>
+ This command can be used to execute arbitrary configuration commands
+ before viewing or formatting a message based upon information about the
+ message.
+ <emphasis>command</emphasis> is executed if the <emphasis>pattern</emphasis> matches the message to be
+ displayed. When multiple matches occur, commands are executed in the
+ order
+ they are specified in the muttrc.
+ </para>
+
+ <para>
+ See <link linkend="pattern-hook">pattern-hook</link> for
+ information on the exact format of <emphasis>pattern</emphasis>.
+ </para>
+
+ <para>
+ Example:
+
+ <screen>
+message-hook ~A 'set pager=builtin'
+message-hook '~f freshmeat-news' 'set pager="less \"+/^ subject:.*\""'</screen>
+
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="crypt-hook">
+ <title>Choosing the cryptographic key of the recipient </title>
+
+ <para>
+ Usage: <literal>crypt-hook</literal> <emphasis>pattern</emphasis> <emphasis>
+ keyid
+ </emphasis>
+ </para>
+
+ <para>
+ When encrypting messages with PGP or OpenSSL, you may want to associate
+ a certain
+ key with a given e-mail address automatically, either because the
+ recipient's public key can't be deduced from the destination address,
+ or because, for some reasons, you need to override the key Mutt-ng
+ wouldnormally use. The crypt-hook command provides a method by which
+ you can
+ specify the ID of the public key to be used when encrypting messages to
+ a certain recipient.
+ </para>
+
+ <para>
+ The meaning of "key id" is to be taken broadly in this context: You
+ can either put a numerical key ID here, an e-mail address, or even
+ just a real name.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="push">
+ <title>Adding key sequences to the keyboard buffer </title>
+
+ <para>
+ Usage: <literal>push</literal> <emphasis>string</emphasis>
+ </para>
+
+ <para>
+ This command adds the named string to the keyboard buffer. The string
+ may
+ contain control characters, key names and function names like the
+ sequence
+ string in the <link linkend="macro">macro</link> command. You may use
+ it to
+ automatically run a sequence of commands at startup, or when entering
+ certain folders.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="exec">
+ <title>Executing functions </title>
+
+ <para>
+ Usage: <literal>exec</literal> <emphasis>function</emphasis> [ <emphasis>
+ function
+ </emphasis>
+ ... ]
+ </para>
+
+ <para>
+ This command can be used to execute any function. Functions are
+ listed in the <link linkend="functions">functions</link>.
+ ``exec function'' is equivalent to ``push <function>''.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="score-command">
+ <title>Message Scoring </title>
+
+ <para>
+ Usage: <literal>score</literal> <emphasis>pattern</emphasis> <emphasis>
+ value
+ </emphasis>
+
+ Usage: <literal>unscore</literal> <emphasis>pattern</emphasis> [ <emphasis>
+ pattern
+ </emphasis>
+ ... ]
+ </para>
+
+ <para>
+ In situations where you have to cope with a lot of emails, e.g.
+ when you read many different mailing lists, and take part in
+ discussions, it is always useful to have the important messages
+ marked and the annoying messages or the ones that you aren't
+ interested in deleted. For this purpose, mutt-ng features a
+ mechanism called ``scoring''.
+ </para>
+
+ <para>
+ When you use scoring, every message has a base score of 0. You
+ can then use the <literal>score</literal> command to define patterns
+ and a
+ positive or negative value associated with it. When a pattern
+ matches a message, the message's score will be raised or lowered by
+ the amount of the value associated with the pattern.
+ </para>
+
+ <para>
+
+ <screen>
+score "~f nion@muttng\.org" 50
+score "~f @sco\.com" -100</screen>
+
+ </para>
+
+ <para>
+ If the pattern matches, it is also possible to set the score
+ value of the current message to a certain value and then stop
+ evaluation:
+ </para>
+
+ <para>
+
+ <screen>
+score "~f santaclaus@northpole\.int" =666</screen>
+
+ </para>
+
+ <para>
+ What is important to note is that negative score values will be
+ rounded up to 0.
+ </para>
+
+ <para>
+ To make scoring actually useful, the score must be applied in
+ some way. That's what the <emphasis>score thresholds</emphasis> are
+ for. Currently,
+ there are three score thresholds:
+ </para>
+
+ <para>
+
+ <itemizedlist>
+ <listitem>
+
+ <para>
+ flag threshold: when a message has a score value equal or higher
+ than the flag threshold, it will be flagged.
+
+ </para>
+ </listitem>
+ <listitem>
+
+ <para>
+ read threshold: when a message has a score value equal or lower
+ than the read threshold, it will be marked as read.
+
+ </para>
+ </listitem>
+ <listitem>
+
+ <para>
+ delete threshold: when a message has a score value equal or
+ lower than the delete threshold, it will be marked as deleted.
+
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+
+ <para>
+ These three thresholds can be set via the variables <link linkend="score-threshold-flag">
+ score-threshold-flag
+ </link>
+ ,<link linkend="score-threshold-read">score-threshold-read</link>, <link linkend="score-threshold-delete">
+ score-threshold-delete
+ </link>
+ and. By
+ default, <link linkend="score-threshold-read">score-threshold-read</link> and <link linkend="score-threshold-delete">
+ score-threshold-delete
+ </link>
+ are set to
+ <literal>-1</literal>, which means that in the default threshold
+ configuration no
+ message will ever get marked as read or deleted.
+ </para>
+
+ <para>
+ Scoring gets especially interesting when combined with the <literal>
+ color
+ </literal>
+ command
+ and the <literal>˜n</literal> pattern:
+ </para>
+
+ <para>
+
+ <screen>
+color index black yellow "~n 10-"
+color index red yellow "~n 100-"</screen>
+
+ </para>
+
+ <para>
+ The rules above mark all messages with a score between 10 and 99
+ with black and yellow, and messages with a score greater or equal
+ 100 with red and yellow. This might be unusual to you if you're used
+ to e.g. slrn's scoring mechanism, but it is more flexible, as it
+ visually marks different scores.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="spam">
+ <title>Spam detection </title>
+
+ <para>
+ Usage: <literal>spam</literal> <emphasis>pattern</emphasis> <emphasis>
+ format
+ </emphasis>
+
+ Usage: <literal>nospam</literal> <emphasis>pattern</emphasis>
+ </para>
+
+ <para>
+ Mutt-ng has generalized support for external spam-scoring filters.
+ By defining your spam patterns with the <literal>spam</literal> and <literal>
+ nospam
+ </literal>
+ commands, you can <emphasis>limit</emphasis>, <emphasis>search</emphasis>, and <emphasis>
+ sort
+ </emphasis>
+ your
+ mail based on its spam attributes, as determined by the external
+ filter. You also can display the spam attributes in your index
+ display using the <literal>%H</literal> selector in the <link linkend="index-format">
+ index-format
+ </link>
+ variable. (Tip: try <literal>%?H?[%H] ?</literal>
+ to display spam tags only when they are defined for a given message.)
+ </para>
+
+ <para>
+ Your first step is to define your external filter's spam patterns using
+ the <literal>spam</literal> command. <emphasis>pattern</emphasis>
+ should be a regular expression
+ that matches a header in a mail message. If any message in the mailbox
+ matches this regular expression, it will receive a ``spam tag'' or
+ ``spam attribute'' (unless it also matches a <literal>nospam</literal>
+ pattern -- see
+ below.) The appearance of this attribute is entirely up to you, and is
+ governed by the <emphasis>format</emphasis> parameter. <emphasis>format</emphasis> can be any static
+ text, but it also can include back-references from the <emphasis>
+ pattern
+ </emphasis>
+ expression. (A regular expression ``back-reference'' refers to a
+ sub-expression contained within parentheses.) <literal>%1</literal> is replaced with
+ the first back-reference in the regex, <literal>%2</literal>
+ with the second, etc.
+ </para>
+
+ <para>
+ If you're using multiple spam filters, a message can have more than
+ one spam-related header. You can define <literal>spam</literal>
+ patterns for each
+ filter you use. If a message matches two or more of these patterns, and
+ the $spam_separator variable is set to a string, then the
+ message's spam tag will consist of all the <emphasis>format</emphasis>
+ strings joined
+ together, with the value of $spam_separator separating
+ them.
+ </para>
+
+ <para>
+ For example, suppose I use DCC, SpamAssassin, and PureMessage. I might
+ define these spam settings:
+
+ <screen>
+spam "X-DCC-.*-Metrics:.*(....)=many" "90+/DCC-%1"
+spam "X-Spam-Status: Yes" "90+/SA"
+spam "X-PerlMX-Spam: .*Probability=([0-9]+)%" "%1/PM"
+set spam_separator=", "</screen>
+
+ </para>
+
+ <para>
+ If I then received a message that DCC registered with ``many'' hits
+ under the ``Fuz2'' checksum, and that PureMessage registered with a
+ 97% probability of being spam, that message's spam tag would
+ read<literal>90+/DCC-Fuz2, 97/PM</literal>. (The four characters before
+ ``=many'' in a
+ DCC report indicate the checksum used -- in this case, ``Fuz2''.)
+ </para>
+
+ <para>
+ If the $spam_separator variable is unset, then each
+ spam pattern match supersedes the previous one. Instead of getting
+ joined <emphasis>format</emphasis> strings, you'll get only the last
+ one to match.
+ </para>
+
+ <para>
+ The spam tag is what will be displayed in the index when you use
+ <literal>%H</literal> in the <literal>
+ $index_format
+ </literal>
+ variable. It's also the
+ string that the <literal>˜H</literal> pattern-matching expression
+ matches against for
+ <emphasis>search</emphasis> and <emphasis>limit</emphasis> functions.
+ And it's what sorting by spam
+ attribute will use as a sort key.
+ </para>
+
+ <para>
+ That's a pretty complicated example, and most people's actual
+ environments will have only one spam filter. The simpler your
+ configuration, the more effective mutt can be, especially when it comes
+ to sorting.
+ </para>
+
+ <para>
+ Generally, when you sort by spam tag, mutt will sort <emphasis>
+ lexically
+ </emphasis>
+ --
+ that is, by ordering strings alphnumerically. However, if a spam tag
+ begins with a number, mutt will sort numerically first, and lexically
+ only when two numbers are equal in value. (This is like UNIX's
+ <literal>sort -n</literal>.) A message with no spam attributes at all
+ -- that is, one
+ that didn't match <emphasis>any</emphasis> of your <literal>spam</literal> patterns -- is sorted at
+ lowest priority. Numbers are sorted next, beginning with 0 and ranging
+ upward. Finally, non-numeric strings are sorted, with ``a'' taking
+ lowerpriority than ``z''. Clearly, in general, sorting by spam tags is
+ most
+ effective when you can coerce your filter to give you a raw number. But
+ in case you can't, mutt can still do something useful.
+ </para>
+
+ <para>
+ The <literal>nospam</literal> command can be used to write exceptions
+ to <literal>spam</literal>
+ patterns. If a header pattern matches something in a <literal>spam</literal> command,
+ but you nonetheless do not want it to receive a spam tag, you can list
+ amore precise pattern under a <literal>nospam</literal> command.
+ </para>
+
+ <para>
+ If the <emphasis>pattern</emphasis> given to <literal>nospam</literal>
+ is exactly the same as the
+ <emphasis>pattern</emphasis> on an existing <literal>spam</literal>
+ list entry, the effect will be to
+ remove the entry from the spam list, instead of adding an exception.
+ Likewise, if the <emphasis>pattern</emphasis> for a <literal>spam</literal> command matches an entry
+ on the <literal>nospam</literal> list, that <literal>nospam</literal>
+ entry will be removed. If the
+ <emphasis>pattern</emphasis> for <literal>nospam</literal> is ``*'', <emphasis>
+ all entries on both lists
+ </emphasis>
+ will be removed. This might be the default action if you use <literal>
+ spam
+ </literal>
+ and <literal>nospam</literal> in conjunction with a <literal>
+ folder-hook
+ </literal>
+ .
+ </para>
+
+ <para>
+ You can have as many <literal>spam</literal> or <literal>nospam</literal> commands as you like.
+ You can even do your own primitive spam detection within mutt -- for
+ example, if you consider all mail from <literal>MAILER-DAEMON</literal>
+ to be spam,
+ you can use a <literal>spam</literal> command like this:
+ </para>
+
+ <para>
+
+ <screen>
+spam "^From: .*MAILER-DAEMON" "999"</screen>
+
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="set">
+ <title>Setting variables </title>
+
+ <para>
+ Usage: <literal>set</literal> [no|inv]<emphasis>
+ variable
+ </emphasis>
+ [=<emphasis>value</emphasis>] [ <emphasis>variable</emphasis> ... ]
+
+ Usage: <literal>toggle</literal> <emphasis>variable</emphasis> [<emphasis>
+ variable
+ </emphasis>
+ ... ]
+
+ Usage: <literal>unset</literal> <emphasis>variable</emphasis> [<emphasis>
+ variable
+ </emphasis>
+ ... ]
+
+ Usage: <literal>reset</literal> <emphasis>variable</emphasis> [<emphasis>
+ variable
+ </emphasis>
+ ... ]
+ </para>
+
+ <para>
+ This command is used to set (and unset) <link linkend="variables">
+ variables
+ </link>
+ .There are four basic types of variables:
+ boolean, number, string and quadoption. <emphasis>boolean</emphasis>
+ variables can be
+ <emphasis>set</emphasis> (true) or <emphasis>unset</emphasis> (false).
+ <emphasis>number</emphasis> variables can be
+ assigned a positive integer value.
+ </para>
+
+ <para>
+ <emphasis>string</emphasis> variables consist of any number of
+ printable characters.
+ <emphasis>strings</emphasis> must be enclosed in quotes if they contain
+ spaces or tabs. You
+ may also use the ``C'' escape sequences <emphasis role="bold">\n</emphasis> and <emphasis role="bold">
+ \t
+ </emphasis>
+ for
+ newline and tab, respectively.
+ </para>
+
+ <para>
+ <emphasis>quadoption</emphasis> variables are used to control whether
+ or not to be prompted
+ for certain actions, or to specify a default action. A value of <emphasis>
+ yes
+ </emphasis>
+ will cause the action to be carried out automatically as if you had
+ answered
+ yes to the question. Similarly, a value of <emphasis>no</emphasis>
+ will cause the the
+ action to be carried out as if you had answered ``no.'' A value of
+ <emphasis>ask-yes</emphasis> will cause a prompt with a default answer
+ of ``yes'' and
+ <emphasis>ask-no</emphasis> will provide a default answer of ``no.''
+ </para>
+
+ <para>
+ Prefixing a variable with ``no'' will unset it. Example: <literal>set
+ noaskbcc
+ </literal>
+ .
+ </para>
+
+ <para>
+ For <emphasis>boolean</emphasis> variables, you may optionally prefix
+ the variable name with
+ <literal>inv</literal> to toggle the value (on or off). This is useful
+ when writing
+ macros. Example: <literal>set invsmart_wrap</literal>.
+ </para>
+
+ <para>
+ The <literal>toggle</literal> command automatically prepends the <literal>
+ inv
+ </literal>
+ prefix to all
+ specified variables.
+ </para>
+
+ <para>
+ The <literal>unset</literal> command automatically prepends the <literal>
+ no
+ </literal>
+ prefix to all
+ specified variables.
+ </para>
+
+ <para>
+ Using the enter-command function in the <emphasis>index</emphasis>
+ menu, you can query the
+ value of a variable by prefixing the name of the variable with a
+ question
+ mark:
+ </para>
+
+ <para>
+
+ <screen>
+set ?allow_8bit</screen>
+
+ </para>
+
+ <para>
+ The question mark is actually only required for boolean and quadoption
+ variables.
+ </para>
+
+ <para>
+ The <literal>reset</literal> command resets all given variables to the
+ compile time
+ defaults (hopefully mentioned in this manual). If you use the command
+ <literal>set</literal> and prefix the variable with ``&'' this has
+ the same
+ behavior as the reset command.
+ </para>
+
+ <para>
+ With the <literal>reset</literal> command there exists the special
+ variable ``all'',
+ which allows you to reset all variables to their system defaults.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="source">
+ <title>Reading initialization commands from another file </title>
+
+ <para>
+ Usage: <literal>source</literal> <emphasis>filename</emphasis> [ <emphasis>
+ filename
+ </emphasis>
+ ... ]
+ </para>
+
+ <para>
+ This command allows the inclusion of initialization commands
+ from other files. For example, I place all of my aliases in
+ <literal>˜/.mail_aliases</literal> so that I can make my
+ <literal>˜/.muttrc</literal> readable and keep my aliases
+ private.
+ </para>
+
+ <para>
+ If the filename begins with a tilde (``˜''), it will be expanded
+ to the
+ path of your home directory.
+ </para>
+
+ <para>
+ If the filename ends with a vertical bar (|), then <emphasis>
+ filename
+ </emphasis>
+ is
+ considered to be an executable program from which to read input (eg.
+ <literal>source ˜/bin/myscript|</literal>).
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="unhook">
+ <title>Removing hooks </title>
+
+ <para>
+ Usage: <literal>unhook</literal> [ * | <emphasis>hook-type</emphasis> ]
+ </para>
+
+ <para>
+ This command permits you to flush hooks you have previously defined.
+ You can either remove all hooks by giving the ``*'' character as an
+ argument, or you can remove all hooks of a specific type by saying
+ something like <literal>unhook send-hook</literal>.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ <sect1 id="sect:sharingsetups">
+ <title>Sharing Setups </title>
+
+ <sect2>
+ <title>Character Sets </title>
+
+ <para>
+ As users may run mutt-ng on different systems, the configuration
+ must be maintained because it's likely that people want to use the
+ setup everywhere they use mutt-ng. And mutt-ng tries to help where it
+ can.
+ </para>
+
+ <para>
+ To not produce conflicts with different character sets, mutt-ng
+ allows users to specify in which character set their configuration
+ files are encoded. Please note that while reading the configuration
+ files, this is only respected after the corresponding declaration
+ appears. It's advised to put the following at the very beginning of a
+ users muttngrc:
+ </para>
+
+ <para>
+
+ <screen>
+set config_charset = "..."</screen>
+
+ </para>
+
+ <para>
+ and replacing the dots with the actual character set. To avoid
+ problems while maintaining the setup, vim user's may want to use
+ modelines as show in:
+ </para>
+
+ <para>
+
+ <screen>
+# vim:fileencoding=...:</screen>
+
+ </para>
+
+ <para>
+ while, again, replacing the dots with the appropriate name. This
+ tells vim as which character set to read and save the file.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Modularization </title>
+
+ <para>
+ ``Modularization'' means to divide the setup into several files
+ while sorting the options or commands by topic. Especially for
+ longer setups (e.g. with many hooks), this helps maintaining it
+ and solving trouble.
+ </para>
+
+ <para>
+ When using separation, setups may be, as a whole or in
+ fractions, shared over different systems.
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Conditional parts </title>
+
+ <para>
+ When using a configuration on different systems, the user may not
+ always have influence on how mutt-ng is installed and which features
+ it includes.
+ </para>
+
+ <para>
+ To solve this, mutt-ng contain a feature based on the ``ifdef''
+ patch written for mutt. Its basic syntax is:
+ </para>
+
+ <para>
+
+ <screen>
+ifdef <item> <command>
+ifndef <item> <command></screen>
+
+ </para>
+
+ <para>
+ ...whereby <literal><item></literal> can be one of:
+ </para>
+
+ <para>
+
+ <itemizedlist>
+ <listitem>
+
+ <para>
+ a function name
+
+ </para>
+ </listitem>
+ <listitem>
+
+ <para>
+ a variable name
+
+ </para>
+ </listitem>
+ <listitem>
+
+ <para>
+ a menu name
+
+ </para>
+ </listitem>
+ <listitem>
+
+ <para>
+ a feature name
+
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+
+ <para>
+ All available functions, variables and menus are documented
+ elsewhere in this manual but ``features'' is specific to these
+ two commands. To test for one, prefix one of the following
+ keywords with <literal>feature_</literal>: ncurses,
+ slang, iconv, idn, dotlock, standalone, pop, nntp, imap, ssl,
+ gnutls, sasl, sasl2, libesmtp, compressed, color, classic_pgp,
+ classic_smime, gpgme, header_cache
+ </para>
+
+ <para>
+ As an example, one can use the following in
+ <literal>˜/.muttngrc</literal>:
+ </para>
+
+ <para>
+
+ <screen>
+ifdef feature_imap 'source ~/.mutt-ng/setup-imap'
+ifdef feature_pop 'source ~/.mutt-ng/setup-pop'
+ifdef feature_nntp 'source ~/.mutt-ng/setup-nntp'</screen>
+
+ </para>
+
+ <para>
+ ...to only source <literal>˜/.mutt-ng/setup-imap</literal> if
+ IMAP
+ support is built in, only source <literal>˜/.mutt-ng/setup-pop</literal>
+ if POP support is built in and only source
+ <literal>˜/.mutt-ng/setup-nntp</literal> if NNTP support is
+ built in.
+ </para>
+
+ <para>
+ An example for testing for variable names can be used if users
+ use different revisions of mutt-ng whereby the older one may not
+ have a certain variable. To test for the availability of <link linkend="imap-mail-check">
+ imap-mail-check
+ </link>
+ ,
+ use:
+ </para>
+
+ <para>
+
+ <screen>
+ifdef imap_mail_check 'set imap_mail_check = 300'</screen>
+
+ </para>
+
+ <para>
+ Provided for completeness is the test for menu names. To set <link linkend="pager-index-lines">
+ pager-index-lines
+ </link>
+ only if the pager
+ menu is available, use:
+ </para>
+
+ <para>
+
+ <screen>
+ifdef pager 'set pager_index_lines = 10'</screen>
+
+ </para>
+
+ <para>
+ For completeness, too, the opposite of <literal>ifdef</literal> is
+ provided:
+ <literal>ifndef</literal> which only executes the command if the test
+ fails. For
+ example, the following two examples are equivalent:
+ </para>
+
+ <para>
+
+ <screen>
+ifdef feature_ncurses 'source ~/.mutt-ng/setup-ncurses'
+ifndef feature_ncurses 'source ~/.mutt-ng/setup-slang'</screen>
+
+ </para>
+
+ <para>
+ ...and...
+ </para>
+
+ <para>
+
+ <screen>
+ifdef feature_slang 'source ~/.mutt-ng/setup-slang'
+ifndef feature_slang 'source ~/.mutt-ng/setup-ncurses'</screen>
+
+ </para>
+
+ <para>
+
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect2>
+
+ </sect1>
+
+ <sect1>
+ <title>Obsolete Variables </title>
+
+ <para>
+ In the process of ensuring and creating more consistency, many
+ variables have been renamed and some of the old names were already
+ removed. Please see <link linkend="sect-obsolete">sect-obsolete</link>
+ for a complete list.
+ </para>
+
+ <para>
+
+ </para>
+
+ <para>
+
+ </para>
+
+ </sect1>
+
+ </chapter>