Rocco Rutte:
[apps/madmutt.git] / init.h
diff --git a/init.h b/init.h
index d0e7975..40c7772 100644 (file)
--- a/init.h
+++ b/init.h
@@ -105,6 +105,21 @@ struct feature_t {
 # ifndef USE_GNUTLS
 #  define USE_GNUTLS
 # endif
+# ifndef USE_DOTLOCK
+#  define USE_DOTLOCK
+# endif
+# ifndef DL_STANDALONE
+#  define DL_STANDALONE
+# endif
+# ifndef USE_HCACHE
+#  define USE_HCACHE
+# endif
+# ifndef HAVE_LIBIDN
+#  define HAVE_LIBIDN
+# endif
+# ifndef HAVE_GETADDRINFO
+#  define HAVE_GETADDRINFO
+# endif
 #endif
 
 struct option_t MuttVars[] = {
@@ -211,7 +226,7 @@ struct option_t MuttVars[] = {
    */
 #ifdef USE_NNTP
   {"ask_followup_to", DT_SYN, R_NONE, UL "nntp_ask_followup_to", 0},
-  {"nntp_ask_follow_up", DT_BOOL, R_NONE, OPTASKFOLLOWUP, 0},
+  {"nntp_ask_followup_to", DT_BOOL, R_NONE, OPTASKFOLLOWUP, 0},
   /*
    ** .pp
    ** Availability: NNTP
@@ -492,6 +507,19 @@ struct option_t MuttVars[] = {
    ** deleting will automatically be purged without prompting.  If set to
    ** \fIno\fP, messages marked for deletion will be kept in the mailbox.
    */
+  {"delete_space", DT_BOOL, R_NONE, OPTDELSP, 0},
+  /*
+   ** .pp
+   ** When sending messages with \fTformat=flowed\fP by \fIsetting\fP the
+   ** $$$text_flowed variable, this variable specifies whether to also
+   ** set the \fTDelSp\fP parameter to \fTyes\fP. If this is \fIunset\fP,
+   ** no additional parameter will be send as a value of \fTno\fP already
+   ** is the default behavior.
+   **
+   ** .pp
+   ** \fBNote:\fP this variable only has an effect on \fIoutgoing\fP messages
+   ** (if $$$text_flowed is \fIset\fP) but not on incomming.
+   */
   {"delete_untag", DT_BOOL, R_NONE, OPTDELETEUNTAG, 1},
   /*
    ** .pp
@@ -527,7 +555,7 @@ struct option_t MuttVars[] = {
   /*
    ** .pp
    ** \fBNote:\fP you should not enable this unless you are using Sendmail
-   ** 8.8.x or greater.
+   ** 8.8.x or greater or in connection with the SMTP support via libESMTP.
    ** .pp
    ** This variable sets the request for when notification is returned.  The
    ** string consists of a comma separated list (no spaces!) of one or more
@@ -542,7 +570,7 @@ struct option_t MuttVars[] = {
   /*
    ** .pp
    ** \fBNote:\fP you should not enable this unless you are using Sendmail
-   ** 8.8.x or greater.
+   ** 8.8.x or greater or in connection with the SMTP support via libESMTP.
    ** .pp
    ** This variable controls how much of your message is returned in DSN
    ** messages.  It may be set to either \fIhdrs\fP to return just the
@@ -578,6 +606,13 @@ struct option_t MuttVars[] = {
    ** they contain the string ``\fTFrom \fP'' (note the trailing space)
    ** in the beginning of a line. Useful to avoid the tampering certain mail
    ** delivery and transport agents tend to do with messages.
+   **
+   ** .pp
+   ** \fBNote:\fP as mutt-ng currently violates RfC3676 defining
+   ** \fTformat=flowed\fP, it's <em/strongly/ advised to \fIset\fP
+   ** this option although discouraged by the standard. Alternatively,
+   ** you must take care of space-stuffing <tt/From / lines (with a trailing
+   ** space) yourself.
    */
   {"envelope_from", DT_BOOL, R_NONE, OPTENVFROM, 0},
   /*
@@ -924,6 +959,14 @@ struct option_t MuttVars[] = {
    ** the previous methods are unavailable. If a method is available but
    ** authentication fails, Mutt-ng will not connect to the IMAP server.
    */
+  { "imap_check_subscribed",  DT_BOOL, R_NONE, OPTIMAPCHECKSUBSCRIBED, 0 },
+  /*
+   ** .pp
+   ** When \fIset\fP, mutt will fetch the set of subscribed folders from
+   ** your server on connection, and add them to the set of mailboxes
+   ** it polls for new mail. See also the ``$mailboxes'' command.
+   */
+  
   {"imap_delim_chars", DT_STR, R_NONE, UL &ImapDelimChars, UL "/."},
   /*
    ** .pp
@@ -934,17 +977,6 @@ struct option_t MuttVars[] = {
    ** as folder separators for displaying IMAP paths. In particular it
    ** helps in using the '\fT=\fP' shortcut for your $$folder variable.
    */
-# if defined(USE_SSL) || defined(USE_GNUTLS)
-  {"imap_force_ssl", DT_BOOL, R_NONE, OPTIMAPFORCESSL, 0},
-  /*
-   ** .pp
-   ** Availability: IMAP and SSL or IMAP and GNUTLS
-   **
-   ** .pp
-   ** If this variable is \fIset\fP, Mutt-ng will always use SSL when
-   ** connecting to IMAP servers.
-   */
-# endif
   {"imap_headers", DT_STR, R_INDEX, UL &ImapHeaders, UL 0},
   /*
    ** .pp
@@ -987,6 +1019,16 @@ struct option_t MuttVars[] = {
    ** Reduce this number if you find yourself
    ** getting disconnected from your IMAP server due to inactivity.
    */
+  {"imap_login", DT_STR, R_NONE, UL &ImapLogin, 0 },
+  /*
+   ** .pp
+   ** Availability: IMAP
+   **
+   ** .pp
+   ** Your login name on the IMAP server.
+   ** .pp
+   ** This variable defaults to the value of ``$$imap_user.''
+   */
   {"imap_list_subscribed", DT_BOOL, R_NONE, OPTIMAPLSUB, 0},
   /*
    ** .pp
@@ -1067,7 +1109,8 @@ struct option_t MuttVars[] = {
    ** Availability: IMAP
    **
    ** .pp
-   ** Your login name on the IMAP server.
+   ** The name of the user whose mail you intend to access on the IMAP
+   ** server.
    ** .pp
    ** This variable defaults to your user name on the local machine.
    */
@@ -1212,7 +1255,15 @@ struct option_t MuttVars[] = {
    ** from (instead to the author only). Setting this option to ``\fIask-yes\fP'' or
    ** ``\fIask-no\fP'' will ask if you really intended to reply to the author only.
    */
-  {"max_line_length", DT_NUM, R_NONE, UL &MaxLineLength, 0},
+  {"max_display_recips", DT_NUM, R_PAGER, UL &MaxDispRecips, 0},
+  /*
+   ** .pp
+   ** When set non-zero, this specifies the maximum number of recipient header
+   ** lines (\fTTo:\fP, \fTCc:\fP and \fTBcc:\fP) to display in the pager if header
+   ** weeding is turned on. In case the number of lines exeeds its value, the
+   ** last line will have 3 dots appended.
+   */
+  {"max_line_length", DT_NUM, R_PAGER, UL &MaxLineLength, 0},
   /*
    ** .pp
    ** When \fIset\fP, the maximum line length for displaying ``format = flowed'' messages is limited
@@ -1243,7 +1294,7 @@ struct option_t MuttVars[] = {
    ** \fBDON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE
    ** DOING!\fP
    */
-#if USE_HCACHE
+#ifdef USE_HCACHE
 
   {"header_cache", DT_PATH, R_NONE, UL &HeaderCache, 0},
   /*
@@ -1374,7 +1425,7 @@ struct option_t MuttVars[] = {
    ** .pp
    ** If \fIset\fP, only folders with new mail will be shown in the sidebar.
    */
-  {"sidebar_number_format", DT_STR, R_BOTH, UL &SidebarNumberFormat, UL "%c%?n?(%n)?%?f?[%f]?"},
+  {"sidebar_number_format", DT_STR, R_BOTH, UL &SidebarNumberFormat, UL "%m%?n?(%n)?%?f?[%f]?"},
   /*
    ** .pp
    ** This variable controls how message counts are printed when the sidebar
@@ -1382,15 +1433,20 @@ struct option_t MuttVars[] = {
    ** will be printed \fIand\fP mutt-ng won't frequently count mail (which
    ** may be a great speedup esp. with mbox-style mailboxes.)
    ** .pp
-   ** The following \fTprintf(3)\fP-like sequences are supported:
+   ** The following \fTprintf(3)\fP-like sequences are supported all of which
+   ** may be printed non-zero:
    ** .pp
    ** .dl
-   ** .dt %c .dd Total number of messages.
-   ** .dt %f .dd Number of flagged messages.
+   ** .dt %d .dd Number of deleted messages. 1)
+   ** .dt %F .dd Number of flagged messages.
+   ** .dt %m .dd Total number of messages.
+   ** .dt %M .dd Total number of messages shown, i.e. not hidden by a limit. 1)
    ** .dt %n .dd Number of new messages.
+   ** .dt %t .dd Number of tagged messages. 1)
    ** .de
    ** .pp
-   ** The \fT%f\fP and \fT%n\fP expandos may optionally be printed non-zero.
+   ** 1) These expandos only have a non-zero value for the current mailbox and
+   ** will always be zero otherwise.
    */
   {"sidebar_shorten_hierarchy", DT_BOOL, R_NONE, OPTSHORTENHIERARCHY, 0},
   /*
@@ -1423,7 +1479,7 @@ struct option_t MuttVars[] = {
    ** This variable controls the number of lines of context that are given
    ** when scrolling through menus. (Similar to ``$$pager_context''.)
    */
-  {"menu_move_off", DT_BOOL, R_NONE, OPTMENUMOVEOFF, 0},
+  {"menu_move_off", DT_BOOL, R_NONE, OPTMENUMOVEOFF, 1},
   /*
    ** .pp
    ** When \fIunset\fP, the bottom entry of menus will never scroll up past
@@ -1657,7 +1713,7 @@ struct option_t MuttVars[] = {
    **
    ** .pp
    ** This variable controls how many news articles to cache per newsgroup
-   ** (if caching is enabled, see $$news_cache_dir) and how many news articles
+   ** (if caching is enabled, see $$nntp_cache_dir) and how many news articles
    ** to show in the ``index'' menu.
    ** .pp
    ** If there're more articles than defined with $$nntp_context, all older ones
@@ -2315,7 +2371,8 @@ struct option_t MuttVars[] = {
    ** (S/MIME only)
    */
 #if defined(USE_LIBESMTP)
-  {"smtp_auth_username", DT_STR, R_NONE, UL &SmtpAuthUser, 0},
+  {"smtp_auth_username", DT_SYN, R_NONE, UL "smtp_user", 0},
+  {"smtp_user", DT_STR, R_NONE, UL &SmtpAuthUser, 0},
   /*
    ** .pp
    ** Availability: SMTP
@@ -2324,13 +2381,14 @@ struct option_t MuttVars[] = {
    ** Defines the username to use with SMTP AUTH.  Setting this variable will
    ** cause Mutt-ng to attempt to use SMTP AUTH when sending.
    */
-  {"smtp_auth_password", DT_STR, R_NONE, UL &SmtpAuthPass, 0},
+  {"smtp_auth_password", DT_SYN, R_NONE, UL "smtp_pass", 0},
+  {"smtp_pass", DT_STR, R_NONE, UL &SmtpAuthPass, 0},
   /*
    ** .pp
    ** Availability: SMTP
    **
    ** .pp
-   ** Defines the password to use with SMTP AUTH.  If ``$$smtp_auth_username''
+   ** Defines the password to use with SMTP AUTH.  If ``$$smtp_user''
    ** is set, but this variable is not, you will be prompted for a password
    ** when sending.
    ** .pp
@@ -2338,6 +2396,20 @@ struct option_t MuttVars[] = {
    ** presents a security risk since the superuser of your machine may read it
    ** regardless of the file's permissions.  
    */
+  {"smtp_envelope", DT_STR, R_NONE, UL &SmtpEnvFrom, 0},
+  /*
+   ** .pp
+   ** Availability: SMTP
+   **
+   ** .pp
+   ** If this variable is non-empty, it'll be used as the envelope sender. If it's empty
+   ** (the default), the value of the regular \fTFrom:\fP header will be used.
+   **
+   ** .pp
+   ** This may be necessary as some providers don't allow for arbitrary values
+   ** as the envelope sender but only a particular one which may not be the same as the
+   ** user's desired \fTFrom:\fP header.
+   */
   {"smtp_host", DT_STR, R_NONE, UL &SmtpHost, 0},
   /*
    ** .pp
@@ -2360,8 +2432,22 @@ struct option_t MuttVars[] = {
    ** Defaults to 25, the standard SMTP port, but RFC 2476-compliant SMTP
    ** servers will probably desire 587, the mail submission port.
    */
+  {"smtp_use_tls", DT_STR, R_NONE, UL &SmtpUseTLS, 0},
+  /*
+   ** .pp
+   ** Availability: SMTP (and SSL)
+   **
+   ** .pp
+   ** Defines wether to use STARTTLS. If this option is set to ``\fIrequired\fP''
+   ** and the server does not support STARTTLS or there is an error in the
+   ** TLS Handshake, the connection will fail. Setting this to ``\fIenabled\fP''
+   ** will try to start TLS and continue without TLS in case of an error.
+   **
+   **.pp
+   ** Muttng still needs to have SSL support enabled in order to use it.
+   */
 #endif
-#if defined(USE_SSL)||defined(USE_NSS)||defined(USE_GNUTLS)
+#if defined(USE_SSL) || defined(USE_GNUTLS)
 #ifdef USE_SSL
   {"ssl_client_cert", DT_PATH, R_NONE, UL &SslClientCert, 0},
   /*
@@ -2372,8 +2458,16 @@ struct option_t MuttVars[] = {
    ** The file containing a client certificate and its associated private
    ** key.
    */
-#endif
-# if defined(USE_SSL)||defined(USE_GNUTLS)
+#endif /* USE_SSL */
+  {"ssl_force_tls", DT_BOOL, R_NONE, OPTSSLFORCETLS, 0 },
+  /*
+   ** .pp
+   ** If this variable is \fIset\fP, mutt-ng 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
@@ -2384,11 +2478,10 @@ struct option_t MuttVars[] = {
    ** advertising the capability. When \fIunset\fP, Mutt-ng will not attempt to
    ** use STARTTLS regardless of the server's capabilities.
    */
-# endif
   {"certificate_file", DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates"},
   /*
    ** .pp
-   ** Availability: SSL or NSS or GNUTLS
+   ** Availability: SSL or GNUTLS
    **
    ** .pp
    ** This variable specifies the file where the certificates you trust
@@ -2403,11 +2496,11 @@ struct option_t MuttVars[] = {
    ** .pp
    ** Example: \fTset certificate_file=~/.muttng/certificates\fP
    */
-# ifndef USE_GNUTLS
+# if defined(_MAKEDOC) || !defined (USE_GNUTLS)
   {"ssl_usesystemcerts", DT_BOOL, R_NONE, OPTSSLSYSTEMCERTS, 1},
   /*
    ** .pp
-   ** Availability: SSL or NSS
+   ** Availability: SSL
    **
    ** .pp
    ** If set to \fIyes\fP, Mutt-ng will use CA certificates in the
@@ -2417,7 +2510,7 @@ struct option_t MuttVars[] = {
   {"entropy_file", DT_PATH, R_NONE, UL &SslEntropyFile, 0},
   /*
    ** .pp
-   ** Availability: SSL or NSS
+   ** Availability: SSL
    **
    ** .pp
    ** The file which includes random data that is used to initialize SSL
@@ -2426,17 +2519,17 @@ struct option_t MuttVars[] = {
   {"ssl_use_sslv2", DT_BOOL, R_NONE, OPTSSLV2, 1},
   /*
    ** .pp
-   ** Availability: SSL or NSS
+   ** Availability: SSL
    **
    ** .pp
    ** This variables specifies whether to attempt to use SSLv2 in the
    ** SSL authentication process.
    */
-# endif
+# endif /* _MAKEDOC || !USE_GNUTLS */
   {"ssl_use_sslv3", DT_BOOL, R_NONE, OPTSSLV3, 1},
   /*
    ** .pp
-   ** Availability: SSL or NSS or GNUTLS
+   ** Availability: SSL or GNUTLS
    **
    ** .pp
    ** This variables specifies whether to attempt to use SSLv3 in the
@@ -2445,13 +2538,13 @@ struct option_t MuttVars[] = {
   {"ssl_use_tlsv1", DT_BOOL, R_NONE, OPTTLSV1, 1},
   /*
    ** .pp
-   ** Availability: SSL or NSS or GNUTLS
+   ** Availability: SSL or GNUTLS
    **
    ** .pp
    ** This variables specifies whether to attempt to use TLSv1 in the
    ** SSL authentication process.
    */
-#ifdef USE_GNUTLS
+# ifdef USE_GNUTLS
   {"ssl_min_dh_prime_bits", DT_NUM, R_NONE, UL &SslDHPrimeBits, 0},
   /*
    ** .pp
@@ -2471,8 +2564,8 @@ struct option_t MuttVars[] = {
    ** .pp
    ** Example: \fTset ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt\fP
    */
-#endif
-#endif
+# endif /* USE_GNUTLS */
+# endif /* USE_SSL || USE_GNUTLS */
   {"pipe_split", DT_BOOL, R_NONE, OPTPIPESPLIT, 0},
   /*
    ** .pp
@@ -3449,10 +3542,12 @@ struct option_t MuttVars[] = {
    ** .pp
    ** \fBWarning:\fP do not set this variable unless you are using a version
    ** of sendmail which supports the \fT-B8BITMIME\fP flag (such as sendmail
-   ** 8.8.x) or you may not be able to send mail.
+   ** 8.8.x) or in connection with the SMTP support via libESMTP.
+   ** Otherwise you may not be able to send mail.
    ** .pp
-   ** When \fIset\fP, Mutt-ng will invoke ``$$sendmail'' with the \fT-B8BITMIME\fP
-   ** flag when sending 8-bit messages to enable ESMTP negotiation.
+   ** When \fIset\fP, Mutt-ng will either invoke ``$$sendmail'' with the \fT-B8BITMIME\fP
+   ** flag when sending 8-bit messages to enable ESMTP negotiation or tell
+   ** libESMTP to do so.
    */
   {"use_domain", DT_BOOL, R_NONE, OPTUSEDOMAIN, 1},
   /*
@@ -3567,6 +3662,20 @@ struct option_t MuttVars[] = {
    ** (as long as you're in an appropriate terminal). The default must
    ** be \fIunset\fP to force in the validity checking.
    */
+  {"xterm_leave", DT_STR, R_BOTH, UL &XtermLeave, UL "" },
+  /*
+   ** .pp
+   ** If $$xterm_set_titles is \fIset\fP, this string will be used to
+   ** set the title when leaving mutt-ng. For terminal-based programs,
+   ** there's no easy and portable way to read the current title so mutt-ng
+   ** cannot read it upon startup and restore it when exiting.
+   **
+   ** .pp
+   ** Based on the xterm FAQ, the following might work:
+   **
+   ** .pp
+   ** \fTset xterm_leave = "`test x$$$DISPLAY != x && xprop -id $$$WINDOWID | grep WM_NAME | cut -d '"' -f 2`"\fP
+   */
   {"xterm_title", DT_STR, R_BOTH, UL &XtermTitle, UL "Mutt-ng with %?m?%m messages&no messages?%?n? [%n New]?"},
   /*
    ** .pp