Andreas Krennmair:
[apps/madmutt.git] / init.h
diff --git a/init.h b/init.h
index 0ab2405..2ccd08e 100644 (file)
--- a/init.h
+++ b/init.h
@@ -188,6 +188,23 @@ struct option_t MuttVars[] = {
   ** If set, Mutt will prompt you for carbon-copy (Cc) recipients before
   ** editing the body of an outgoing message.
   */  
+  { "assumed_charset", DT_STR, R_NONE, UL &AssumedCharset, UL "us-ascii"},
+  /*
+  ** .pp
+  ** This variable is a colon-separated list of character encoding
+  ** schemes for messages without character encoding indication.
+  ** Header field values and message body content without character encoding
+  ** indication would be assumed that they are written in one of this list.
+  ** By default, all the header fields and message body without any charset
+  ** indication are assumed to be in "us-ascii".
+  ** .pp
+  ** For example, Japanese users might prefer this:
+  ** .pp
+  **   set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
+  ** .pp
+  ** However, only the first content is valid for the message body.
+  ** This variable is valid only if $$strict_mime is unset.
+  */
 #ifdef USE_NNTP
   { "ask_follow_up",   DT_BOOL, R_NONE, OPTASKFOLLOWUP, 0 },
   /*
@@ -331,7 +348,7 @@ struct option_t MuttVars[] = {
   ** 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]%>-" },
+  { "compose_format",  DT_STR,  R_BOTH, UL &ComposeFormat, UL "-- Mutt-ng: Compose  [Approx. msg size: %l   Atts: %a]%>-" },
   /*
   ** .pp
   ** Controls the format of the status line displayed in the \fICompose\fP
@@ -473,7 +490,7 @@ struct option_t MuttVars[] = {
   { "dotlock_program",  DT_PATH, R_NONE, UL &MuttDotlock, UL BINDIR "/muttng_dotlock" },
   /*
   ** .pp
-  ** Contains the path of the mutt_dotlock (8) binary to be used by
+  ** Contains the path of the muttng_dotlock (8) binary to be used by
   ** mutt.
   */
 #endif
@@ -575,6 +592,20 @@ struct option_t MuttVars[] = {
   ** signed.
   ** (PGP only)
   */
+  { "file_charset",    DT_STR,  R_NONE, UL &FileCharset, UL 0 },
+  /*
+  ** .pp
+  ** This variable is a colon-separated list of character encoding
+  ** schemes for text file attatchments.
+  ** If unset, $$charset value will be used instead.
+  ** For example, the following configuration would work for Japanese
+  ** text handling:
+  ** .pp
+  **   set file_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
+  ** .pp
+  ** Note: "iso-2022-*" must be put at the head of the value as shown above
+  ** if included.
+  */
   { "folder",          DT_PATH, R_NONE, UL &Maildir, UL "~/Mail" },
   /*
   ** .pp
@@ -927,8 +958,8 @@ struct option_t MuttVars[] = {
   { "imap_reconnect",  DT_QUAD, R_NONE, OPT_IMAPRECONNECT, M_ASKYES },
   /*
   ** .pp
-  ** Controls whether or not Mutt will try to reconnect to IMAP server when
-  ** connection lost.
+  ** 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 },
   /*
@@ -1180,6 +1211,12 @@ struct option_t MuttVars[] = {
   ** this is unset, it will be set to the operating system name that uname(2)
   ** returns. If uname(2) fails, "UNIX" will be used.
   */
+  { "sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, UL "|" },
+  /*
+  ** .pp
+  ** This specifies the delimiter between the sidebar (if visible) and 
+  ** other screens.
+  */
   { "sidebar_visible", DT_BOOL, R_BOTH, OPTMBOXPANE, 0 },
   /*
   ** .pp
@@ -1202,6 +1239,12 @@ struct option_t MuttVars[] = {
   ** If unset, 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
+  ** This variable controls the number of lines of context that are given
+  ** when scrolling through menus. (Similar to ``$$pager_context''.)
+  */
   { "menu_scroll",     DT_BOOL, R_NONE, OPTMENUSCROLL, 0 },
   /*
   ** .pp
@@ -1314,7 +1357,7 @@ struct option_t MuttVars[] = {
   { "move",            DT_QUAD, R_NONE, OPT_MOVE, M_ASKNO },
   /*
   ** .pp
-  ** Controls whether you will be asked to confirm moving read messages
+  ** Controls whether or not Mutt will move read messages
   ** from your spool mailbox to your ``$$mbox'' mailbox, or as a result of
   ** a ``$mbox-hook'' command.
   */
@@ -1328,6 +1371,32 @@ struct option_t MuttVars[] = {
   { "msg_format",      DT_SYN,  R_NONE, UL "message_format", 0 },
   /*
   */
+  { "msgid_format",    DT_STR, R_NONE, UL &MsgIdFormat, UL "%Y%m%d%h%M%s.G%P%p" },
+  /*
+  ** .pp
+  ** This is the format for the ``local part'' of the message-IDs generated
+  ** by Mutt-ng. The format string contains of one or more characters. The '%'
+  ** character marks that certain data will be added to the string, similar to
+  ** printf(). The following characters are allowed:
+  ** .pp
+  ** .dl
+  ** .dt %d .dd the current day of month
+  ** .dt %h .dd the current hour
+  ** .dt %m .dd the current month
+  ** .dt %M .dd the current minute
+  ** .dt %O .dd the current UNIX timestamp (octal)
+  ** .dt %p .dd the process ID
+  ** .dt %P .dd the current message-ID prefix (a character rotating with 
+  **            every message-ID being generated)
+  ** .dt %r .dd a random integer value (decimal)
+  ** .dt %R .dd a random integer value (hexadecimal)
+  ** .dt %s .dd the current second
+  ** .dt %T .dd the current UNIX timestamp (decimal)
+  ** .dt %X .dd the current UNIX timestamp (hexadecimal)
+  ** .dt %Y .dd the current year (Y2K compliant)
+  ** .dt %% .dd the '%' character
+  ** .de
+  */
   { "narrow_tree",     DT_BOOL, R_TREE|R_INDEX, OPTNARROWTREE, 0 },
   /*
   ** .pp
@@ -1727,6 +1796,17 @@ struct option_t MuttVars[] = {
   ** \fBdeprecated\fP.
   ** (PGP only)
   */
+  { "pgp_auto_decode", DT_BOOL, R_NONE, OPTPGPAUTODEC, 0 },
+  /*
+  ** .pp
+  ** If set, 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 check-traditional-pgp function, mutt will automatically
+  ** check the message for traditional pgp.
+  */
+
 
   /* XXX Default values! */
   
@@ -2037,6 +2117,14 @@ struct option_t MuttVars[] = {
 #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
+  ** The file containing a client certificate and its associated private
+  ** key.
+  */
+#endif
 # if defined(USE_SSL)||defined(USE_GNUTLS)
   { "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, M_YES },
   /*
@@ -2111,12 +2199,6 @@ struct option_t MuttVars[] = {
   ** .pp
   ** Example: set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt
   */
-  { "ssl_client_cert", DT_PATH, R_NONE, UL &SslClientCert, 0 },
-  /*
-  ** .pp
-  ** The file containing a client certificate and its associated private
-  ** key.
-  */
 #ifdef USE_GNUTLS
   { "ssl_min_dh_prime_bits", DT_NUM, R_NONE, UL &SslDHPrimeBits, 0 },
   /*
@@ -2290,8 +2372,9 @@ struct option_t MuttVars[] = {
   { "print",           DT_QUAD, R_NONE, OPT_PRINT, M_ASKNO },
   /*
   ** .pp
-  ** Controls whether or not Mutt asks for confirmation before printing.
-  ** This is useful for people (like me) who accidentally hit ``p'' often.
+  ** Controls whether or not Mutt really prints messages.
+  ** This is set to \fIask-no\fP by default, because some people
+  ** accidentally hit ``p'' often (like me).
   */
   { "print_command",   DT_PATH, R_NONE, UL &PrintCmd, UL "lpr" },
   /*
@@ -2405,7 +2488,7 @@ struct option_t MuttVars[] = {
   { "recall",          DT_QUAD, R_NONE, OPT_RECALL, M_ASKYES },
   /*
   ** .pp
-  ** Controls whether or not you are prompted to recall postponed messages
+  ** Controls whether or not Mutt recalls postponed messages
   ** when composing a new message.  Also see ``$$postponed''.
   ** .pp
   ** Setting this variable to ``yes'' is not generally useful, and thus not
@@ -2439,8 +2522,8 @@ struct option_t MuttVars[] = {
   { "reply_to",                DT_QUAD, R_NONE, OPT_REPLYTO, M_ASKYES },
   /*
   ** .pp
-  ** If set, Mutt will ask you if you want to use the address listed in the
-  ** Reply-To: header field when replying to a message.  If you answer no,
+  ** If set, when replying to a message, Mutt will use the address listed
+  ** in the Reply-to: header as the recipient of the reply.  If unset,
   ** it will use the address in the From: header field instead.  This
   ** option is useful for reading a mailing list that sets the Reply-To:
   ** header field to the list address and you want to send a private
@@ -2621,6 +2704,12 @@ struct option_t MuttVars[] = {
   ** When \fIset\fP, info about unsubscribed newsgroups will be saved into
   ** ``newsrc'' file and into cache.
   */
+  { "shorten_hierarchy", DT_BOOL, R_NONE, OPTSHORTENHIERARCHY, 0 },
+  /*
+  ** .pp
+  ** When \fIset\fP, the "hierarchy" of the sidebar entries will be shortened,
+  ** e.g. de.alt.sysadmin.recovery becomes d.a.s.recovery.
+  */
   { "show_new_news",  DT_BOOL, R_NONE, OPTSHOWNEWNEWS, 1 },
   /*
   ** .pp
@@ -2662,6 +2751,16 @@ struct option_t MuttVars[] = {
   ** assumed that filename is a shell command and input should be read from
   ** its stdout.
   */
+  { "signoff_string",  DT_STR, R_NONE, UL &SignOffString, UL 0 },
+  /*
+  ** .pp
+  ** If set, this string will be inserted before the signature. This is useful
+  ** for people that want to sign off every message they send with their name.
+  ** .pp
+  ** If you want to insert your website's URL, additional contact information or 
+  ** witty quotes into your mails, better use a signature file instead of
+  ** the signoff string.
+  */
   { "simple_search",   DT_STR,  R_NONE, UL &SimpleSearch, UL "~f %s | ~s %s" },
   /*
   ** .pp
@@ -2817,6 +2916,7 @@ struct option_t MuttVars[] = {
   ** .pp
   ** .dl
   ** .dt %b  .dd number of mailboxes with new mail *
+  ** .dt %B  .dd the short pathname of the current mailbox
   ** .dt %d  .dd number of deleted messages *
   ** .dt %f  .dd the full pathname of the current mailbox
   ** .dt %F  .dd number of flagged messages *
@@ -2827,7 +2927,7 @@ struct option_t MuttVars[] = {
   ** .dt %m  .dd the number of messages in the mailbox *
   ** .dt %M  .dd the number of messages shown (i.e., which match the current limit) *
   ** .dt %n  .dd number of new messages in the mailbox *
-  ** .dt %o  .dd number of old unread messages
+  ** .dt %o  .dd number of old unread messages *
   ** .dt %p  .dd number of postponed messages *
   ** .dt %P  .dd percentage of the way through the index
   ** .dt %r  .dd modified/read-only/won't-write/attach-message indicator,
@@ -2854,8 +2954,8 @@ struct option_t MuttVars[] = {
   ** .pp
   ** where \fIsequence_char\fP is a character from the table above, and
   ** \fIoptional_string\fP is the string you would like printed if
-  ** \fIstatus_char\fP is nonzero.  \fIoptional_string\fP \fBmay\fP contain
-  ** other sequence as well as normal text, but you may \fBnot\fP nest
+  ** \fIsequence_char\fP is nonzero.  \fIoptional_string\fP \fBmay\fP contain
+  ** other sequences as well as normal text, but you may \fBnot\fP nest
   ** optional strings.
   ** .pp
   ** Here is an example illustrating how to optionally print the number of
@@ -2883,6 +2983,19 @@ struct option_t MuttVars[] = {
   ** Setting this variable causes the ``status bar'' to be displayed on
   ** the first line of the screen rather than near the bottom.
   */
+  { "strict_mime",    DT_BOOL, R_NONE, OPTSTRICTMIME, 1 },
+  /*
+  ** .pp
+  ** When unset, non MIME-compliant messages that doesn't have any
+  ** charset indication in ``Content-Type'' field can be displayed
+  ** (non MIME-compliant messages are often generated by old mailers
+  ** or buggy mailers like MS Outlook Express).
+  ** See also $$assumed_charset.
+  ** .pp
+  ** This option also replaces linear-white-space between encoded-word
+  ** and *text to a single space to prevent the display of MIME-encoded
+  ** ``Subject'' field from being devided into multiple lines.
+  */
   { "strict_threads",  DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPTSTRICTTHREADS, 0 },
   /*
   ** .pp
@@ -2893,6 +3006,13 @@ struct option_t MuttVars[] = {
   ** personal mailbox where you might have several unrelated messages with
   ** the subject ``hi'' which will get grouped together.
   */
+  { "stuff_quoted",    DT_BOOL, R_BOTH, OPTSTUFFQUOTED, 0 },
+  /*
+  ** .pp
+  ** If set, attachments with flowed format will have their quoting ``stuffed'',
+  ** i.e. a space will be inserted between the quote characters and the actual
+  ** text.
+  */
   { "suspend",         DT_BOOL, R_NONE, OPTSUSPEND, 1 },
   /*
   ** .pp
@@ -3015,6 +3135,15 @@ struct option_t MuttVars[] = {
   ** generated unless the user explicitly sets one using the ``$my_hdr''
   ** command.
   */
+#ifdef HAVE_LIBIDN
+  { "use_idn",         DT_BOOL, R_BOTH, OPTUSEIDN, 1},
+  /*
+  ** .pp
+  ** When \fIset\fP, Mutt 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.
+  */
+#endif /* HAVE_LIBIDN */
 #ifdef HAVE_GETADDRINFO
   { "use_ipv6",                DT_BOOL, R_NONE, OPTUSEIPV6, 1},
   /*
@@ -3054,7 +3183,7 @@ struct option_t MuttVars[] = {
   { "weed",            DT_BOOL, R_NONE, OPTWEED, 1 },
   /*
   ** .pp
-  ** When set, mutt will weed headers when when displaying, forwarding,
+  ** When set, mutt will weed headers when displaying, forwarding,
   ** printing, or replying to messages.
   */
   { "wrap_search",     DT_BOOL, R_NONE, OPTWRAPSEARCH, 1 },
@@ -3084,7 +3213,7 @@ struct option_t MuttVars[] = {
   /*
   ** .pp
   ** Controls whether mutt writes out the Bcc header when preparing
-  ** messages to be sent.  Exim users may wish to use this.
+  ** messages to be sent.  Exim users may wish to unset this.
   */
   {"xterm_icon",       DT_STR,   R_BOTH, UL &XtermIcon,  UL "M%?n?AIL&ail?"},
   /*
@@ -3186,6 +3315,7 @@ static int parse_spam_list (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unlist (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_rx_unlist (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 
+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 *);
@@ -3196,6 +3326,7 @@ static int parse_set (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_my_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unmy_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_subscribe (BUFFER *, BUFFER *, unsigned long, BUFFER *);
+static int parse_unsubscribe (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 
 static int parse_alternates (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unalternates (BUFFER *, BUFFER *, unsigned long, BUFFER *);
@@ -3205,11 +3336,12 @@ struct command_t
   char *name;
   int (*func) (BUFFER *, BUFFER *, unsigned long, BUFFER *);
   unsigned long data;
+  unsigned long data1;
 };
 
 struct command_t Commands[] = {
-  { "alternates",      parse_alternates,       UL &Alternates },
-  { "unalternates",    parse_unalternates,     UL &Alternates },
+  { "alternates",      parse_alternates,       0 },
+  { "unalternates",    parse_unalternates,     0 },
 #ifdef USE_SOCKET
   { "account-hook",     mutt_parse_hook,        M_ACCOUNTHOOK },
 #endif
@@ -3236,7 +3368,7 @@ struct command_t Commands[] = {
   { "iconv-hook",      mutt_parse_hook,        M_ICONVHOOK }, 
 #endif
   { "ignore",          parse_ignore,           0 },
-  { "lists",           parse_rx_list,          UL &MailLists },
+  { "lists",           parse_lists,            0 },
   { "macro",           mutt_parse_macro,       0 },
   { "mailboxes",       mutt_parse_mailboxes,   M_MAILBOXES },
   { "unmailboxes",     mutt_parse_mailboxes,   M_UNMAILBOXES },
@@ -3272,6 +3404,6 @@ struct command_t Commands[] = {
   { "unmy_hdr",                parse_unmy_hdr,         0 },
   { "unscore",         mutt_parse_unscore,     0 },
   { "unset",           parse_set,              M_SET_UNSET },
-  { "unsubscribe",     parse_rx_unlist,        UL &SubscribedLists },
+  { "unsubscribe",     parse_unsubscribe,      0 },
   { NULL }
 };