diff options
author | Rocco Rutte <pdmef@gmx.net> | 2009-03-15 12:40:14 +0100 |
---|---|---|
committer | Rocco Rutte <pdmef@gmx.net> | 2009-03-15 12:40:14 +0100 |
commit | 06d425398e3ef6fd3b152d95f6def1b4b14ff43e (patch) | |
tree | 4d8015427f4b02571c253896b3ce4bb0eb9b4efe | |
parent | 09022bca8254bf1c582aea8996800dac97112599 (diff) | |
parent | 10808048cb527f52efe90eddcd920003c17aee90 (diff) |
Merge
-rw-r--r-- | ChangeLog | 46 | ||||
-rw-r--r-- | doc/manual.xml.head | 2 | ||||
-rw-r--r-- | hash.c | 38 | ||||
-rw-r--r-- | hash.h | 11 | ||||
-rw-r--r-- | init.c | 4 | ||||
-rw-r--r-- | init.h | 525 | ||||
-rw-r--r-- | mbyte.h | 6 | ||||
-rw-r--r-- | mh.c | 12 | ||||
-rw-r--r-- | mutt.h | 6 | ||||
-rw-r--r-- | regex.c | 13 | ||||
-rw-r--r-- | thread.c | 12 |
11 files changed, 388 insertions, 287 deletions
@@ -1,3 +1,49 @@ +2009-03-09 12:04 +0100 Vincent Lefevre <vincent@vinc17.org> (4ce562b7f5d7) + + * mbyte.h: Unbreak compilation on OS X with --with-regex/--without-wc- + funcs. Closes #3149. + +2009-03-09 11:58 +0100 Rocco Rutte <pdmef@gmx.net> (f3a33b77dc90) + + * ChangeLog, mutt.h, regex.c: Unbreak compilation with --without-wc- + funcs on OS X 10.5.*, see #3149. + +2009-03-09 11:49 +0100 Rocco Rutte <pdmef@gmx.net> (bcf1e9692caf) + + * init.h: Fix 11cd72da743a + +2009-03-09 11:30 +0100 Rocco Rutte <pdmef@gmx.net> (11cd72da743a) + + * ChangeLog, init.h: Sort SSL-related variables, see #3191. + +2009-03-09 11:11 +0100 Rocco Rutte <pdmef@gmx.net> (a96d427b203b) + + * hash.c, hash.h, init.c, mh.c, thread.c: Restore $reverse_alias + feature by using case-insensitive hash keys + + The fix is implemented as callbacks in the hash table so we can + avoid working with copies of the mailbox keys but work on the + originals instead and don't pollute the code with lower-case + conversions all over the place. + + While I'm at it, turn int hashes into unsigned values since the hash + function returns unsigned values now, too. + + Closes #3185. + +2009-03-07 13:49 +0100 Rocco Rutte <pdmef@gmx.net> (ff1906f70b1b) + + * ChangeLog, init.h: Sort most variables (except crypto), see #3191. + +2009-03-07 12:26 +0100 Rocco Rutte <pdmef@gmx.net> (49d3d03d41c2) + + * doc/manual.xml.head: Fix typo, see #2430. + +2009-02-20 22:14 +0100 Rocco Rutte <pdmef@gmx.net> (35fbea209c6e) + + * ChangeLog, doc/manual.xml.head: Manual: verbosely document how the + initial folder is determined, see #3189. + 2009-02-20 18:27 +0100 Rocco Rutte <pdmef@gmx.net> (3f57a654639d) * doc/manual.xml.head: Document address normalization. Closes #2430. diff --git a/doc/manual.xml.head b/doc/manual.xml.head index 982f310a..6bddfb70 100644 --- a/doc/manual.xml.head +++ b/doc/manual.xml.head @@ -5178,7 +5178,7 @@ macro pager \cb |urlview\n <title>Miscellany</title> <para> -This section documents various feature that fit nowhere else. +This section documents various features that fit nowhere else. </para> <variablelist> @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org> + * Copyright (C) 1996-2009 Michael R. Elkins <me@mutt.org> * * 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 @@ -23,12 +23,13 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> +#include <ctype.h> #include "mutt.h" #define SOMEPRIME 149711 -unsigned int hash_string (const unsigned char *s, unsigned int n) +static unsigned int hash_string (const unsigned char *s, unsigned int n) { unsigned int h = 0; @@ -39,13 +40,34 @@ unsigned int hash_string (const unsigned char *s, unsigned int n) return h; } -HASH *hash_create (int nelem) +static unsigned int hash_case_string (const unsigned char *s, unsigned int n) +{ + unsigned int h = 0; + + while (*s) + h += (h << 7) + tolower (*s++); + h = (h * SOMEPRIME) % n; + + return h; +} + +HASH *hash_create (int nelem, int lower) { HASH *table = safe_malloc (sizeof (HASH)); if (nelem == 0) nelem = 2; table->nelem = nelem; table->table = safe_calloc (nelem, sizeof (struct hash_elem *)); + if (lower) + { + table->hash_string = hash_case_string; + table->cmp_string = mutt_strcasecmp; + } + else + { + table->hash_string = hash_string; + table->cmp_string = mutt_strcmp; + } return table; } @@ -57,10 +79,10 @@ HASH *hash_create (int nelem) int hash_insert (HASH * table, const char *key, void *data, int allow_dup) { struct hash_elem *ptr; - int h; + unsigned int h; ptr = (struct hash_elem *) safe_malloc (sizeof (struct hash_elem)); - h = hash_string ((unsigned char *) key, table->nelem); + h = table->hash_string ((unsigned char *) key, table->nelem); ptr->key = key; ptr->data = data; @@ -76,7 +98,7 @@ int hash_insert (HASH * table, const char *key, void *data, int allow_dup) for (tmp = table->table[h], last = NULL; tmp; last = tmp, tmp = tmp->next) { - r = mutt_strcmp (tmp->key, key); + r = table->cmp_string (tmp->key, key); if (r == 0) { FREE (&ptr); @@ -99,7 +121,7 @@ void *hash_find_hash (const HASH * table, int hash, const char *key) struct hash_elem *ptr = table->table[hash]; for (; ptr; ptr = ptr->next) { - if (mutt_strcmp (key, ptr->key) == 0) + if (table->cmp_string (key, ptr->key) == 0) return (ptr->data); } return NULL; @@ -114,7 +136,7 @@ void hash_delete_hash (HASH * table, int hash, const char *key, const void *data while (ptr) { if ((data == ptr->data || !data) - && mutt_strcmp (ptr->key, key) == 0) + && table->cmp_string (ptr->key, key) == 0) { *last = ptr->next; if (destroy) @@ -1,5 +1,5 @@ /* - * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org> + * Copyright (C) 1996-2009 Michael R. Elkins <me@mutt.org> * * 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 @@ -30,15 +30,16 @@ typedef struct { int nelem; struct hash_elem **table; + unsigned int (*hash_string)(const unsigned char *, unsigned int); + int (*cmp_string)(const char *, const char *); } HASH; -#define hash_find(table, key) hash_find_hash(table, hash_string ((unsigned char *)key, table->nelem), key) +#define hash_find(table, key) hash_find_hash(table, table->hash_string ((unsigned char *)key, table->nelem), key) -#define hash_delete(table,key,data,destroy) hash_delete_hash(table, hash_string ((unsigned char *)key, table->nelem), key, data, destroy) +#define hash_delete(table,key,data,destroy) hash_delete_hash(table, table->hash_string ((unsigned char *)key, table->nelem), key, data, destroy) -HASH *hash_create (int nelem); -unsigned int hash_string (const unsigned char *s, unsigned int n); +HASH *hash_create (int nelem, int lower); int hash_insert (HASH * table, const char *key, void *data, int allow_dup); void *hash_find_hash (const HASH * table, int hash, const char *key); void hash_delete_hash (HASH * table, int hash, const char *key, const void *data, @@ -2885,8 +2885,8 @@ void mutt_init (int skip_sys_rc, LIST *commands) err.data = error; err.dsize = sizeof (error); - Groups = hash_create (1031); - ReverseAlias = hash_create (1031); + Groups = hash_create (1031, 0); + ReverseAlias = hash_create (1031, 1); mutt_menu_init (); @@ -260,6 +260,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<tag-prefix>\fP function (bound to ``;'' + ** by default) to make the next function apply to all tagged messages. + */ { "autoedit", DT_BOOL, R_NONE, OPTAUTOEDIT, 0 }, /* ** .pp @@ -271,14 +279,6 @@ struct option_t MuttVars[] = { ** .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<tag-prefix>\fP function (bound to ``;'' - ** by default) to make the next function apply to all tagged messages. - */ { "beep", DT_BOOL, R_NONE, OPTBEEP, 1 }, /* ** .pp @@ -314,21 +314,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 +347,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 +381,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 @@ -600,6 +615,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 @@ -778,6 +801,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 @@ -1186,18 +1245,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,29 +1253,7 @@ 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" }, - /* - ** .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 */ -#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 */ +#endif { "maildir_trash", DT_BOOL, R_NONE, OPTMAILDIRTRASH, 0 }, /* ** .pp @@ -1276,12 +1301,6 @@ struct option_t MuttVars[] = { ** ``mbox'', ``MMDF'', ``MH'' and ``Maildir''. This is overriden by the ** \fC-m\fP command-line option. */ - { "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. - */ { "menu_context", DT_NUM, R_NONE, UL &MenuContext, 0 }, /* ** .pp @@ -1303,6 +1322,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 @@ -1314,6 +1366,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 @@ -1399,39 +1457,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 @@ -2123,118 +2148,20 @@ struct option_t MuttVars[] = { ** 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. - */ - { "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$<account-hook>\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$<account-hook>\fP function. - */ - { "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 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_GNUTLS - { "ssl_min_dh_prime_bits", DT_NUM, R_NONE, UL &SslDHPrimeBits, 0 }, + { "pipe_decode", DT_BOOL, R_NONE, OPTPIPEDECODE, 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. + ** Used in connection with the \fC<pipe-message>\fP command. When \fIunset\fP, + ** Mutt will pipe the messages without any preprocessing. When \fIset\fP, Mutt + ** will weed headers and will attempt to decode the messages + ** first. */ - { "ssl_ca_certificates_file", DT_PATH, R_NONE, UL &SslCACertFile, 0 }, + { "pipe_sep", DT_STR, R_NONE, UL &PipeSep, UL "\n" }, /* ** .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 + ** The separator to add between messages when piping a list of tagged + ** messages to an external Unix command. */ -# endif /* USE_SSL_GNUTLS */ -#endif /* defined(USE_SSL) */ { "pipe_split", DT_BOOL, R_NONE, OPTPIPESPLIT, 0 }, /* ** .pp @@ -2245,21 +2172,15 @@ struct option_t MuttVars[] = { ** In both cases the messages are piped in the current sorted order, ** and the $$pipe_sep separator is added after each message. */ - { "pipe_decode", DT_BOOL, R_NONE, OPTPIPEDECODE, 0 }, - /* - ** .pp - ** Used in connection with the \fC<pipe-message>\fP command. When \fIunset\fP, - ** Mutt will pipe the messages without any preprocessing. When \fIset\fP, Mutt - ** will weed headers and will attempt to decode the messages - ** first. - */ - { "pipe_sep", DT_STR, R_NONE, UL &PipeSep, UL "\n" }, +#ifdef USE_POP + { "pop_auth_try_all", DT_BOOL, R_NONE, OPTPOPAUTHTRYALL, 1 }, /* ** .pp - ** The separator to add between messages when piping a list of tagged - ** messages to an external Unix command. + ** 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. */ -#ifdef USE_POP { "pop_authenticators", DT_STR, R_NONE, UL &PopAuthenticators, UL 0 }, /* ** .pp @@ -2276,14 +2197,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 @@ -2315,6 +2228,16 @@ struct option_t MuttVars[] = { ** for retrieving only unread messages from the POP server when using ** the \fC$<fetch-mail>\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 @@ -2328,16 +2251,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 "" }, /* @@ -2780,6 +2693,14 @@ struct option_t MuttVars[] = { ** 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 @@ -2796,14 +2717,6 @@ struct option_t MuttVars[] = { ** a line quoted text if it also matches $$smileys. This mostly ** happens at the beginning of a line. */ - { "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. - */ #ifdef USE_SMTP # ifdef USE_SASL { "smtp_authenticators", DT_STR, R_NONE, UL &SmtpAuthenticators, UL 0 }, @@ -2947,6 +2860,98 @@ struct option_t MuttVars[] = { ** 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, 1 }, + /* + ** .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$<account-hook>\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$<account-hook>\fP function. + */ +#endif /* defined(USE_SSL) */ { "status_chars", DT_STR, R_BOTH, UL &StChars, UL "-*%A" }, /* ** .pp @@ -3071,12 +3076,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 @@ -3091,6 +3090,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 |