X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/19304f7c526fbe36ba0db2fb80bcaf3bd974d81d..ff3ae4be649cc590bcfec9c89b852a58c309a975:/init.h?ds=sidebyside diff --git a/init.h b/init.h index f9c5bba..98b26ec 100644 --- a/init.h +++ b/init.h @@ -1,21 +1,21 @@ /* * Copyright (C) 1996-2002,2007 Michael R. Elkins * Copyright (C) 2004 g10 Code GmbH - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ + */ #ifdef _MAKEDOC # include "config.h" @@ -197,7 +197,10 @@ struct option_t MuttVars[] = { /* ** .pp ** This variable is a colon-separated list of character encoding - ** schemes for text file attachments. + ** schemes for text file attachments. Mutt uses this setting to guess + ** which encoding files being attached are encoded in to convert them to + ** a proper character set given in $$send_charset. + ** .pp ** If \fIunset\fP, the value of $$charset will be used instead. ** For example, the following configuration would work for Japanese ** text handling: @@ -260,6 +263,14 @@ struct option_t MuttVars[] = { ** in a reply. For a full listing of defined \fCprintf(3)\fP-like sequences see ** the section on $$index_format. */ + { "auto_tag", DT_BOOL, R_NONE, OPTAUTOTAG, 0 }, + /* + ** .pp + ** When \fIset\fP, functions in the \fIindex\fP menu which affect a message + ** will be applied to all tagged messages (if there are any). When + ** unset, you must first use the \fC\fP function (bound to ``;'' + ** by default) to make the next function apply to all tagged messages. + */ { "autoedit", DT_BOOL, R_NONE, OPTAUTOEDIT, 0 }, /* ** .pp @@ -269,15 +280,12 @@ struct option_t MuttVars[] = { ** message. The send-menu may still be accessed once you have finished ** editing the body of your message. ** .pp - ** Also see $$fast_reply. - */ - { "auto_tag", DT_BOOL, R_NONE, OPTAUTOTAG, 0 }, - /* ** .pp - ** When \fIset\fP, functions in the \fIindex\fP menu which affect a message - ** will be applied to all tagged messages (if there are any). When - ** unset, you must first use the \fC\fP function (bound to ``;'' - ** by default) to make the next function apply to all tagged messages. + ** \fBNote:\fP when this option is \fIset\fP, you cannot use send-hooks that depend + ** on the recipients when composing a new (non-reply) message, as the initial + ** list of recipients is empty. + ** .pp + ** Also see $$fast_reply. */ { "beep", DT_BOOL, R_NONE, OPTBEEP, 1 }, /* @@ -314,21 +322,27 @@ struct option_t MuttVars[] = { ** follow these menus. The option is \fIunset\fP by default because many ** visual terminals don't permit making the cursor invisible. */ - { "check_mbox_size", DT_BOOL, R_NONE, OPTCHECKMBOXSIZE, 0 }, +#if defined(USE_SSL) + { "certificate_file", DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates" }, /* ** .pp - ** When this variable is \fIset\fP, mutt will use file size attribute instead of - ** access time when checking for new mail in mbox and mmdf folders. + ** This variable specifies the file where the certificates you trust + ** are saved. When an unknown certificate is encountered, you are asked + ** if you accept it or not. If you accept it, the certificate can also + ** be saved in this file and further connections are automatically + ** accepted. ** .pp - ** This variable is \fIunset\fP by default and should only be enabled when - ** new mail detection for these folder types is unreliable or doesn't work. + ** You can also manually add CA certificates in this file. Any server + ** certificate that is signed with one of these CA certificates is + ** also automatically accepted. ** .pp - ** Note that enabling this variable should happen before any ``$mailboxes'' - ** directives occur in configuration files regarding mbox or mmdf folders - ** because mutt needs to determine the initial new mail status of such a - ** mailbox by performing a fast mailbox scan when it is defined. - ** Afterwards the new mail status is tracked by file size changes. + ** Example: + ** .ts + ** set certificate_file=~/.mutt/certificates + ** .te + ** */ +#endif { "charset", DT_STR, R_NONE, UL &Charset, UL 0 }, /* ** .pp @@ -341,6 +355,21 @@ struct option_t MuttVars[] = { ** \fBNote:\fP It should only be set in case Mutt isn't abled to determine the ** character set used correctly. */ + { "check_mbox_size", DT_BOOL, R_NONE, OPTCHECKMBOXSIZE, 0 }, + /* + ** .pp + ** When this variable is \fIset\fP, mutt will use file size attribute instead of + ** access time when checking for new mail in mbox and mmdf folders. + ** .pp + ** This variable is \fIunset\fP by default and should only be enabled when + ** new mail detection for these folder types is unreliable or doesn't work. + ** .pp + ** Note that enabling this variable should happen before any ``$mailboxes'' + ** directives occur in configuration files regarding mbox or mmdf folders + ** because mutt needs to determine the initial new mail status of such a + ** mailbox by performing a fast mailbox scan when it is defined. + ** Afterwards the new mail status is tracked by file size changes. + */ { "check_new", DT_BOOL, R_NONE, OPTCHECKNEW, 1 }, /* ** .pp @@ -360,12 +389,6 @@ struct option_t MuttVars[] = { ** When \fIunset\fP, Mutt will not collapse a thread if it contains any ** unread messages. */ - { "uncollapse_jump", DT_BOOL, R_NONE, OPTUNCOLLAPSEJUMP, 0 }, - /* - ** .pp - ** When \fIset\fP, Mutt will jump to the next unread message, if any, - ** when the current thread is \fIun\fPcollapsed. - */ { "compose_format", DT_STR, R_BOTH, UL &ComposeFormat, UL "-- Mutt: Compose [Approx. msg size: %l Atts: %a]%>-" }, /* ** .pp @@ -427,21 +450,18 @@ struct option_t MuttVars[] = { ** will be saved for later references. Also see $$record, ** $$save_name, $$force_name and ``$fcc-hook''. */ - { "crypt_use_gpgme", DT_BOOL, R_NONE, OPTCRYPTUSEGPGME, 0 }, - /* - ** .pp - ** This variable controls the use of the GPGME-enabled crypto backends. - ** If it is \fIset\fP and Mutt was built with gpgme support, the gpgme code for - ** S/MIME and PGP will be used instead of the classic code. Note that - ** you need to set this option in .muttrc; it won't have any effect when - ** used interactively. - */ - { "crypt_use_pka", DT_BOOL, R_NONE, OPTCRYPTUSEPKA, 0 }, + { "pgp_autoencrypt", DT_SYN, R_NONE, UL "crypt_autoencrypt", 0 }, + { "crypt_autoencrypt", DT_BOOL, R_NONE, OPTCRYPTAUTOENCRYPT, 0 }, /* ** .pp - ** Controls whether mutt uses PKA - ** (see http://www.g10code.de/docs/pka-intro.de.pdf) during signature - ** verification (only supported by the GPGME backend). + ** Setting this variable will cause Mutt to always attempt to PGP + ** encrypt outgoing messages. This is probably only useful in + ** connection to the ``$send-hook'' command. It can be overridden + ** by use of the pgp menu, when encryption is not required or + ** signing is requested as well. If $$smime_is_default is \fIset\fP, + ** then OpenSSL is used instead to create S/MIME messages and + ** settings can be overridden by use of the smime menu instead. + ** (Crypto only) */ { "crypt_autopgp", DT_BOOL, R_NONE, OPTCRYPTAUTOPGP, 1 }, /* @@ -451,6 +471,18 @@ struct option_t MuttVars[] = { ** $$crypt_replyencrypt, ** $$crypt_autosign, $$crypt_replysign and $$smime_is_default. */ + { "pgp_autosign", DT_SYN, R_NONE, UL "crypt_autosign", 0 }, + { "crypt_autosign", DT_BOOL, R_NONE, OPTCRYPTAUTOSIGN, 0 }, + /* + ** .pp + ** Setting this variable will cause Mutt to always attempt to + ** cryptographically sign outgoing messages. This can be overridden + ** by use of the pgp menu, when signing is not required or + ** encryption is requested as well. If $$smime_is_default is \fIset\fP, + ** then OpenSSL is used instead to create S/MIME messages and settings can + ** be overridden by use of the smime menu instead of the pgp menu. + ** (Crypto only) + */ { "crypt_autosmime", DT_BOOL, R_NONE, OPTCRYPTAUTOSMIME, 1 }, /* ** .pp @@ -459,6 +491,71 @@ struct option_t MuttVars[] = { ** $$crypt_replyencrypt, ** $$crypt_autosign, $$crypt_replysign and $$smime_is_default. */ + { "pgp_replyencrypt", DT_SYN, R_NONE, UL "crypt_replyencrypt", 1 }, + { "crypt_replyencrypt", DT_BOOL, R_NONE, OPTCRYPTREPLYENCRYPT, 1 }, + /* + ** .pp + ** If \fIset\fP, automatically PGP or OpenSSL encrypt replies to messages which are + ** encrypted. + ** (Crypto only) + */ + { "pgp_replysign", DT_SYN, R_NONE, UL "crypt_replysign", 0 }, + { "crypt_replysign", DT_BOOL, R_NONE, OPTCRYPTREPLYSIGN, 0 }, + /* + ** .pp + ** If \fIset\fP, automatically PGP or OpenSSL sign replies to messages which are + ** signed. + ** .pp + ** \fBNote:\fP this does not work on messages that are encrypted + ** \fIand\fP signed! + ** (Crypto only) + */ + { "pgp_replysignencrypted", DT_SYN, R_NONE, UL "crypt_replysignencrypted", 0}, + { "crypt_replysignencrypted", DT_BOOL, R_NONE, OPTCRYPTREPLYSIGNENCRYPTED, 0 }, + /* + ** .pp + ** If \fIset\fP, automatically PGP or OpenSSL sign replies to messages + ** which are encrypted. This makes sense in combination with + ** $$crypt_replyencrypt, because it allows you to sign all + ** messages which are automatically encrypted. This works around + ** the problem noted in $$crypt_replysign, that mutt is not able + ** to find out whether an encrypted message is also signed. + ** (Crypto only) + */ + { "crypt_timestamp", DT_BOOL, R_NONE, OPTCRYPTTIMESTAMP, 1 }, + /* + ** .pp + ** If \fIset\fP, mutt will include a time stamp in the lines surrounding + ** PGP or S/MIME output, so spoofing such lines is more difficult. + ** If you are using colors to mark these lines, and rely on these, + ** you may \fIunset\fP this setting. + ** (Crypto only) + */ + { "crypt_use_gpgme", DT_BOOL, R_NONE, OPTCRYPTUSEGPGME, 0 }, + /* + ** .pp + ** This variable controls the use of the GPGME-enabled crypto backends. + ** If it is \fIset\fP and Mutt was built with gpgme support, the gpgme code for + ** S/MIME and PGP will be used instead of the classic code. Note that + ** you need to set this option in .muttrc; it won't have any effect when + ** used interactively. + */ + { "crypt_use_pka", DT_BOOL, R_NONE, OPTCRYPTUSEPKA, 0 }, + /* + ** .pp + ** Controls whether mutt uses PKA + ** (see http://www.g10code.de/docs/pka-intro.de.pdf) during signature + ** verification (only supported by the GPGME backend). + */ + { "pgp_verify_sig", DT_SYN, R_NONE, UL "crypt_verify_sig", 0}, + { "crypt_verify_sig", DT_QUAD, R_NONE, OPT_VERIFYSIG, M_YES }, + /* + ** .pp + ** If \fI``yes''\fP, always attempt to verify PGP or S/MIME signatures. + ** If \fI``ask-*''\fP, ask whether or not to verify the signature. + ** If \Fi``no''\fP, never attempt to verify cryptographic signatures. + ** (Crypto only) + */ { "date_format", DT_STR, R_BOTH, UL &DateFmt, UL "!%a, %b %d, %Y at %I:%M:%S%p %Z" }, /* ** .pp @@ -600,6 +697,14 @@ struct option_t MuttVars[] = { ** agents tend to do with messages (in order to prevent tools from ** misinterpreting the line as a mbox message separator). */ +#if defined(USE_SSL_OPENSSL) + { "entropy_file", DT_PATH, R_NONE, UL &SslEntropyFile, 0 }, + /* + ** .pp + ** The file which includes random data that is used to initialize SSL + ** library functions. + */ +#endif { "envelope_from_address", DT_ADDR, R_NONE, UL &EnvFrom, 0 }, /* ** .pp @@ -621,7 +726,7 @@ struct option_t MuttVars[] = { ** \fBNote:\fP this variable has no effect when the $$autoedit ** variable is \fIset\fP. */ - { "fcc_attach", DT_BOOL, R_NONE, OPTFCCATTACH, 1 }, + { "fcc_attach", DT_QUAD, R_NONE, OPT_FCCATTACH, M_YES }, /* ** .pp ** This variable controls whether or not attachments on outgoing messages @@ -654,7 +759,9 @@ struct option_t MuttVars[] = { ** .dl ** .dt %C .dd current file number ** .dt %d .dd date/time folder was last modified - ** .dt %f .dd filename + ** .dt %f .dd filename (``/'' is appended to directory names, + ** ``@'' to symbolic links and ``*'' to executable + ** files) ** .dt %F .dd file permissions ** .dt %g .dd group name (or numeric gid, if missing) ** .dt %l .dd number of hard links @@ -710,6 +817,18 @@ struct option_t MuttVars[] = { { "forw_decode", DT_SYN, R_NONE, UL "forward_decode", 0 }, /* */ + { "forward_decrypt", DT_BOOL, R_NONE, OPTFORWDECRYPT, 1 }, + /* + ** .pp + ** Controls the handling of encrypted messages when forwarding a message. + ** When \fIset\fP, the outer layer of encryption is stripped off. This + ** variable is only used if $$mime_forward is \fIset\fP and + ** $$mime_forward_decode is \fIunset\fP. + ** (PGP only) + */ + { "forw_decrypt", DT_SYN, R_NONE, UL "forward_decrypt", 0 }, + /* + */ { "forward_edit", DT_QUAD, R_NONE, OPT_FORWEDIT, M_YES }, /* ** .pp @@ -754,7 +873,7 @@ struct option_t MuttVars[] = { ** If the GECOS field contains a string like ``lastname, firstname'' then you ** should set it to ``\fC.*\fP''. ** .pp - ** This can be useful if you see the following behavior: you address a e-mail + ** This can be useful if you see the following behavior: you address an e-mail ** to user ID ``stevef'' whose full name is ``Steve Franklin''. If mutt expands ** ``stevef'' to ``"Franklin" stevef@foo.bar'' then you should set the $$gecos_mask to ** a regular expression that will match the whole name so mutt will expand @@ -778,6 +897,42 @@ struct option_t MuttVars[] = { ** of the message you are replying to into the edit buffer. ** The $$weed setting applies. */ +#ifdef USE_HCACHE + { "header_cache", DT_PATH, R_NONE, UL &HeaderCache, 0 }, + /* + ** .pp + ** This variable points to the header cache database. + ** If pointing to a directory Mutt will contain a header cache + ** database file per folder, if pointing to a file that file will + ** be a single global header cache. By default it is \fIunset\fP so no header + ** caching will be used. + ** .pp + ** Header caching can greatly improve speed when opening POP, IMAP + ** MH or Maildir folders, see ``$caching'' for details. + */ +#if defined(HAVE_QDBM) || defined(HAVE_TC) + { "header_cache_compress", DT_BOOL, R_NONE, OPTHCACHECOMPRESS, 1 }, + /* + ** .pp + ** When mutt is compiled with qdbm or tokyocabinet as header cache backend, + ** this option determines whether the database will be compressed. + ** Compression results in database files roughly being one fifth + ** of the usual diskspace, but the uncompression can result in a + ** slower opening of cached folder(s) which in general is still + ** much faster than opening non header cached folders. + */ +#endif /* HAVE_QDBM */ +#if defined(HAVE_GDBM) || defined(HAVE_DB4) + { "header_cache_pagesize", DT_STR, R_NONE, UL &HeaderCachePageSize, UL "16384" }, + /* + ** .pp + ** When mutt is compiled with either gdbm or bdb4 as the header cache backend, + ** this option changes the database page size. Too large or too small + ** values can waste space, memory, or CPU time. The default should be more + ** or less optimal for most use cases. + */ +#endif /* HAVE_GDBM || HAVE_DB4 */ +#endif /* USE_HCACHE */ { "help", DT_BOOL, R_BOTH, OPTHELP, 1 }, /* ** .pp @@ -843,6 +998,17 @@ struct option_t MuttVars[] = { ** .pp ** The file in which Mutt will save its history. */ + { "honor_disposition", DT_BOOL, R_NONE, OPTHONORDISP, 0 }, + /* + ** .pp + ** When \fIset\fP, Mutt will not display attachments with a + ** disposition of ``attachment'' inline even if it could + ** render the part to plain text. These MIME parts can only + ** be viewed from the attachment menu. + ** .pp + ** If \fIunset\fP, Mutt will render all MIME parts it can + ** properly transform to plain text. + */ { "honor_followup_to", DT_QUAD, R_NONE, OPT_MFUPTO, M_YES }, /* ** .pp @@ -975,7 +1141,7 @@ struct option_t MuttVars[] = { /* ** .pp ** Specifies the password for your IMAP account. If \fIunset\fP, Mutt will - ** prompt you for your password when you invoke the \fC$\fP function + ** prompt you for your password when you invoke the \fC\fP function ** or try to open an IMAP folder. ** .pp ** \fBWarning\fP: you should only use this option when you are on a @@ -1056,12 +1222,11 @@ struct option_t MuttVars[] = { ** message to which you are replying. You are strongly encouraged not to ** change this value, as it tends to agitate the more fanatical netizens. ** .pp + ** The value of this option is ignored if $$text_flowed is set, too because + ** the quoting mechanism is strictly defined for format=flowed. + ** .pp ** This option is a format string, please see the description of ** $$index_format for supported \fCprintf(3)\fP-style sequences. - ** .pp - ** Because for \fCformat=lowed\fP style messages the quoting mechanism - ** is strictly defined, this setting is ignored if $$text_flowed is - ** \fIset\fP. */ { "indent_str", DT_SYN, R_NONE, UL "indent_string", 0 }, /* @@ -1186,18 +1351,6 @@ struct option_t MuttVars[] = { ** DOING!\fP */ #ifdef USE_HCACHE - { "header_cache", DT_PATH, R_NONE, UL &HeaderCache, 0 }, - /* - ** .pp - ** This variable points to the header cache database. - ** If pointing to a directory Mutt will contain a header cache - ** database file per folder, if pointing to a file that file will - ** be a single global header cache. By default it is \fIunset\fP so no header - ** caching will be used. - ** .pp - ** Header caching can greatly improve speed when opening POP, IMAP - ** MH or Maildir folders, see ``$caching'' for details. - */ { "maildir_header_cache_verify", DT_BOOL, R_NONE, OPTHCACHEVERIFY, 1 }, /* ** .pp @@ -1206,38 +1359,16 @@ struct option_t MuttVars[] = { ** message every time the folder is opened (which can be very slow for NFS ** folders). */ -#if defined(HAVE_GDBM) || defined(HAVE_DB4) - { "header_cache_pagesize", DT_STR, R_NONE, UL &HeaderCachePageSize, UL "16384" }, +#endif + { "maildir_trash", DT_BOOL, R_NONE, OPTMAILDIRTRASH, 0 }, /* ** .pp - ** When mutt is compiled with either gdbm or bdb4 as the header cache backend, - ** this option changes the database page size. Too large or too small - ** values can waste space, memory, or CPU time. The default should be more - ** or less optimal for most use cases. + ** If \fIset\fP, messages marked as deleted will be saved with the maildir + ** trashed flag instead of unlinked. \fBNote:\fP this only applies + ** to maildir-style mailboxes. Setting it will have no effect on other + ** mailbox types. */ -#endif /* HAVE_GDBM || HAVE_DB4 */ -#if defined(HAVE_QDBM) || defined(HAVE_TC) - { "header_cache_compress", DT_BOOL, R_NONE, OPTHCACHECOMPRESS, 1 }, - /* - ** .pp - ** When mutt is compiled with qdbm or tokyocabinet as header cache backend, - ** this option determines whether the database will be compressed. - ** Compression results in database files roughly being one fifth - ** of the usual diskspace, but the uncompression can result in a - ** slower opening of cached folder(s) which in general is still - ** much faster than opening non header cached folders. - */ -#endif /* HAVE_QDBM */ -#endif /* USE_HCACHE */ - { "maildir_trash", DT_BOOL, R_NONE, OPTMAILDIRTRASH, 0 }, - /* - ** .pp - ** If \fIset\fP, messages marked as deleted will be saved with the maildir - ** trashed flag instead of unlinked. \fBNote:\fP this only applies - ** to maildir-style mailboxes. Setting it will have no effect on other - ** mailbox types. - */ - { "mark_old", DT_BOOL, R_BOTH, OPTMARKOLD, 1 }, + { "mark_old", DT_BOOL, R_BOTH, OPTMARKOLD, 1 }, /* ** .pp ** Controls whether or not mutt marks \fInew\fP \fBunread\fP @@ -1273,13 +1404,8 @@ struct option_t MuttVars[] = { /* ** .pp ** The default mailbox type used when creating new folders. May be any of - ** ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. - */ - { "metoo", DT_BOOL, R_NONE, OPTMETOO, 0 }, - /* - ** .pp - ** If \fIunset\fP, Mutt will remove your address (see the ``$alternates'' - ** command) from the list of recipients when replying to a message. + ** ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. This is overriden by the + ** \fC-m\fP command-line option. */ { "menu_context", DT_NUM, R_NONE, UL &MenuContext, 0 }, /* @@ -1302,6 +1428,39 @@ struct option_t MuttVars[] = { ** is cleared and the next or previous page of the menu is displayed ** (useful for slow links to avoid many redraws). */ +#if defined(USE_IMAP) || defined(USE_POP) + { "message_cache_clean", DT_BOOL, R_NONE, OPTMESSAGECACHECLEAN, 0 }, + /* + ** .pp + ** If \fIset\fP, mutt will clean out obsolete entries from the message cache when + ** the mailbox is synchronized. You probably only want to set it + ** every once in a while, since it can be a little slow + ** (especially for large folders). + */ + { "message_cachedir", DT_PATH, R_NONE, UL &MessageCachedir, 0 }, + /* + ** .pp + ** Set this to a directory and mutt will cache copies of messages from + ** your IMAP and POP servers here. You are free to remove entries at any + ** time. + ** .pp + ** When setting this variable to a directory, mutt needs to fetch every + ** remote message only once and can perform regular expression searches + ** as fast as for local folders. + ** .pp + ** Also see the $$message_cache_clean variable. + */ +#endif + { "message_format", DT_STR, R_NONE, UL &MsgFmt, UL "%s" }, + /* + ** .pp + ** This is the string displayed in the ``attachment'' menu for + ** attachments of type \fCmessage/rfc822\fP. For a full listing of defined + ** \fCprintf(3)\fP-like sequences see the section on $$index_format. + */ + { "msg_format", DT_SYN, R_NONE, UL "message_format", 0 }, + /* + */ { "meta_key", DT_BOOL, R_NONE, OPTMETAKEY, 0 }, /* ** .pp @@ -1313,6 +1472,12 @@ struct option_t MuttVars[] = { ** high bit from \fC0xf8\fP is \fC0x78\fP, which is the ASCII character ** ``x''. */ + { "metoo", DT_BOOL, R_NONE, OPTMETOO, 0 }, + /* + ** .pp + ** If \fIunset\fP, Mutt will remove your address (see the ``$alternates'' + ** command) from the list of recipients when replying to a message. + */ { "mh_purge", DT_BOOL, R_NONE, OPTMHPURGE, 0 }, /* ** .pp @@ -1398,39 +1563,6 @@ struct option_t MuttVars[] = { ** from your spool mailbox to your $$mbox mailbox, or as a result of ** a ``$mbox-hook'' command. */ -#if defined(USE_IMAP) || defined(USE_POP) - { "message_cachedir", DT_PATH, R_NONE, UL &MessageCachedir, 0 }, - /* - ** .pp - ** Set this to a directory and mutt will cache copies of messages from - ** your IMAP and POP servers here. You are free to remove entries at any - ** time. - ** .pp - ** When setting this variable to a directory, mutt needs to fetch every - ** remote message only once and can perform regular expression searches - ** as fast as for local folders. - ** .pp - ** Also see the $$message_cache_clean variable. - */ - { "message_cache_clean", DT_BOOL, R_NONE, OPTMESSAGECACHECLEAN, 0 }, - /* - ** .pp - ** If \fIset\fP, mutt will clean out obsolete entries from the message cache when - ** the mailbox is synchronized. You probably only want to set it - ** every once in a while, since it can be a little slow - ** (especially for large folders). - */ -#endif - { "message_format", DT_STR, R_NONE, UL &MsgFmt, UL "%s" }, - /* - ** .pp - ** This is the string displayed in the ``attachment'' menu for - ** attachments of type \fCmessage/rfc822\fP. For a full listing of defined - ** \fCprintf(3)\fP-like sequences see the section on $$index_format. - */ - { "msg_format", DT_SYN, R_NONE, UL "message_format", 0 }, - /* - */ { "narrow_tree", DT_BOOL, R_TREE|R_INDEX, OPTNARROWTREE, 0 }, /* ** .pp @@ -1468,6 +1600,10 @@ struct option_t MuttVars[] = { ** when displaying the next or previous page in the internal pager. By ** default, Mutt will display the line after the last one on the screen ** at the top of the next page (0 lines of context). + ** .pp + ** This variable also specifies the amount of context given for search + ** results. If positive, this many lines will be given before a match, + ** if 0, the match will be top-aligned. */ { "pager_format", DT_STR, R_PAGER, UL &PagerFmt, UL "-%Z- %C/%m: %-20.20n %s%* -- (%P)" }, /* @@ -1499,119 +1635,104 @@ struct option_t MuttVars[] = { ** when you are at the end of a message and invoke the \fC\fP ** function. */ - { "pgp_autosign", DT_SYN, R_NONE, UL "crypt_autosign", 0 }, - { "crypt_autosign", DT_BOOL, R_NONE, OPTCRYPTAUTOSIGN, 0 }, + { "pgp_auto_decode", DT_BOOL, R_NONE, OPTPGPAUTODEC, 0 }, /* ** .pp - ** Setting this variable will cause Mutt to always attempt to - ** cryptographically sign outgoing messages. This can be overridden - ** by use of the pgp menu, when signing is not required or - ** encryption is requested as well. If $$smime_is_default is \fIset\fP, - ** then OpenSSL is used instead to create S/MIME messages and settings can - ** be overridden by use of the smime menu instead of the pgp menu. - ** (Crypto only) + ** If \fIset\fP, mutt will automatically attempt to decrypt traditional PGP + ** messages whenever the user performs an operation which ordinarily would + ** result in the contents of the message being operated on. For example, + ** if the user displays a pgp-traditional message which has not been manually + ** checked with the \fC$\fP function, mutt will automatically + ** check the message for traditional pgp. */ - { "pgp_autoencrypt", DT_SYN, R_NONE, UL "crypt_autoencrypt", 0 }, - { "crypt_autoencrypt", DT_BOOL, R_NONE, OPTCRYPTAUTOENCRYPT, 0 }, + { "pgp_create_traditional", DT_SYN, R_NONE, UL "pgp_autoinline", 0 }, + { "pgp_autoinline", DT_BOOL, R_NONE, OPTPGPAUTOINLINE, 0 }, /* ** .pp - ** Setting this variable will cause Mutt to always attempt to PGP - ** encrypt outgoing messages. This is probably only useful in - ** connection to the ``$send-hook'' command. It can be overridden - ** by use of the pgp menu, when encryption is not required or - ** signing is requested as well. If $$smime_is_default is \fIset\fP, - ** then OpenSSL is used instead to create S/MIME messages and - ** settings can be overridden by use of the smime menu instead. - ** (Crypto only) - */ - { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1}, - /* + ** This option controls whether Mutt generates old-style inline + ** (traditional) PGP encrypted or signed messages under certain + ** circumstances. This can be overridden by use of the pgp menu, + ** when inline is not required. ** .pp - ** Setting this variable will cause Mutt to ignore OpenPGP subkeys. Instead, - ** the principal key will inherit the subkeys' capabilities. \fIUnset\fP this - ** if you want to play interesting key selection games. + ** Note that Mutt might automatically use PGP/MIME for messages + ** which consist of more than a single MIME part. Mutt can be + ** configured to ask before sending PGP/MIME messages when inline + ** (traditional) would not work. + ** .pp + ** Also see the $$pgp_mime_auto variable. + ** .pp + ** Also note that using the old-style PGP message format is \fBstrongly\fP + ** \fBdeprecated\fP. ** (PGP only) */ - { "pgp_replyencrypt", DT_SYN, R_NONE, UL "crypt_replyencrypt", 1 }, - { "crypt_replyencrypt", DT_BOOL, R_NONE, OPTCRYPTREPLYENCRYPT, 1 }, + { "pgp_check_exit", DT_BOOL, R_NONE, OPTPGPCHECKEXIT, 1 }, /* ** .pp - ** If \fIset\fP, automatically PGP or OpenSSL encrypt replies to messages which are - ** encrypted. - ** (Crypto only) + ** If \fIset\fP, mutt will check the exit code of the PGP subprocess when + ** signing or encrypting. A non-zero exit code means that the + ** subprocess failed. + ** (PGP only) */ - { "pgp_replysign", DT_SYN, R_NONE, UL "crypt_replysign", 0 }, - { "crypt_replysign", DT_BOOL, R_NONE, OPTCRYPTREPLYSIGN, 0 }, + { "pgp_clearsign_command", DT_STR, R_NONE, UL &PgpClearSignCommand, 0 }, /* ** .pp - ** If \fIset\fP, automatically PGP or OpenSSL sign replies to messages which are - ** signed. + ** This format is used to create an old-style ``clearsigned'' PGP + ** message. Note that the use of this format is \fBstrongly\fP + ** \fBdeprecated\fP. ** .pp - ** \fBNote:\fP this does not work on messages that are encrypted - ** \fIand\fP signed! - ** (Crypto only) + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) */ - { "pgp_replysignencrypted", DT_SYN, R_NONE, UL "crypt_replysignencrypted", 0}, - { "crypt_replysignencrypted", DT_BOOL, R_NONE, OPTCRYPTREPLYSIGNENCRYPTED, 0 }, + { "pgp_decode_command", DT_STR, R_NONE, UL &PgpDecodeCommand, 0}, /* ** .pp - ** If \fIset\fP, automatically PGP or OpenSSL sign replies to messages - ** which are encrypted. This makes sense in combination with - ** $$crypt_replyencrypt, because it allows you to sign all - ** messages which are automatically encrypted. This works around - ** the problem noted in $$crypt_replysign, that mutt is not able - ** to find out whether an encrypted message is also signed. - ** (Crypto only) - */ - { "crypt_timestamp", DT_BOOL, R_NONE, OPTCRYPTTIMESTAMP, 1 }, - /* + ** This format strings specifies a command which is used to decode + ** application/pgp attachments. ** .pp - ** If \fIset\fP, mutt will include a time stamp in the lines surrounding - ** PGP or S/MIME output, so spoofing such lines is more difficult. - ** If you are using colors to mark these lines, and rely on these, - ** you may \fIunset\fP this setting. - ** (Crypto only) - */ - { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, - /* + ** The PGP command formats have their own set of \fCprintf(3)\fP-like sequences: + ** .dl + ** .dt %p .dd Expands to PGPPASSFD=0 when a pass phrase is needed, to an empty + ** string otherwise. Note: This may be used with a %? construct. + ** .dt %f .dd Expands to the name of a file containing a message. + ** .dt %s .dd Expands to the name of a file containing the signature part + ** . of a \fCmultipart/signed\fP attachment when verifying it. + ** .dt %a .dd The value of $$pgp_sign_as. + ** .dt %r .dd One or more key IDs. + ** .de ** .pp - ** If \fIset\fP, mutt will use a possibly-running \fCgpg-agent(1)\fP process. + ** For examples on how to configure these formats for the various versions + ** of PGP which are floating around, see the pgp and gpg sample configuration files in + ** the \fCsamples/\fP subdirectory which has been installed on your system + ** alongside the documentation. ** (PGP only) */ - { "pgp_verify_sig", DT_SYN, R_NONE, UL "crypt_verify_sig", 0}, - { "crypt_verify_sig", DT_QUAD, R_NONE, OPT_VERIFYSIG, M_YES }, + { "pgp_decrypt_command", DT_STR, R_NONE, UL &PgpDecryptCommand, 0}, /* ** .pp - ** If \fI``yes''\fP, always attempt to verify PGP or S/MIME signatures. - ** If \fI``ask-*''\fP, ask whether or not to verify the signature. - ** If \Fi``no''\fP, never attempt to verify cryptographic signatures. - ** (Crypto only) - */ - { "smime_is_default", DT_BOOL, R_NONE, OPTSMIMEISDEFAULT, 0}, - /* + ** This command is used to decrypt a PGP encrypted message. ** .pp - ** The default behaviour of mutt is to use PGP on all auto-sign/encryption - ** operations. To override and to use OpenSSL instead this must be \fIset\fP. - ** However, this has no effect while replying, since mutt will automatically - ** select the same application that was used to sign/encrypt the original - ** message. (Note that this variable can be overridden by unsetting $$crypt_autosmime.) - ** (S/MIME only) + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) */ - { "smime_ask_cert_label", DT_BOOL, R_NONE, OPTASKCERTLABEL, 1 }, + { "pgp_encrypt_only_command", DT_STR, R_NONE, UL &PgpEncryptOnlyCommand, 0}, /* ** .pp - ** This flag controls whether you want to be asked to enter a label - ** for a certificate about to be added to the database or not. It is - ** \fIset\fP by default. - ** (S/MIME only) + ** This command is used to encrypt a body part without signing it. + ** .pp + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) */ - { "smime_decrypt_use_default_key", DT_BOOL, R_NONE, OPTSDEFAULTDECRYPTKEY, 1 }, + { "pgp_encrypt_sign_command", DT_STR, R_NONE, UL &PgpEncryptSignCommand, 0}, /* ** .pp - ** If \fIset\fP (default) this tells mutt to use the default key for decryption. Otherwise, - ** if managing multiple certificate-key-pairs, mutt will try to use the mailbox-address - ** to determine the key to use. It will ask you to supply a key, if it can't find one. - ** (S/MIME only) + ** This command is used to both sign and encrypt a body part. + ** .pp + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) */ { "pgp_entry_format", DT_STR, R_NONE, UL &PgpEntryFormat, UL "%4n %t%f %4l/0x%k %-4a %2c %u" }, /* @@ -1633,55 +1754,95 @@ struct option_t MuttVars[] = { ** .pp ** (PGP only) */ - { "pgp_good_sign", DT_RX, R_NONE, UL &PgpGoodSign, 0 }, + { "pgp_export_command", DT_STR, R_NONE, UL &PgpExportCommand, 0}, /* ** .pp - ** If you assign a text to this variable, then a PGP signature is only - ** considered verified if the output from $$pgp_verify_command contains - ** the text. Use this variable if the exit code from the command is 0 - ** even for bad signatures. - ** (PGP only) - */ - { "pgp_check_exit", DT_BOOL, R_NONE, OPTPGPCHECKEXIT, 1 }, + ** This command is used to export a public key from the user's + ** key ring. + ** .pp + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) + */ + { "pgp_getkeys_command", DT_STR, R_NONE, UL &PgpGetkeysCommand, 0}, /* ** .pp - ** If \fIset\fP, mutt will check the exit code of the PGP subprocess when - ** signing or encrypting. A non-zero exit code means that the - ** subprocess failed. + ** This command is invoked whenever mutt will need public key information. + ** Of the sequences supported by $$pgp_decode_command, %r is the only + ** \fCprintf(3)\fP-like sequence used with this format. ** (PGP only) */ - { "pgp_long_ids", DT_BOOL, R_NONE, OPTPGPLONGIDS, 0 }, + { "pgp_good_sign", DT_RX, R_NONE, UL &PgpGoodSign, 0 }, /* ** .pp - ** If \fIset\fP, use 64 bit PGP key IDs, if \fIunset\fP use the normal 32 bit key IDs. + ** If you assign a text to this variable, then a PGP signature is only + ** considered verified if the output from $$pgp_verify_command contains + ** the text. Use this variable if the exit code from the command is 0 + ** even for bad signatures. ** (PGP only) */ - { "pgp_retainable_sigs", DT_BOOL, R_NONE, OPTPGPRETAINABLESIG, 0 }, + { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1}, /* ** .pp - ** If \fIset\fP, signed and encrypted messages will consist of nested - ** \fCmultipart/signed\fP and \fCmultipart/encrypted\fP body parts. + ** Setting this variable will cause Mutt to ignore OpenPGP subkeys. Instead, + ** the principal key will inherit the subkeys' capabilities. \fIUnset\fP this + ** if you want to play interesting key selection games. + ** (PGP only) + */ + { "pgp_import_command", DT_STR, R_NONE, UL &PgpImportCommand, 0}, + /* ** .pp - ** This is useful for applications like encrypted and signed mailing - ** lists, where the outer layer (\fCmultipart/encrypted\fP) can be easily - ** removed, while the inner \fCmultipart/signed\fP part is retained. + ** This command is used to import a key from a message into + ** the user's public key ring. + ** .pp + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. ** (PGP only) */ - { "pgp_create_traditional", DT_SYN, R_NONE, UL "pgp_autoinline", 0 }, - { "pgp_autoinline", DT_BOOL, R_NONE, OPTPGPAUTOINLINE, 0 }, + { "pgp_list_pubring_command", DT_STR, R_NONE, UL &PgpListPubringCommand, 0}, /* ** .pp - ** This option controls whether Mutt generates old-style inline - ** (traditional) PGP encrypted or signed messages under certain - ** circumstances. This can be overridden by use of the pgp menu, - ** when inline is not required. + ** This command is used to list the public key ring's contents. The + ** output format must be analogous to the one used by + ** .ts + ** gpg --list-keys --with-colons. + ** .te ** .pp - ** Note that Mutt might automatically use PGP/MIME for messages - ** which consist of more than a single MIME part. Mutt can be - ** configured to ask before sending PGP/MIME messages when inline - ** (traditional) would not work. + ** This format is also generated by the \fCpgpring\fP utility which comes + ** with mutt. ** .pp - ** Also see the $$pgp_mime_auto variable. + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) + */ + { "pgp_list_secring_command", DT_STR, R_NONE, UL &PgpListSecringCommand, 0}, + /* + ** .pp + ** This command is used to list the secret key ring's contents. The + ** output format must be analogous to the one used by: + ** .ts + ** gpg --list-keys --with-colons. + ** .te + ** .pp + ** This format is also generated by the \fCpgpring\fP utility which comes + ** with mutt. + ** .pp + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) + */ + { "pgp_long_ids", DT_BOOL, R_NONE, OPTPGPLONGIDS, 0 }, + /* + ** .pp + ** If \fIset\fP, use 64 bit PGP key IDs, if \fIunset\fP use the normal 32 bit key IDs. + ** (PGP only) + */ + { "pgp_mime_auto", DT_QUAD, R_NONE, OPT_PGPMIMEAUTO, M_ASKYES }, + /* + ** .pp + ** This option controls whether Mutt will prompt you for + ** automatically sending a (signed/encrypted) message using + ** PGP/MIME when inline (traditional) fails (for any reason). ** .pp ** Also note that using the old-style PGP message format is \fBstrongly\fP ** \fBdeprecated\fP. @@ -1711,6 +1872,17 @@ struct option_t MuttVars[] = { ** (PGP only) ** */ + { "pgp_retainable_sigs", DT_BOOL, R_NONE, OPTPGPRETAINABLESIG, 0 }, + /* + ** .pp + ** If \fIset\fP, signed and encrypted messages will consist of nested + ** \fCmultipart/signed\fP and \fCmultipart/encrypted\fP body parts. + ** .pp + ** This is useful for applications like encrypted and signed mailing + ** lists, where the outer layer (\fCmultipart/encrypted\fP) can be easily + ** removed, while the inner \fCmultipart/signed\fP part is retained. + ** (PGP only) + */ { "pgp_show_unusable", DT_BOOL, R_NONE, OPTPGPSHOWUNUSABLE, 1 }, /* ** .pp @@ -1727,20 +1899,14 @@ struct option_t MuttVars[] = { ** keyid form to specify your key (e.g. \fC0x00112233\fP). ** (PGP only) */ - { "pgp_strict_enc", DT_BOOL, R_NONE, OPTPGPSTRICTENC, 1 }, + { "pgp_sign_command", DT_STR, R_NONE, UL &PgpSignCommand, 0}, /* ** .pp - ** If \fIset\fP, Mutt will automatically encode PGP/MIME signed messages as - ** quoted-printable. Please note that unsetting this variable may - ** lead to problems with non-verifyable PGP signatures, so only change - ** this if you know what you are doing. - ** (PGP only) - */ - { "pgp_timeout", DT_NUM, R_NONE, UL &PgpTimeout, 300 }, - /* + ** This command is used to create the detached PGP signature for a + ** \fCmultipart/signed\fP PGP/MIME body part. ** .pp - ** The number of seconds after which a cached passphrase will expire if - ** not used. + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. ** (PGP only) */ { "pgp_sort_keys", DT_SORT|DT_SORT_KEYS, R_NONE, UL &PgpSortKeys, SORT_ADDRESS }, @@ -1759,59 +1925,26 @@ struct option_t MuttVars[] = { ** ``reverse-''. ** (PGP only) */ - { "pgp_mime_auto", DT_QUAD, R_NONE, OPT_PGPMIMEAUTO, M_ASKYES }, + { "pgp_strict_enc", DT_BOOL, R_NONE, OPTPGPSTRICTENC, 1 }, /* ** .pp - ** This option controls whether Mutt will prompt you for - ** automatically sending a (signed/encrypted) message using - ** PGP/MIME when inline (traditional) fails (for any reason). - ** .pp - ** Also note that using the old-style PGP message format is \fBstrongly\fP - ** \fBdeprecated\fP. + ** If \fIset\fP, Mutt will automatically encode PGP/MIME signed messages as + ** quoted-printable. Please note that unsetting this variable may + ** lead to problems with non-verifyable PGP signatures, so only change + ** this if you know what you are doing. ** (PGP only) */ - { "pgp_auto_decode", DT_BOOL, R_NONE, OPTPGPAUTODEC, 0 }, - /* - ** .pp - ** If \fIset\fP, mutt will automatically attempt to decrypt traditional PGP - ** messages whenever the user performs an operation which ordinarily would - ** result in the contents of the message being operated on. For example, - ** if the user displays a pgp-traditional message which has not been manually - ** checked with the \fC$\fP function, mutt will automatically - ** check the message for traditional pgp. - */ - - /* XXX Default values! */ - - { "pgp_decode_command", DT_STR, R_NONE, UL &PgpDecodeCommand, 0}, + { "pgp_timeout", DT_NUM, R_NONE, UL &PgpTimeout, 300 }, /* ** .pp - ** This format strings specifies a command which is used to decode - ** application/pgp attachments. - ** .pp - ** The PGP command formats have their own set of \fCprintf(3)\fP-like sequences: - ** .dl - ** .dt %p .dd Expands to PGPPASSFD=0 when a pass phrase is needed, to an empty - ** string otherwise. Note: This may be used with a %? construct. - ** .dt %f .dd Expands to the name of a file containing a message. - ** .dt %s .dd Expands to the name of a file containing the signature part - ** . of a \fCmultipart/signed\fP attachment when verifying it. - ** .dt %a .dd The value of $$pgp_sign_as. - ** .dt %r .dd One or more key IDs. - ** .de - ** .pp - ** For examples on how to configure these formats for the various versions - ** of PGP which are floating around, see the pgp and gpg sample configuration files in - ** the \fCsamples/\fP subdirectory which has been installed on your system - ** alongside the documentation. + ** The number of seconds after which a cached passphrase will expire if + ** not used. ** (PGP only) */ - { "pgp_getkeys_command", DT_STR, R_NONE, UL &PgpGetkeysCommand, 0}, + { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0}, /* ** .pp - ** This command is invoked whenever mutt will need public key information. - ** Of the sequences supported by $$pgp_decode_command, %r is the only - ** \fCprintf(3)\fP-like sequence used with this format. + ** If \fIset\fP, mutt will use a possibly-running \fCgpg-agent(1)\fP process. ** (PGP only) */ { "pgp_verify_command", DT_STR, R_NONE, UL &PgpVerifyCommand, 0}, @@ -1823,410 +1956,15 @@ struct option_t MuttVars[] = { ** possible \fCprintf(3)\fP-like sequences. ** (PGP only) */ - { "pgp_decrypt_command", DT_STR, R_NONE, UL &PgpDecryptCommand, 0}, - /* - ** .pp - ** This command is used to decrypt a PGP encrypted message. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_clearsign_command", DT_STR, R_NONE, UL &PgpClearSignCommand, 0 }, - /* - ** .pp - ** This format is used to create a old-style ``clearsigned'' PGP - ** message. Note that the use of this format is \fBstrongly\fP - ** \fBdeprecated\fP. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_sign_command", DT_STR, R_NONE, UL &PgpSignCommand, 0}, - /* - ** .pp - ** This command is used to create the detached PGP signature for a - ** \fCmultipart/signed\fP PGP/MIME body part. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_encrypt_sign_command", DT_STR, R_NONE, UL &PgpEncryptSignCommand, 0}, - /* - ** .pp - ** This command is used to both sign and encrypt a body part. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_encrypt_only_command", DT_STR, R_NONE, UL &PgpEncryptOnlyCommand, 0}, - /* - ** .pp - ** This command is used to encrypt a body part without signing it. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_import_command", DT_STR, R_NONE, UL &PgpImportCommand, 0}, - /* - ** .pp - ** This command is used to import a key from a message into - ** the user's public key ring. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_export_command", DT_STR, R_NONE, UL &PgpExportCommand, 0}, - /* - ** .pp - ** This command is used to export a public key from the user's - ** key ring. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ { "pgp_verify_key_command", DT_STR, R_NONE, UL &PgpVerifyKeyCommand, 0}, /* ** .pp ** This command is used to verify key information from the key selection - ** menu. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_list_secring_command", DT_STR, R_NONE, UL &PgpListSecringCommand, 0}, - /* - ** .pp - ** This command is used to list the secret key ring's contents. The - ** output format must be analogous to the one used by: - ** .ts - ** gpg --list-keys --with-colons. - ** .te - ** .pp - ** This format is also generated by the \fCpgpring\fP utility which comes - ** with mutt. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "pgp_list_pubring_command", DT_STR, R_NONE, UL &PgpListPubringCommand, 0}, - /* - ** .pp - ** This command is used to list the public key ring's contents. The - ** output format must be analogous to the one used by - ** .ts - ** gpg --list-keys --with-colons. - ** .te - ** .pp - ** This format is also generated by the \fCpgpring\fP utility which comes - ** with mutt. - ** .pp - ** This is a format string, see the $$pgp_decode_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (PGP only) - */ - { "forward_decrypt", DT_BOOL, R_NONE, OPTFORWDECRYPT, 1 }, - /* - ** .pp - ** Controls the handling of encrypted messages when forwarding a message. - ** When \fIset\fP, the outer layer of encryption is stripped off. This - ** variable is only used if $$mime_forward is \fIset\fP and - ** $$mime_forward_decode is \fIunset\fP. - ** (PGP only) - */ - { "forw_decrypt", DT_SYN, R_NONE, UL "forward_decrypt", 0 }, - /* - */ - { "smime_timeout", DT_NUM, R_NONE, UL &SmimeTimeout, 300 }, - /* - ** .pp - ** The number of seconds after which a cached passphrase will expire if - ** not used. - ** (S/MIME only) - */ - { "smime_encrypt_with", DT_STR, R_NONE, UL &SmimeCryptAlg, 0 }, - /* - ** .pp - ** This sets the algorithm that should be used for encryption. - ** Valid choices are ``des'', ``des3'', ``rc2-40'', ``rc2-64'', ``rc2-128''. - ** If \fIunset\fP, ``3des'' (TripleDES) is used. - ** (S/MIME only) - */ - { "smime_keys", DT_PATH, R_NONE, UL &SmimeKeys, 0 }, - /* - ** .pp - ** Since for S/MIME there is no pubring/secring as with PGP, mutt has to handle - ** storage and retrieval of keys/certs by itself. This is very basic right now, - ** and stores keys and certificates in two different directories, both - ** named as the hash-value retrieved from OpenSSL. There is an index file - ** which contains mailbox-address keyid pair, and which can be manually - ** edited. This option points to the location of the private keys. - ** (S/MIME only) - */ - { "smime_ca_location", DT_PATH, R_NONE, UL &SmimeCALocation, 0 }, - /* - ** .pp - ** This variable contains the name of either a directory, or a file which - ** contains trusted certificates for use with OpenSSL. - ** (S/MIME only) - */ - { "smime_certificates", DT_PATH, R_NONE, UL &SmimeCertificates, 0 }, - /* - ** .pp - ** Since for S/MIME there is no pubring/secring as with PGP, mutt has to handle - ** storage and retrieval of keys by itself. This is very basic right - ** now, and keys and certificates are stored in two different - ** directories, both named as the hash-value retrieved from - ** OpenSSL. There is an index file which contains mailbox-address - ** keyid pairs, and which can be manually edited. This option points to - ** the location of the certificates. - ** (S/MIME only) - */ - { "smime_decrypt_command", DT_STR, R_NONE, UL &SmimeDecryptCommand, 0}, - /* - ** .pp - ** This format string specifies a command which is used to decrypt - ** \fCapplication/x-pkcs7-mime\fP attachments. - ** .pp - ** The OpenSSL command formats have their own set of \fCprintf(3)\fP-like sequences - ** similar to PGP's: - ** .dl - ** .dt %f .dd Expands to the name of a file containing a message. - ** .dt %s .dd Expands to the name of a file containing the signature part - ** . of a \fCmultipart/signed\fP attachment when verifying it. - ** .dt %k .dd The key-pair specified with $$smime_default_key - ** .dt %c .dd One or more certificate IDs. - ** .dt %a .dd The algorithm used for encryption. - ** .dt %C .dd CA location: Depending on whether $$smime_ca_location - ** . points to a directory or file, this expands to - ** . ``-CApath $$smime_ca_location'' or ``-CAfile $$smime_ca_location''. - ** .de - ** .pp - ** For examples on how to configure these formats, see the \fCsmime.rc\fP in - ** the \fCsamples/\fP subdirectory which has been installed on your system - ** alongside the documentation. - ** (S/MIME only) - */ - { "smime_verify_command", DT_STR, R_NONE, UL &SmimeVerifyCommand, 0}, - /* - ** .pp - ** This command is used to verify S/MIME signatures of type \fCmultipart/signed\fP. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_verify_opaque_command", DT_STR, R_NONE, UL &SmimeVerifyOpaqueCommand, 0}, - /* - ** .pp - ** This command is used to verify S/MIME signatures of type - ** \fCapplication/x-pkcs7-mime\fP. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_sign_command", DT_STR, R_NONE, UL &SmimeSignCommand, 0}, - /* - ** .pp - ** This command is used to created S/MIME signatures of type - ** \fCmultipart/signed\fP, which can be read by all mail clients. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_sign_opaque_command", DT_STR, R_NONE, UL &SmimeSignOpaqueCommand, 0}, - /* - ** .pp - ** This command is used to created S/MIME signatures of type - ** \fCapplication/x-pkcs7-signature\fP, which can only be handled by mail - ** clients supporting the S/MIME extension. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_encrypt_command", DT_STR, R_NONE, UL &SmimeEncryptCommand, 0}, - /* - ** .pp - ** This command is used to create encrypted S/MIME messages. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_pk7out_command", DT_STR, R_NONE, UL &SmimePk7outCommand, 0}, - /* - ** .pp - ** This command is used to extract PKCS7 structures of S/MIME signatures, - ** in order to extract the public X509 certificate(s). - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_get_cert_command", DT_STR, R_NONE, UL &SmimeGetCertCommand, 0}, - /* - ** .pp - ** This command is used to extract X509 certificates from a PKCS7 structure. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_get_signer_cert_command", DT_STR, R_NONE, UL &SmimeGetSignerCertCommand, 0}, - /* - ** .pp - ** This command is used to extract only the signers X509 certificate from a S/MIME - ** signature, so that the certificate's owner may get compared to the - ** email's ``From:'' field. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_import_cert_command", DT_STR, R_NONE, UL &SmimeImportCertCommand, 0}, - /* - ** .pp - ** This command is used to import a certificate via smime_keys. - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_get_cert_email_command", DT_STR, R_NONE, UL &SmimeGetCertEmailCommand, 0}, - /* - ** .pp - ** This command is used to extract the mail address(es) used for storing - ** X509 certificates, and for verification purposes (to check whether the - ** certificate was issued for the sender's mailbox). - ** .pp - ** This is a format string, see the $$smime_decrypt_command command for - ** possible \fCprintf(3)\fP-like sequences. - ** (S/MIME only) - */ - { "smime_sign_as", DT_SYN, R_NONE, UL "smime_default_key", 0 }, - { "smime_default_key", DT_STR, R_NONE, UL &SmimeDefaultKey, 0 }, - /* - ** .pp - ** This is the default key-pair to use for signing. This must be set to the - ** keyid (the hash-value that OpenSSL generates) to work properly - ** (S/MIME only) - */ -#if defined(USE_SSL) - { "ssl_client_cert", DT_PATH, R_NONE, UL &SslClientCert, 0 }, - /* - ** .pp - ** The file containing a client certificate and its associated private - ** key. - */ - { "ssl_force_tls", DT_BOOL, R_NONE, OPTSSLFORCETLS, 0 }, - /* - ** .pp - ** If this variable is \fIset\fP, Mutt will require that all connections - ** to remote servers be encrypted. Furthermore it will attempt to - ** negotiate TLS even if the server does not advertise the capability, - ** since it would otherwise have to abort the connection anyway. This - ** option supersedes $$ssl_starttls. - */ - { "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, M_YES }, - /* - ** .pp - ** If \fIset\fP (the default), mutt will attempt to use \fCSTARTTLS\fP on servers - ** advertising the capability. When \fIunset\fP, mutt will not attempt to - ** use \fCSTARTTLS\fP regardless of the server's capabilities. - */ - { "certificate_file", DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates" }, - /* - ** .pp - ** This variable specifies the file where the certificates you trust - ** are saved. When an unknown certificate is encountered, you are asked - ** if you accept it or not. If you accept it, the certificate can also - ** be saved in this file and further connections are automatically - ** accepted. - ** .pp - ** You can also manually add CA certificates in this file. Any server - ** certificate that is signed with one of these CA certificates is - ** also automatically accepted. - ** .pp - ** Example: - ** .ts - ** set certificate_file=~/.mutt/certificates - ** .te - */ -# ifdef USE_SSL_OPENSSL - { "ssl_usesystemcerts", DT_BOOL, R_NONE, OPTSSLSYSTEMCERTS, 1 }, - /* - ** .pp - ** If set to \fIyes\fP, mutt will use CA certificates in the - ** system-wide certificate store when checking if a server certificate - ** is signed by a trusted CA. - */ - { "entropy_file", DT_PATH, R_NONE, UL &SslEntropyFile, 0 }, - /* - ** .pp - ** The file which includes random data that is used to initialize SSL - ** library functions. - */ - { "ssl_use_sslv2", DT_BOOL, R_NONE, OPTSSLV2, 1 }, - /* - ** .pp - ** This variables specifies whether to attempt to use SSLv2 in the - ** SSL authentication process. - */ -# endif /* defined USE_SSL_OPENSSL */ - { "ssl_use_sslv3", DT_BOOL, R_NONE, OPTSSLV3, 1 }, - /* - ** .pp - ** This variables specifies whether to attempt to use SSLv3 in the - ** SSL authentication process. - */ - { "ssl_use_tlsv1", DT_BOOL, R_NONE, OPTTLSV1, 1 }, - /* - ** .pp - ** This variables specifies whether to attempt to use TLSv1 in the - ** SSL authentication process. - */ -# ifdef USE_SSL_GNUTLS - { "ssl_min_dh_prime_bits", DT_NUM, R_NONE, UL &SslDHPrimeBits, 0 }, - /* - ** .pp - ** This variable specifies the minimum acceptable prime size (in bits) - ** for use in any Diffie-Hellman key exchange. A value of 0 will use - ** the default from the GNUTLS library. - */ - { "ssl_ca_certificates_file", DT_PATH, R_NONE, UL &SslCACertFile, 0 }, - /* - ** .pp - ** This variable specifies a file containing trusted CA certificates. - ** Any server certificate that is signed with one of these CA - ** certificates is also automatically accepted. - ** .pp - ** Example: - ** .ts - ** set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt - ** .te - */ -# endif /* USE_SSL_GNUTLS */ -#endif /* defined(USE_SSL) */ - { "pipe_split", DT_BOOL, R_NONE, OPTPIPESPLIT, 0 }, - /* - ** .pp - ** Used in connection with the \fC\fP function following - ** \fC\fP. If this variable is \fIunset\fP, when piping a list of - ** tagged messages Mutt will concatenate the messages and will pipe them - ** all concatenated. When \fIset\fP, Mutt will pipe the messages one by one. - ** In both cases the messages are piped in the current sorted order, - ** and the $$pipe_sep separator is added after each message. + ** menu. + ** .pp + ** This is a format string, see the $$pgp_decode_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (PGP only) */ { "pipe_decode", DT_BOOL, R_NONE, OPTPIPEDECODE, 0 }, /* @@ -2242,7 +1980,25 @@ struct option_t MuttVars[] = { ** The separator to add between messages when piping a list of tagged ** messages to an external Unix command. */ + { "pipe_split", DT_BOOL, R_NONE, OPTPIPESPLIT, 0 }, + /* + ** .pp + ** Used in connection with the \fC\fP function following + ** \fC\fP. If this variable is \fIunset\fP, when piping a list of + ** tagged messages Mutt will concatenate the messages and will pipe them + ** all concatenated. When \fIset\fP, Mutt will pipe the messages one by one. + ** In both cases the messages are piped in the current sorted order, + ** and the $$pipe_sep separator is added after each message. + */ #ifdef USE_POP + { "pop_auth_try_all", DT_BOOL, R_NONE, OPTPOPAUTHTRYALL, 1 }, + /* + ** .pp + ** If \fIset\fP, Mutt will try all available authentication methods. + ** When \fIunset\fP, Mutt will only fall back to other authentication + ** methods if the previous methods are unavailable. If a method is + ** available but authentication fails, Mutt will not connect to the POP server. + */ { "pop_authenticators", DT_STR, R_NONE, UL &PopAuthenticators, UL 0 }, /* ** .pp @@ -2259,14 +2015,6 @@ struct option_t MuttVars[] = { ** set pop_authenticators="digest-md5:apop:user" ** .te */ - { "pop_auth_try_all", DT_BOOL, R_NONE, OPTPOPAUTHTRYALL, 1 }, - /* - ** .pp - ** If \fIset\fP, Mutt will try all available authentication methods. - ** When \fIunset\fP, Mutt will only fall back to other authentication - ** methods if the previous methods are unavailable. If a method is - ** available but authentication fails, Mutt will not connect to the POP server. - */ { "pop_checkinterval", DT_NUM, R_NONE, UL &PopCheckTimeout, 60 }, /* ** .pp @@ -2298,6 +2046,16 @@ struct option_t MuttVars[] = { ** for retrieving only unread messages from the POP server when using ** the \fC$\fP function. */ + { "pop_pass", DT_STR, R_NONE, UL &PopPass, UL "" }, + /* + ** .pp + ** Specifies the password for your POP account. If \fIunset\fP, Mutt will + ** prompt you for your password when you open a POP mailbox. + ** .pp + ** \fBWarning\fP: you should only use this option when you are on a + ** fairly secure machine, because the superuser can read your muttrc + ** even if you are the only one who can read the file. + */ { "pop_reconnect", DT_QUAD, R_NONE, OPT_POPRECONNECT, M_ASKYES }, /* ** .pp @@ -2311,16 +2069,6 @@ struct option_t MuttVars[] = { ** .pp ** This variable defaults to your user name on the local machine. */ - { "pop_pass", DT_STR, R_NONE, UL &PopPass, UL "" }, - /* - ** .pp - ** Specifies the password for your POP account. If \fIunset\fP, Mutt will - ** prompt you for your password when you open a POP mailbox. - ** .pp - ** \fBWarning\fP: you should only use this option when you are on a - ** fairly secure machine, because the superuser can read your muttrc - ** even if you are the only one who can read the file. - */ #endif /* USE_POP */ { "post_indent_string",DT_STR, R_NONE, UL &PostIndentString, UL "" }, /* @@ -2339,7 +2087,7 @@ struct option_t MuttVars[] = { ** .pp ** Also see the $$recall variable. */ - { "postponed", DT_PATH, R_NONE, UL &Postponed, UL "~/postponed" }, + { "postponed", DT_PATH, R_INDEX, UL &Postponed, UL "~/postponed" }, /* ** .pp ** Mutt allows you to indefinitely ``$postpone sending a message'' which @@ -2681,111 +2429,323 @@ struct option_t MuttVars[] = { ** mutt scores are always greater than or equal to zero, the default setting ** of this variable will never mark a message read. */ + { "search_context", DT_NUM, R_NONE, UL &SearchContext, UL 0 }, + /* + ** .pp + ** For the pager, this variable specifies the number of lines shown + ** before search results. By default, search results will be top-aligned. + */ { "send_charset", DT_STR, R_NONE, UL &SendCharset, UL "us-ascii:iso-8859-1:utf-8" }, /* ** .pp - ** A colon-delimited list of character sets for outgoing messages. Mutt will use the - ** first character set into which the text can be converted exactly. - ** If your $$charset is not ``iso-8859-1'' and recipients may not - ** understand ``UTF-8'', it is advisable to include in the list an - ** appropriate widely used standard character set (such as - ** ``iso-8859-2'', ``koi8-r'' or ``iso-2022-jp'') either instead of or after - ** ``iso-8859-1''. + ** A colon-delimited list of character sets for outgoing messages. Mutt will use the + ** first character set into which the text can be converted exactly. + ** If your $$charset is not ``iso-8859-1'' and recipients may not + ** understand ``UTF-8'', it is advisable to include in the list an + ** appropriate widely used standard character set (such as + ** ``iso-8859-2'', ``koi8-r'' or ``iso-2022-jp'') either instead of or after + ** ``iso-8859-1''. + ** .pp + ** In case the text cannot be converted into one of these exactly, + ** mutt uses $$charset as a fallback. + */ + { "sendmail", DT_PATH, R_NONE, UL &Sendmail, UL SENDMAIL " -oem -oi" }, + /* + ** .pp + ** Specifies the program and arguments used to deliver mail sent by Mutt. + ** Mutt expects that the specified program interprets additional + ** arguments as recipient addresses. + */ + { "sendmail_wait", DT_NUM, R_NONE, UL &SendmailWait, 0 }, + /* + ** .pp + ** Specifies the number of seconds to wait for the $$sendmail process + ** to finish before giving up and putting delivery in the background. + ** .pp + ** Mutt interprets the value of this variable as follows: + ** .dl + ** .dt >0 .dd number of seconds to wait for sendmail to finish before continuing + ** .dt 0 .dd wait forever for sendmail to finish + ** .dt <0 .dd always put sendmail in the background without waiting + ** .de + ** .pp + ** Note that if you specify a value other than 0, the output of the child + ** process will be put in a temporary file. If there is some error, you + ** will be informed as to where to find the output. + */ + { "shell", DT_PATH, R_NONE, UL &Shell, 0 }, + /* + ** .pp + ** Command to use when spawning a subshell. By default, the user's login + ** shell from \fC/etc/passwd\fP is used. + */ + { "sig_dashes", DT_BOOL, R_NONE, OPTSIGDASHES, 1 }, + /* + ** .pp + ** If \fIset\fP, a line containing ``-- '' (note the trailing space) will be inserted before your + ** $$signature. It is \fBstrongly\fP recommended that you not \fIunset\fP + ** this variable unless your signature contains just your name. The + ** reason for this is because many software packages use ``-- \n'' to + ** detect your signature. For example, Mutt has the ability to highlight + ** the signature in a different color in the builtin pager. + */ + { "sig_on_top", DT_BOOL, R_NONE, OPTSIGONTOP, 0}, + /* + ** .pp + ** If \fIset\fP, the signature will be included before any quoted or forwarded + ** text. It is \fBstrongly\fP recommended that you do not set this variable + ** unless you really know what you are doing, and are prepared to take + ** some heat from netiquette guardians. + */ + { "signature", DT_PATH, R_NONE, UL &Signature, UL "~/.signature" }, + /* + ** .pp + ** Specifies the filename of your signature, which is appended to all + ** outgoing messages. If the filename ends with a pipe (``|''), it is + ** assumed that filename is a shell command and input should be read from + ** its standard output. + */ + { "simple_search", DT_STR, R_NONE, UL &SimpleSearch, UL "~f %s | ~s %s" }, + /* + ** .pp + ** Specifies how Mutt should expand a simple search into a real search + ** pattern. A simple search is one that does not contain any of the ``~'' pattern + ** operators. See ``$patterns'' for more information on search patterns. + ** .pp + ** For example, if you simply type ``joe'' at a search or limit prompt, Mutt + ** will automatically expand it to the value specified by this variable by + ** replacing ``%s'' with the supplied string. + ** For the default value, ``joe'' would be expanded to: ``~f joe | ~s joe''. + */ + { "sleep_time", DT_NUM, R_NONE, UL &SleepTime, 1 }, + /* + ** .pp + ** Specifies time, in seconds, to pause while displaying certain informational + ** messages, while moving from folder to folder and after expunging + ** messages from the current folder. The default is to pause one second, so + ** a value of zero for this option suppresses the pause. + */ + { "smart_wrap", DT_BOOL, R_PAGER, OPTWRAP, 1 }, + /* + ** .pp + ** Controls the display of lines longer than the screen width in the + ** internal pager. If \fIset\fP, long lines are wrapped at a word boundary. If + ** \fIunset\fP, lines are simply wrapped at the screen edge. Also see the + ** $$markers variable. + */ + { "smileys", DT_RX, R_PAGER, UL &Smileys, UL "(>From )|(:[-^]?[][)(><}{|/DP])" }, + /* + ** .pp + ** The \fIpager\fP uses this variable to catch some common false + ** positives of $$quote_regexp, most notably smileys and not consider + ** a line quoted text if it also matches $$smileys. This mostly + ** happens at the beginning of a line. + */ + + + + { "smime_ask_cert_label", DT_BOOL, R_NONE, OPTASKCERTLABEL, 1 }, + /* + ** .pp + ** This flag controls whether you want to be asked to enter a label + ** for a certificate about to be added to the database or not. It is + ** \fIset\fP by default. + ** (S/MIME only) + */ + { "smime_ca_location", DT_PATH, R_NONE, UL &SmimeCALocation, 0 }, + /* + ** .pp + ** This variable contains the name of either a directory, or a file which + ** contains trusted certificates for use with OpenSSL. + ** (S/MIME only) + */ + { "smime_certificates", DT_PATH, R_NONE, UL &SmimeCertificates, 0 }, + /* + ** .pp + ** Since for S/MIME there is no pubring/secring as with PGP, mutt has to handle + ** storage and retrieval of keys by itself. This is very basic right + ** now, and keys and certificates are stored in two different + ** directories, both named as the hash-value retrieved from + ** OpenSSL. There is an index file which contains mailbox-address + ** keyid pairs, and which can be manually edited. This option points to + ** the location of the certificates. + ** (S/MIME only) + */ + { "smime_decrypt_command", DT_STR, R_NONE, UL &SmimeDecryptCommand, 0}, + /* + ** .pp + ** This format string specifies a command which is used to decrypt + ** \fCapplication/x-pkcs7-mime\fP attachments. + ** .pp + ** The OpenSSL command formats have their own set of \fCprintf(3)\fP-like sequences + ** similar to PGP's: + ** .dl + ** .dt %f .dd Expands to the name of a file containing a message. + ** .dt %s .dd Expands to the name of a file containing the signature part + ** . of a \fCmultipart/signed\fP attachment when verifying it. + ** .dt %k .dd The key-pair specified with $$smime_default_key + ** .dt %c .dd One or more certificate IDs. + ** .dt %a .dd The algorithm used for encryption. + ** .dt %C .dd CA location: Depending on whether $$smime_ca_location + ** . points to a directory or file, this expands to + ** . ``-CApath $$smime_ca_location'' or ``-CAfile $$smime_ca_location''. + ** .de + ** .pp + ** For examples on how to configure these formats, see the \fCsmime.rc\fP in + ** the \fCsamples/\fP subdirectory which has been installed on your system + ** alongside the documentation. + ** (S/MIME only) + */ + { "smime_decrypt_use_default_key", DT_BOOL, R_NONE, OPTSDEFAULTDECRYPTKEY, 1 }, + /* + ** .pp + ** If \fIset\fP (default) this tells mutt to use the default key for decryption. Otherwise, + ** if managing multiple certificate-key-pairs, mutt will try to use the mailbox-address + ** to determine the key to use. It will ask you to supply a key, if it can't find one. + ** (S/MIME only) + */ + { "smime_sign_as", DT_SYN, R_NONE, UL "smime_default_key", 0 }, + { "smime_default_key", DT_STR, R_NONE, UL &SmimeDefaultKey, 0 }, + /* + ** .pp + ** This is the default key-pair to use for signing. This must be set to the + ** keyid (the hash-value that OpenSSL generates) to work properly + ** (S/MIME only) + */ + { "smime_encrypt_command", DT_STR, R_NONE, UL &SmimeEncryptCommand, 0}, + /* + ** .pp + ** This command is used to create encrypted S/MIME messages. + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) + */ + { "smime_encrypt_with", DT_STR, R_NONE, UL &SmimeCryptAlg, 0 }, + /* + ** .pp + ** This sets the algorithm that should be used for encryption. + ** Valid choices are ``des'', ``des3'', ``rc2-40'', ``rc2-64'', ``rc2-128''. + ** If \fIunset\fP, ``3des'' (TripleDES) is used. + ** (S/MIME only) + */ + { "smime_get_cert_command", DT_STR, R_NONE, UL &SmimeGetCertCommand, 0}, + /* + ** .pp + ** This command is used to extract X509 certificates from a PKCS7 structure. + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) + */ + { "smime_get_cert_email_command", DT_STR, R_NONE, UL &SmimeGetCertEmailCommand, 0}, + /* + ** .pp + ** This command is used to extract the mail address(es) used for storing + ** X509 certificates, and for verification purposes (to check whether the + ** certificate was issued for the sender's mailbox). ** .pp - ** In case the text cannot be converted into one of these exactly, - ** mutt uses $$charset as a fallback. + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "sendmail", DT_PATH, R_NONE, UL &Sendmail, UL SENDMAIL " -oem -oi" }, + { "smime_get_signer_cert_command", DT_STR, R_NONE, UL &SmimeGetSignerCertCommand, 0}, /* ** .pp - ** Specifies the program and arguments used to deliver mail sent by Mutt. - ** Mutt expects that the specified program interprets additional - ** arguments as recipient addresses. + ** This command is used to extract only the signers X509 certificate from a S/MIME + ** signature, so that the certificate's owner may get compared to the + ** email's ``From:'' field. + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "sendmail_wait", DT_NUM, R_NONE, UL &SendmailWait, 0 }, + { "smime_import_cert_command", DT_STR, R_NONE, UL &SmimeImportCertCommand, 0}, /* ** .pp - ** Specifies the number of seconds to wait for the $$sendmail process - ** to finish before giving up and putting delivery in the background. - ** .pp - ** Mutt interprets the value of this variable as follows: - ** .dl - ** .dt >0 .dd number of seconds to wait for sendmail to finish before continuing - ** .dt 0 .dd wait forever for sendmail to finish - ** .dt <0 .dd always put sendmail in the background without waiting - ** .de + ** This command is used to import a certificate via smime_keys. ** .pp - ** Note that if you specify a value other than 0, the output of the child - ** process will be put in a temporary file. If there is some error, you - ** will be informed as to where to find the output. + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "shell", DT_PATH, R_NONE, UL &Shell, 0 }, + { "smime_is_default", DT_BOOL, R_NONE, OPTSMIMEISDEFAULT, 0}, /* ** .pp - ** Command to use when spawning a subshell. By default, the user's login - ** shell from \fC/etc/passwd\fP is used. + ** The default behaviour of mutt is to use PGP on all auto-sign/encryption + ** operations. To override and to use OpenSSL instead this must be \fIset\fP. + ** However, this has no effect while replying, since mutt will automatically + ** select the same application that was used to sign/encrypt the original + ** message. (Note that this variable can be overridden by unsetting $$crypt_autosmime.) + ** (S/MIME only) */ - { "sig_dashes", DT_BOOL, R_NONE, OPTSIGDASHES, 1 }, + { "smime_keys", DT_PATH, R_NONE, UL &SmimeKeys, 0 }, /* ** .pp - ** If \fIset\fP, a line containing ``-- '' (note the trailing space) will be inserted before your - ** $$signature. It is \fBstrongly\fP recommended that you not \fIunset\fP - ** this variable unless your signature contains just your name. The - ** reason for this is because many software packages use ``-- \n'' to - ** detect your signature. For example, Mutt has the ability to highlight - ** the signature in a different color in the builtin pager. + ** Since for S/MIME there is no pubring/secring as with PGP, mutt has to handle + ** storage and retrieval of keys/certs by itself. This is very basic right now, + ** and stores keys and certificates in two different directories, both + ** named as the hash-value retrieved from OpenSSL. There is an index file + ** which contains mailbox-address keyid pair, and which can be manually + ** edited. This option points to the location of the private keys. + ** (S/MIME only) */ - { "sig_on_top", DT_BOOL, R_NONE, OPTSIGONTOP, 0}, + { "smime_pk7out_command", DT_STR, R_NONE, UL &SmimePk7outCommand, 0}, /* ** .pp - ** If \fIset\fP, the signature will be included before any quoted or forwarded - ** text. It is \fBstrongly\fP recommended that you do not set this variable - ** unless you really know what you are doing, and are prepared to take - ** some heat from netiquette guardians. + ** This command is used to extract PKCS7 structures of S/MIME signatures, + ** in order to extract the public X509 certificate(s). + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "signature", DT_PATH, R_NONE, UL &Signature, UL "~/.signature" }, + { "smime_sign_command", DT_STR, R_NONE, UL &SmimeSignCommand, 0}, /* ** .pp - ** Specifies the filename of your signature, which is appended to all - ** outgoing messages. If the filename ends with a pipe (``|''), it is - ** assumed that filename is a shell command and input should be read from - ** its standard output. + ** This command is used to created S/MIME signatures of type + ** \fCmultipart/signed\fP, which can be read by all mail clients. + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "simple_search", DT_STR, R_NONE, UL &SimpleSearch, UL "~f %s | ~s %s" }, + { "smime_sign_opaque_command", DT_STR, R_NONE, UL &SmimeSignOpaqueCommand, 0}, /* ** .pp - ** Specifies how Mutt should expand a simple search into a real search - ** pattern. A simple search is one that does not contain any of the ``~'' pattern - ** operators. See ``$patterns'' for more information on search patterns. + ** This command is used to created S/MIME signatures of type + ** \fCapplication/x-pkcs7-signature\fP, which can only be handled by mail + ** clients supporting the S/MIME extension. ** .pp - ** For example, if you simply type ``joe'' at a search or limit prompt, Mutt - ** will automatically expand it to the value specified by this variable by - ** replacing ``%s'' with the supplied string. - ** For the default value, ``joe'' would be expanded to: ``~f joe | ~s joe''. + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "smart_wrap", DT_BOOL, R_PAGER, OPTWRAP, 1 }, + { "smime_timeout", DT_NUM, R_NONE, UL &SmimeTimeout, 300 }, /* ** .pp - ** Controls the display of lines longer than the screen width in the - ** internal pager. If \fIset\fP, long lines are wrapped at a word boundary. If - ** \fIunset\fP, lines are simply wrapped at the screen edge. Also see the - ** $$markers variable. + ** The number of seconds after which a cached passphrase will expire if + ** not used. + ** (S/MIME only) */ - { "smileys", DT_RX, R_PAGER, UL &Smileys, UL "(>From )|(:[-^]?[][)(><}{|/DP])" }, + { "smime_verify_command", DT_STR, R_NONE, UL &SmimeVerifyCommand, 0}, /* ** .pp - ** The \fIpager\fP uses this variable to catch some common false - ** positives of $$quote_regexp, most notably smileys and not consider - ** a line quoted text if it also matches $$smileys. This mostly - ** happens at the beginning of a line. + ** This command is used to verify S/MIME signatures of type \fCmultipart/signed\fP. + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ - { "sleep_time", DT_NUM, R_NONE, UL &SleepTime, 1 }, + { "smime_verify_opaque_command", DT_STR, R_NONE, UL &SmimeVerifyOpaqueCommand, 0}, /* ** .pp - ** Specifies time, in seconds, to pause while displaying certain informational - ** messages, while moving from folder to folder and after expunging - ** messages from the current folder. The default is to pause one second, so - ** a value of zero for this option suppresses the pause. + ** This command is used to verify S/MIME signatures of type + ** \fCapplication/x-pkcs7-mime\fP. + ** .pp + ** This is a format string, see the $$smime_decrypt_command command for + ** possible \fCprintf(3)\fP-like sequences. + ** (S/MIME only) */ #ifdef USE_SMTP # ifdef USE_SASL @@ -2826,7 +2786,7 @@ struct option_t MuttVars[] = { ** smtp[s]://[user[:pass]@]host[:port]/ ** .te ** .pp - ** ... where ``[...]'' denotes an optional part. + ** where ``[...]'' denotes an optional part. ** Setting this variable overrides the value of the $$sendmail ** variable. */ @@ -2927,9 +2887,101 @@ struct option_t MuttVars[] = { ** .pp ** If your spool mailbox is in a non-default place where Mutt cannot find ** it, you can specify its location with this variable. Mutt will - ** automatically set this variable to the value of the environment - ** variable \fC$$$MAIL\fP if it is not set. + ** initially set this variable to the value of the environment + ** variable \fC$$$MAIL\fP or \fC$$$MAILDIR\fP if either is defined. + */ +#if defined(USE_SSL) +#ifdef USE_SSL_GNUTLS + { "ssl_ca_certificates_file", DT_PATH, R_NONE, UL &SslCACertFile, 0 }, + /* + ** .pp + ** This variable specifies a file containing trusted CA certificates. + ** Any server certificate that is signed with one of these CA + ** certificates is also automatically accepted. + ** .pp + ** Example: + ** .ts + ** set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt + ** .te + */ +#endif /* USE_SSL_GNUTLS */ + { "ssl_client_cert", DT_PATH, R_NONE, UL &SslClientCert, 0 }, + /* + ** .pp + ** The file containing a client certificate and its associated private + ** key. + */ + { "ssl_force_tls", DT_BOOL, R_NONE, OPTSSLFORCETLS, 0 }, + /* + ** .pp + ** If this variable is \fIset\fP, Mutt will require that all connections + ** to remote servers be encrypted. Furthermore it will attempt to + ** negotiate TLS even if the server does not advertise the capability, + ** since it would otherwise have to abort the connection anyway. This + ** option supersedes $$ssl_starttls. + */ +# ifdef USE_SSL_GNUTLS + { "ssl_min_dh_prime_bits", DT_NUM, R_NONE, UL &SslDHPrimeBits, 0 }, + /* + ** .pp + ** This variable specifies the minimum acceptable prime size (in bits) + ** for use in any Diffie-Hellman key exchange. A value of 0 will use + ** the default from the GNUTLS library. + */ +# endif /* USE_SSL_GNUTLS */ + { "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, M_YES }, + /* + ** .pp + ** If \fIset\fP (the default), mutt will attempt to use \fCSTARTTLS\fP on servers + ** advertising the capability. When \fIunset\fP, mutt will not attempt to + ** use \fCSTARTTLS\fP regardless of the server's capabilities. + */ +# ifdef USE_SSL_OPENSSL + { "ssl_use_sslv2", DT_BOOL, R_NONE, OPTSSLV2, 0 }, + /* + ** .pp + ** This variable specifies whether to attempt to use SSLv2 in the + ** SSL authentication process. */ +# endif /* defined USE_SSL_OPENSSL */ + { "ssl_use_sslv3", DT_BOOL, R_NONE, OPTSSLV3, 1 }, + /* + ** .pp + ** This variable specifies whether to attempt to use SSLv3 in the + ** SSL authentication process. + */ + { "ssl_use_tlsv1", DT_BOOL, R_NONE, OPTTLSV1, 1 }, + /* + ** .pp + ** This variable specifies whether to attempt to use TLSv1 in the + ** SSL authentication process. + */ +#ifdef USE_SSL_OPENSSL + { "ssl_usesystemcerts", DT_BOOL, R_NONE, OPTSSLSYSTEMCERTS, 1 }, + /* + ** .pp + ** If set to \fIyes\fP, mutt will use CA certificates in the + ** system-wide certificate store when checking if a server certificate + ** is signed by a trusted CA. + */ +#endif + { "ssl_verify_dates", DT_BOOL, R_NONE, OPTSSLVERIFYDATES, 1 }, + /* + ** .pp + ** If \fIset\fP (the default), mutt will not automatically accept a server + ** certificate that is either not yet valid or already expired. You should + ** only unset this for particular known hosts, using the + ** \fC$\fP function. + */ + { "ssl_verify_host", DT_BOOL, R_NONE, OPTSSLVERIFYHOST, 1 }, + /* + ** .pp + ** If \fIset\fP (the default), mutt will not automatically accept a server + ** certificate whose host name does not match the host used in your folder + ** URL. You should only unset this for particular known hosts, using + ** the \fC$\fP function. + */ +#endif /* defined(USE_SSL) */ { "status_chars", DT_STR, R_BOTH, UL &StChars, UL "-*%A" }, /* ** .pp @@ -3054,12 +3106,6 @@ struct option_t MuttVars[] = { ** .pp ** Note that $$indent_string is ignored when this option is \fIset\fP. */ - { "thread_received", DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPTTHREADRECEIVED, 0 }, - /* - ** .pp - ** When \fIset\fP, mutt uses the date received rather than the date sent - ** to thread messages by subject. - */ { "thorough_search", DT_BOOL, R_NONE, OPTTHOROUGHSRC, 0 }, /* ** .pp @@ -3074,6 +3120,12 @@ struct option_t MuttVars[] = { ** raw message received (for example quoted-printable encoded or with encoded ** headers) which may lead to incorrect search results. */ + { "thread_received", DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPTTHREADRECEIVED, 0 }, + /* + ** .pp + ** When \fIset\fP, mutt uses the date received rather than the date sent + ** to thread messages by subject. + */ { "tilde", DT_BOOL, R_PAGER, OPTTILDE, 0 }, /* ** .pp @@ -3141,8 +3193,18 @@ struct option_t MuttVars[] = { ** .pp ** Note: For this example to work you must be able to log in to the remote ** machine without having to enter a password. + ** .pp + ** When set, Mutt uses the tunnel for all remote connections. + ** Please see ``$account-hook'' in the manual for how to use different + ** tunnel commands per connection. */ #endif + { "uncollapse_jump", DT_BOOL, R_NONE, OPTUNCOLLAPSEJUMP, 0 }, + /* + ** .pp + ** When \fIset\fP, Mutt will jump to the next unread message, if any, + ** when the current thread is \fIun\fPcollapsed. + */ { "use_8bitmime", DT_BOOL, R_NONE, OPTUSE8BITMIME, 0 }, /* ** .pp @@ -3256,6 +3318,15 @@ struct option_t MuttVars[] = { ** .pp ** (DEPRECATED) Equivalent to setting $$wrap with a negative value. */ + { "write_bcc", DT_BOOL, R_NONE, OPTWRITEBCC, 1}, + /* + ** .pp + ** Controls whether mutt writes out the ``Bcc:'' header when preparing + ** messages to be sent. Exim users may wish to unset this. If mutt + ** is set to deliver directly via SMTP (see $$smtp_url), this + ** option does nothing: mutt will never write out the ``Bcc:'' header + ** in this case. + */ { "write_inc", DT_NUM, R_NONE, UL &WriteInc, 10 }, /* ** .pp @@ -3266,17 +3337,8 @@ struct option_t MuttVars[] = { ** Also see the $$read_inc, $$net_inc and $$time_inc variables and the ** ``$tuning'' section of the manual for performance considerations. */ - { "write_bcc", DT_BOOL, R_NONE, OPTWRITEBCC, 1}, - /* - ** .pp - ** Controls whether mutt writes out the ``Bcc:'' header when preparing - ** messages to be sent. Exim users may wish to unset this. If mutt - ** is set to deliver directly via SMTP (see $$smtp_url), this - ** option does nothing: mutt will never write out the ``Bcc:'' header - ** in this case. - */ /*--*/ - { NULL } + { NULL, 0, 0, 0, 0 } }; const struct mapping_t SortMethods[] = { @@ -3291,7 +3353,7 @@ const struct mapping_t SortMethods[] = { { "to", SORT_TO }, { "score", SORT_SCORE }, { "spam", SORT_SPAM }, - { NULL, 0 } + { NULL, 0 } }; /* same as SortMethods, but with "threads" replaced by "date" */ @@ -3305,28 +3367,28 @@ const struct mapping_t SortAuxMethods[] = { { "from", SORT_FROM }, { "size", SORT_SIZE }, { "threads", SORT_DATE }, /* note: sort_aux == threads - * isn't possible. + * isn't possible. */ { "to", SORT_TO }, { "score", SORT_SCORE }, { "spam", SORT_SPAM }, - { NULL, 0 } + { NULL, 0 } }; - + const struct mapping_t SortBrowserMethods[] = { { "alpha", SORT_SUBJECT }, { "date", SORT_DATE }, { "size", SORT_SIZE }, { "unsorted", SORT_ORDER }, - { NULL } + { NULL, 0 } }; const struct mapping_t SortAliasMethods[] = { { "alias", SORT_ALIAS }, { "address", SORT_ADDRESS }, { "unsorted", SORT_ORDER }, - { NULL } + { NULL, 0 } }; const struct mapping_t SortKeyMethods[] = { @@ -3334,7 +3396,7 @@ const struct mapping_t SortKeyMethods[] = { { "date", SORT_DATE }, { "keyid", SORT_KEYID }, { "trust", SORT_TRUST }, - { NULL } + { NULL, 0 } }; @@ -3402,7 +3464,7 @@ struct command_t Commands[] = { { "ungroup", parse_ungroup, 0 }, { "hdr_order", parse_list, UL &HeaderOrderList }, #ifdef HAVE_ICONV - { "iconv-hook", mutt_parse_hook, M_ICONVHOOK }, + { "iconv-hook", mutt_parse_hook, M_ICONVHOOK }, #endif { "ignore", parse_ignore, 0 }, { "lists", parse_lists, 0 }, @@ -3442,5 +3504,5 @@ struct command_t Commands[] = { { "unscore", mutt_parse_unscore, 0 }, { "unset", parse_set, M_SET_UNSET }, { "unsubscribe", parse_unsubscribe, 0 }, - { NULL } + { NULL, NULL, 0 } };