Rocco Rutte:
[apps/madmutt.git] / init.h
diff --git a/init.h b/init.h
index 5e8cd10..e1bf9f1 100644 (file)
--- a/init.h
+++ b/init.h
@@ -215,12 +215,18 @@ struct option_t MuttVars[] = {
   { "ask_follow_up",   DT_BOOL, R_NONE, OPTASKFOLLOWUP, 0 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If set, Mutt-ng will prompt you for follow-up groups before editing
   ** the body of an outgoing message.
   */  
   { "ask_x_comment_to",        DT_BOOL, R_NONE, OPTASKXCOMMENTTO, 0 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If set, Mutt-ng will prompt you for x-comment-to field before editing
   ** the body of an outgoing message.
   */  
@@ -320,6 +326,9 @@ struct option_t MuttVars[] = {
   { "catchup_newsgroup", DT_QUAD, R_NONE, OPT_CATCHUP, M_ASKYES },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If this variable is \fIset\fP, Mutt-ng will mark all articles in newsgroup
   ** as read when you quit the newsgroup (catchup newsgroup).
   */
@@ -496,6 +505,9 @@ struct option_t MuttVars[] = {
   { "dotlock_program",  DT_PATH, R_NONE, UL &MuttDotlock, UL BINDIR "/muttng_dotlock" },
   /*
   ** .pp
+  ** Availability: Standalone and Dotlock
+  **
+  ** .pp
   ** Contains the path of the muttng_dotlock (1) binary to be used by
   ** mutt-ng.
   */
@@ -667,6 +679,9 @@ struct option_t MuttVars[] = {
   { "followup_to_poster", DT_QUAD, R_NONE, OPT_FOLLOWUPTOPOSTER, M_ASKYES },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If this variable is \fIset\fP and the keyword "poster" is present in
   ** \fIFollowup-To\fP header, follow-up to newsgroup function is not
   ** permitted.  The message will be mailed to the submitter of the
@@ -682,6 +697,16 @@ struct option_t MuttVars[] = {
   ** .pp
   ** Also see the ``$$record'' variable.
   */
+  { "force_buffy_check", DT_BOOL, R_NONE, OPTFORCEBUFFYCHECK, 0 },
+  /*
+  ** .pp
+  ** When \fIset\fP, it causes mutt-ng to check for new mail when the
+  ** \fIbuffy-list\fP command is invoked. When \fIunset\fP, \fIbuffy_list\fP
+  ** will just list all mailboxes which are already known to have new mail.
+  ** .pp
+  ** Also see the following variables: ``$$timeout'', ``$$mail_check'' and
+  ** ``$$imap_mail_check''.
+  */
   { "forward_decode",  DT_BOOL, R_NONE, OPTFORWDECODE, 1 },
   /*
   ** .pp
@@ -748,6 +773,9 @@ struct option_t MuttVars[] = {
   { "group_index_format", DT_STR, R_BOTH, UL &GroupFormat, UL "%4C %M%N %5s  %-45.45f %d" },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** This variable allows you to customize the newsgroup browser display to
   ** your personal taste.  This string is similar to ``$index_format'', but
   ** has its own set of printf()-like sequences:
@@ -872,6 +900,9 @@ struct option_t MuttVars[] = {
   { "imap_authenticators", DT_STR, R_NONE, UL &ImapAuthenticators, UL 0 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** This is a colon-delimited list of authentication methods mutt-ng may
   ** attempt to use to log in to an IMAP server, in the order mutt-ng should
   ** try them.  Authentication methods are either 'login' or the right
@@ -889,6 +920,9 @@ struct option_t MuttVars[] = {
   { "imap_delim_chars",                DT_STR, R_NONE, UL &ImapDelimChars, UL "/." },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** This contains the list of characters which you would like to treat
   ** as folder separators for displaying IMAP paths. In particular it
   ** helps in using the '=' shortcut for your \fIfolder\fP variable.
@@ -897,6 +931,9 @@ struct option_t MuttVars[] = {
   { "imap_force_ssl",          DT_BOOL, R_NONE, OPTIMAPFORCESSL, 0 },
   /*
   ** .pp
+  ** Availability: IMAP and SSL or IMAP and GNUTLS
+  **
+  ** .pp
   ** If this variable is set, Mutt-ng will always use SSL when
   ** connecting to IMAP servers.
   */
@@ -904,6 +941,9 @@ struct option_t MuttVars[] = {
   { "imap_headers",    DT_STR, R_INDEX, UL &ImapHeaders, UL 0},
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** Mutt-ng requests these header fields in addition to the default headers
   ** ("DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE
   ** CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES X-LABEL") from IMAP
@@ -913,6 +953,9 @@ struct option_t MuttVars[] = {
   { "imap_home_namespace",     DT_STR, R_NONE, UL &ImapHomeNamespace, UL 0},
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** You normally want to see your personal folders alongside
   ** your INBOX in the IMAP browser. If you see something else, you may set
   ** this variable to the IMAP path to your folders.
@@ -920,6 +963,9 @@ struct option_t MuttVars[] = {
   { "imap_keepalive",           DT_NUM,  R_NONE, UL &ImapKeepalive, 900 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** This variable specifies the maximum amount of time in seconds that mutt-ng
   ** will wait before polling open IMAP connections, to prevent the server
   ** from closing them before mutt-ng has finished with them. The default is
@@ -931,13 +977,29 @@ struct option_t MuttVars[] = {
   { "imap_list_subscribed",    DT_BOOL, R_NONE, OPTIMAPLSUB, 0 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** This variable configures whether IMAP folder browsing will look for
   ** only subscribed folders or all folders.  This can be toggled in the
   ** IMAP browser with the \fItoggle-subscribed\fP function.
   */
+  { "imap_mail_check", DT_NUM,  R_NONE, UL &ImapBuffyTimeout, 5 },
+  /*
+  ** .pp
+  ** This variable configures how often (in seconds) mutt-ng should look for
+  ** new mail in IMAP folders. This is split from the ``$mail_check'' variable
+  ** to generate less traffic and get more accurate information for local folders.
+  ** .pp
+  ** It defaults to the default value of ``$mail_check'' which is 5 seconds. But
+  ** you may want to increase it.
+  */
   { "imap_pass",       DT_STR,  R_NONE, UL &ImapPass, UL 0 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** Specifies the password for your IMAP account.  If unset, Mutt-ng will
   ** prompt you for your password when you invoke the fetch-mail function.
   ** \fBWarning\fP: you should only use this option when you are on a
@@ -947,6 +1009,9 @@ struct option_t MuttVars[] = {
   { "imap_passive",            DT_BOOL, R_NONE, OPTIMAPPASSIVE, 1 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** When set, mutt-ng will not open new IMAP connections to check for new
   ** mail.  Mutt-ng will only check for new mail over existing IMAP
   ** connections.  This is useful if you don't want to be prompted to
@@ -956,6 +1021,9 @@ struct option_t MuttVars[] = {
   { "imap_peek", DT_BOOL, R_NONE, OPTIMAPPEEK, 1 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** If set, mutt-ng will avoid implicitly marking your mail as read whenever
   ** you fetch a message from the server. This is generally a good thing,
   ** but can make closing an IMAP folder somewhat slower. This option
@@ -964,12 +1032,18 @@ struct option_t MuttVars[] = {
   { "imap_reconnect",  DT_QUAD, R_NONE, OPT_IMAPRECONNECT, M_ASKYES },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** Controls whether or not Mutt-ng will try to reconnect to IMAP server when
   ** the connection is lost.
   */
   { "imap_servernoise",                DT_BOOL, R_NONE, OPTIMAPSERVERNOISE, 1 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** When set, mutt-ng will display warning messages from the IMAP
   ** server as error messages. Since these messages are often
   ** harmless, or generated due to configuration problems on the
@@ -979,6 +1053,9 @@ struct option_t MuttVars[] = {
   { "imap_user",       DT_STR,  R_NONE, UL &ImapUser, UL 0 },
   /*
   ** .pp
+  ** Availability: IMAP
+  **
+  ** .pp
   ** Your login name on the IMAP server.
   ** .pp
   ** This variable defaults to your user name on the local machine.
@@ -1087,6 +1164,9 @@ struct option_t MuttVars[] = {
   { "inews",          DT_PATH, R_NONE, UL &Inews, UL "" },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If set, specifies the program and arguments used to deliver news posted
   ** by Mutt-ng.  Otherwise, mutt-ng posts article using current connection to
   ** news server.  The following printf-style sequence is understood:
@@ -1123,6 +1203,13 @@ struct option_t MuttVars[] = {
   ** from (instead to the author only). Setting this option to ``ask-yes'' or
   ** ``ask-no'' will ask if you really intended to reply to the author only.
   */
+  { "max_line_length", DT_NUM, R_NONE, UL &MaxLineLength, 0 },
+  /*
+  ** .pp
+  ** When set, the maximum line length for displaying f=f messages is limited
+  ** to this length. A value of 0 (which is also the default) means that the
+  ** maximum line length is determined by the terminal width and $$wrapmargin.
+  */
   { "mail_check",      DT_NUM,  R_NONE, UL &BuffyTimeout, 5 },
   /*
   ** .pp
@@ -1150,15 +1237,21 @@ struct option_t MuttVars[] = {
   { "header_cache", DT_PATH, R_NONE, UL &HeaderCache, 0 },
   /*
   ** .pp
-  ** The header_cache variable points to the header cache database. If
-  ** header_cache points to a directory there will be created one header cache
-  ** database per folder within this directory. If it doesn't point to a directory a
-  ** global header cache for all folders is used. Per default it is unset and so
-  ** no header caching will be used.
+  ** Availability: Header Cache
+  **
+  ** .pp
+  ** The header_cache variable points to the header cache database.
+  ** If header_cache points to a directory it will contain a header cache
+  ** database  per folder. If header_cache points to a file that file will
+  ** be a single global header cache. By default it is unset and so no
+  ** header caching will be used.
   */
   { "maildir_header_cache_verify", DT_BOOL, R_NONE, OPTHCACHEVERIFY, 1 },
   /*
   ** .pp
+  ** Availability: Header Cache
+  **
+  ** .pp
   ** Check for Maildir unaware programs other than mutt-ng having modified maildir
   ** files when the header cache is in use.  This incurs one stat(2) per
   ** message every time the folder is opened.
@@ -1166,6 +1259,9 @@ struct option_t MuttVars[] = {
   { "header_cache_pagesize", DT_STR, R_NONE, UL &HeaderCachePageSize, UL "16384" },
   /*
   ** .pp
+  ** Availability: Header Cache
+  **
+  ** .pp
   ** Change the maildir header cache database page size.  Too large
   ** or too small of a page size for the common header can waste
   ** space, memory effectiveness, or CPU time. The default should be more or
@@ -1328,6 +1424,9 @@ struct option_t MuttVars[] = {
   { "mime_subject",   DT_BOOL, R_NONE, OPTMIMESUBJECT, 1 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If \fIunset\fP, 8-bit ``subject:'' line in article header will not be
   ** encoded according to RFC2047 to base64.  This is useful when message
   ** is Usenet article, because MIME for news is nonstandard feature.
@@ -1338,6 +1437,9 @@ struct option_t MuttVars[] = {
   { "mix_entry_format", DT_STR,  R_NONE, UL &MixEntryFormat, UL "%4n %c %-16s %a" },
   /*
   ** .pp
+  ** Availability: Mixmaster
+  **
+  ** .pp
   ** This variable describes the format of a remailer line on the mixmaster
   ** chain selection screen.  The following printf-like sequences are 
   ** supported:
@@ -1352,14 +1454,15 @@ struct option_t MuttVars[] = {
   { "mixmaster",       DT_PATH, R_NONE, UL &Mixmaster, UL MIXMASTER },
   /*
   ** .pp
+  ** Availability: Mixmaster
+  **
+  ** .pp
   ** This variable contains the path to the Mixmaster binary on your
   ** system.  It is used with various sets of parameters to gather the
   ** list of known remailers, and to finally send a message through the
   ** mixmaster chain.
   */
 #endif
-
-
   { "move",            DT_QUAD, R_NONE, OPT_MOVE, M_ASKNO },
   /*
   ** .pp
@@ -1413,6 +1516,9 @@ struct option_t MuttVars[] = {
   { "news_cache_dir", DT_PATH, R_NONE, UL &NewsCacheDir, UL "~/.mutt" },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** This variable pointing to directory where Mutt-ng will save cached news
   ** articles headers in. If \fIunset\fP, headers will not be saved at all
   ** and will be reloaded each time when you enter to newsgroup.
@@ -1420,6 +1526,9 @@ struct option_t MuttVars[] = {
   { "news_server",    DT_STR,  R_NONE, UL &NewsServer, 0 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** This variable specifies domain name or address of NNTP server. It
   ** defaults to the newsserver specified in the environment variable
   ** $$$NNTPSERVER or contained in the file /etc/nntpserver.  You can also
@@ -1430,6 +1539,9 @@ struct option_t MuttVars[] = {
   { "newsrc",         DT_PATH, R_NONE, UL &NewsRc, UL "~/.newsrc" },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** The file, containing info about subscribed newsgroups - names and
   ** indexes of read articles.  The following printf-style sequence
   ** is understood:
@@ -1441,6 +1553,9 @@ struct option_t MuttVars[] = {
   { "nntp_context",   DT_NUM,  R_NONE, UL &NntpContext, 1000 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** This variable defines number of articles which will be in index when
   ** newsgroup entered.  If active newsgroup have more articles than this
   ** number, oldest articles will be ignored.  Also controls how many
@@ -1449,6 +1564,9 @@ struct option_t MuttVars[] = {
   { "nntp_load_description", DT_BOOL, R_NONE, OPTLOADDESC, 1 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** This variable controls whether or not descriptions for each newsgroup
   ** must be loaded when newsgroup is added to list (first time list
   ** loading or new newsgroup adding).
@@ -1456,6 +1574,9 @@ struct option_t MuttVars[] = {
   { "nntp_user",      DT_STR,  R_NONE, UL &NntpUser, UL "" },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** Your login name on the NNTP server.  If \fIunset\fP and NNTP server requires
   ** authentification, Mutt-ng will prompt you for your account name when you
   ** connect to newsserver.
@@ -1463,11 +1584,17 @@ struct option_t MuttVars[] = {
   { "nntp_pass",      DT_STR,  R_NONE, UL &NntpPass, UL "" },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** Your password for NNTP account.
   */
   { "nntp_poll",      DT_NUM,  R_NONE, UL &NewsPollTimeout, 60 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** The time in seconds until any operations on newsgroup except post new
   ** article will cause recheck for new news.  If set to 0, Mutt-ng will
   ** recheck newsgroup on each operation in index (stepping, read article,
@@ -1476,6 +1603,9 @@ struct option_t MuttVars[] = {
   { "nntp_reconnect", DT_QUAD, R_NONE, OPT_NNTPRECONNECT, M_ASKYES },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** Controls whether or not Mutt-ng will try to reconnect to newsserver when
   ** connection lost.
   */
@@ -2094,12 +2224,18 @@ struct option_t MuttVars[] = {
   { "smtp_auth_username", DT_STR, R_NONE, UL &SmtpAuthUser, 0 },
   /*
   ** .pp
+  ** Availability: SMTP
+  **
+  ** .pp
   ** 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 },
   /*
   ** .pp
+  ** Availability: SMTP
+  **
+  ** .pp
   ** Defines the password to use with SMTP AUTH.  If ``$$smtp_auth_username''
   ** is set, but this variable is not, you will be prompted for a password
   ** when sending.
@@ -2107,6 +2243,9 @@ struct option_t MuttVars[] = {
   { "smtp_host", DT_STR, R_NONE, UL &SmtpHost, 0 },
   /*
   ** .pp
+  ** Availability: SMTP
+  **
+  ** .pp
   ** Defines the SMTP host which will be used to deliver mail, as opposed
   ** to invoking the sendmail binary.  Setting this variable overrides the
   ** value of ``$$sendmail'', and any associated variables.
@@ -2114,6 +2253,9 @@ struct option_t MuttVars[] = {
   { "smtp_port", DT_NUM, R_NONE, UL &SmtpPort, 25 },
   /*
   ** .pp
+  ** Availability: SMTP
+  **
+  ** .pp
   ** Defines the port that the SMTP host is listening on for mail delivery.
   ** Must be specified as a number.
   ** .pp
@@ -2121,12 +2263,14 @@ struct option_t MuttVars[] = {
   ** servers will probably desire 587, the mail submission port.
   */
 #endif
 #if defined(USE_SSL)||defined(USE_NSS)||defined(USE_GNUTLS)
 #ifdef USE_SSL
   { "ssl_client_cert", DT_PATH, R_NONE, UL &SslClientCert, 0 },
   /*
   ** .pp
+  ** Availability: SSL
+  **
+  ** .pp
   ** The file containing a client certificate and its associated private
   ** key.
   */
@@ -2135,6 +2279,9 @@ struct option_t MuttVars[] = {
   { "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, M_YES },
   /*
   ** .pp
+  ** Availability: SSL or GNUTLS
+  **
+  ** .pp
   ** If set (the default), mutt-ng will attempt to use STARTTLS on servers
   ** advertising the capability. When unset, mutt-ng will not attempt to
   ** use STARTTLS regardless of the server's capabilities.
@@ -2143,6 +2290,9 @@ struct option_t MuttVars[] = {
   { "certificate_file",        DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates" },
   /*
   ** .pp
+  ** Availability: SSL or NSS or GNUTLS
+  **
+  ** .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 
@@ -2159,6 +2309,9 @@ struct option_t MuttVars[] = {
   { "ssl_usesystemcerts", DT_BOOL, R_NONE, OPTSSLSYSTEMCERTS, 1 },
   /*
   ** .pp
+  ** Availability: SSL or NSS
+  **
+  ** .pp
   ** If set to \fIyes\fP, mutt-ng will use CA certificates in the
   ** system-wide certificate store when checking if server certificate 
   ** is signed by a trusted CA.
@@ -2166,12 +2319,18 @@ struct option_t MuttVars[] = {
   { "entropy_file",    DT_PATH, R_NONE, UL &SslEntropyFile, 0 },
   /*
   ** .pp
+  ** Availability: SSL or NSS
+  **
+  ** .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
+  ** Availability: SSL or NSS
+  **
+  ** .pp
   ** This variables specifies whether to attempt to use SSLv2 in the
   ** SSL authentication process.
   */
@@ -2179,12 +2338,18 @@ struct option_t MuttVars[] = {
   { "ssl_use_sslv3", DT_BOOL, R_NONE, OPTSSLV3, 1 },
   /*
   ** .pp
+  ** Availability: SSL or NSS or GNUTLS
+  **
+  ** .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
+  ** Availability: SSL or NSS or GNUTLS
+  **
+  ** .pp
   ** This variables specifies whether to attempt to use TLSv1 in the
   ** SSL authentication process.
   */
@@ -2192,6 +2357,9 @@ struct option_t MuttVars[] = {
   { "ssl_min_dh_prime_bits", DT_NUM, R_NONE, UL &SslDHPrimeBits, 0 },
   /*
   ** .pp
+  ** Availability: GNUTLS
+  **
+  ** .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.
@@ -2235,6 +2403,9 @@ struct option_t MuttVars[] = {
   { "pop_authenticators", DT_STR, R_NONE, UL &PopAuthenticators, UL 0 },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** This is a colon-delimited list of authentication methods mutt-ng may
   ** attempt to use to log in to an POP server, in the order mutt-ng should
   ** try them.  Authentication methods are either 'user', 'apop' or any
@@ -2248,6 +2419,9 @@ struct option_t MuttVars[] = {
   { "pop_auth_try_all",        DT_BOOL, R_NONE, OPTPOPAUTHTRYALL, 1 },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** If set, Mutt-ng will try all available methods. When unset, Mutt-ng will
   ** only fall back to other authentication methods if the previous
   ** methods are unavailable. If a method is available but authentication
@@ -2256,12 +2430,18 @@ struct option_t MuttVars[] = {
   { "pop_checkinterval", DT_NUM, R_NONE, UL &PopCheckTimeout, 60 },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** This variable configures how often (in seconds) POP should look for
   ** new mail.
   */
   { "pop_delete",      DT_QUAD, R_NONE, OPT_POPDELETE, M_ASKNO },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** If set, Mutt-ng will delete successfully downloaded messages from the POP
   ** server when using the fetch-mail function.  When unset, Mutt-ng will
   ** download messages but also leave them on the POP server.
@@ -2269,6 +2449,9 @@ struct option_t MuttVars[] = {
   { "pop_host",                DT_STR,  R_NONE, UL &PopHost, UL "" },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** The name of your POP server for the fetch-mail function.  You
   ** can also specify an alternative port, username and password, ie:
   ** .pp
@@ -2277,6 +2460,9 @@ struct option_t MuttVars[] = {
   { "pop_last",                DT_BOOL, R_NONE, OPTPOPLAST, 0 },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** If this variable is set, mutt-ng will try to use the "LAST" POP command
   ** for retrieving only unread messages from the POP server when using
   ** the fetch-mail function.
@@ -2284,12 +2470,18 @@ struct option_t MuttVars[] = {
   { "pop_reconnect",   DT_QUAD, R_NONE, OPT_POPRECONNECT, M_ASKYES },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** Controls whether or not Mutt-ng will try to reconnect to POP server when
   ** connection lost.
   */
   { "pop_user",                DT_STR,  R_NONE, UL &PopUser, 0 },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** Your login name on the POP server.
   ** .pp
   ** This variable defaults to your user name on the local machine.
@@ -2297,6 +2489,9 @@ struct option_t MuttVars[] = {
   { "pop_pass",                DT_STR,  R_NONE, UL &PopPass, UL "" },
   /*
   ** .pp
+  ** Availability: POP
+  **
+  ** .pp
   ** Specifies the password for your POP account.  If unset, Mutt-ng will
   ** prompt you for your password when you open POP mailbox.
   ** \fBWarning\fP: you should only use this option when you are on a
@@ -2317,6 +2512,9 @@ struct option_t MuttVars[] = {
   { "post_moderated", DT_QUAD, R_NONE, OPT_TOMODERATED, M_ASKYES },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If set to \fIyes\fP, Mutt-ng will post article to newsgroup that have
   ** not permissions to posting (e.g. moderated).  \fBNote:\fP if newsserver
   ** does not support posting to that newsgroup or totally read-only, that
@@ -2688,9 +2886,13 @@ struct option_t MuttVars[] = {
   { "save_unsubscribed",DT_BOOL, R_NONE, OPTSAVEUNSUB, 0 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** When \fIset\fP, info about unsubscribed newsgroups will be saved into
   ** ``newsrc'' file and into cache.
   */
+#endif
   { "shorten_hierarchy", DT_BOOL, R_NONE, OPTSHORTENHIERARCHY, 0 },
   /*
   ** .pp
@@ -2701,9 +2903,13 @@ struct option_t MuttVars[] = {
   ** ``d.a.s.recovery'' while ``de.alt.d0'' still would and thus will not get 
   ** shortened.
   */
+#ifdef USE_NNTP
   { "show_new_news",  DT_BOOL, R_NONE, OPTSHOWNEWNEWS, 1 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If \fIset\fP, newsserver will be asked for new newsgroups on entering
   ** the browser.  Otherwise, it will be done only once for a newsserver.
   ** Also controls whether or not number of new articles of subscribed
@@ -2712,6 +2918,9 @@ struct option_t MuttVars[] = {
   { "show_only_unread",  DT_BOOL, R_NONE, OPTSHOWONLYUNREAD, 0 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If \fIset\fP, only subscribed newsgroups that contain unread articles
   ** will be displayed in browser.
   */
@@ -3130,6 +3339,9 @@ struct option_t MuttVars[] = {
   { "use_idn",         DT_BOOL, R_BOTH, OPTUSEIDN, 1},
   /*
   ** .pp
+  ** Availability: IDN
+  **
+  ** .pp
   ** When \fIset\fP, Mutt-ng will show you international domain names decoded.
   ** Note: You can use IDNs for addresses even if this is \fIunset\fP.
   ** This variable only affects decoding.
@@ -3231,6 +3443,9 @@ struct option_t MuttVars[] = {
   { "x_comment_to",   DT_BOOL, R_NONE, OPTXCOMMENTTO, 0 },
   /*
   ** .pp
+  ** Availability: NNTP
+  **
+  ** .pp
   ** If \fIset\fP, Mutt-ng will add ``X-Comment-To:'' field (that contains full
   ** name of original article author) to article that followuped to newsgroup.
   */
@@ -3310,6 +3525,7 @@ static int parse_lists (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *);
+static int parse_ifdef (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *);
@@ -3356,6 +3572,7 @@ struct command_t Commands[] = {
 #endif
   { "hdr_order",       parse_list,             UL &HeaderOrderList },
 #ifdef HAVE_ICONV
+  { "ifdef",           parse_ifdef,            0 },
   { "iconv-hook",      mutt_parse_hook,        M_ICONVHOOK }, 
 #endif
   { "ignore",          parse_ignore,           0 },