Remove the ispell stuff, it's useless, most editors know how to do this,
[apps/madmutt.git] / init.h
diff --git a/init.h b/init.h
index 46a2cd1..f96845e 100644 (file)
--- a/init.h
+++ b/init.h
@@ -17,7 +17,6 @@
 # include "sort.h"
 #endif
 
-#include "buffy.h"
 #include "mutt.h"
 
 #ifndef _MAKEDOC
@@ -32,7 +31,6 @@
 #define DT_MAGIC        8       /* mailbox type */
 #define DT_SYN          9       /* synonym for another variable */
 #define DT_ADDR         10      /* e-mail address */
-#define DT_SYS          11      /* pre-defined via $madmutt_ */
 
 #define DTYPE(x) ((x) & DT_MASK)
 
 #define R_NONE          0
 #define R_INDEX         (1<<0)
 #define R_PAGER         (1<<1)
+#define R_BOTH          (R_INDEX|R_PAGER)
+
+/* TODO:MC: will go in the the thread module */
 #define R_RESORT        (1<<2)  /* resort the mailbox */
 #define R_RESORT_SUB    (1<<3)  /* resort subthreads */
 #define R_RESORT_INIT   (1<<4)  /* resort from scratch */
 #define R_TREE          (1<<5)  /* redraw the thread tree */
-#define R_BOTH          (R_INDEX|R_PAGER)
 #define R_RESORT_BOTH   (R_RESORT|R_RESORT_SUB)
 
 struct option_t {
@@ -71,10 +71,6 @@ struct option_t {
 
 #endif /* _MAKEDOC */
 
-#ifndef ISPELL
-#define ISPELL "ispell"
-#endif
-
 /* build complete documentation */
 
 #ifdef _MAKEDOC
@@ -137,29 +133,6 @@ struct option_t MuttVars[] = {
    ** check only happens after the \fIfirst\fP edit of the file).  When set
    ** to \fIno\fP, composition will never be aborted.
    */
-  {"alias_file", DT_PATH, R_NONE, UL &AliasFile, "~/.madmuttrc"},
-  /*
-   ** .pp
-   ** The default file in which to save aliases created by the
-   ** ``$create-alias'' function.
-   ** .pp
-   ** \fBNote:\fP Madmutt will not automatically source this file; you must
-   ** explicitly use the ``$source'' command for it to be executed.
-   */
-  {"alias_format", DT_STR, R_NONE, UL &AliasFmt, "%4n %2f %t %-10a   %r"},
-  /*
-   ** .pp
-   ** Specifies the format of the data displayed for the ``alias'' menu. The
-   ** following \fTprintf(3)\fP-style sequences are available:
-   ** .pp
-   ** .dl
-   ** .dt %a .dd alias name
-   ** .dt %f .dd flags - currently, a "d" for an alias marked for deletion
-   ** .dt %n .dd index number
-   ** .dt %r .dd address which alias expands to
-   ** .dt %t .dd character which indicates if the alias is tagged for inclusion
-   ** .de
-   */
   {"allow_8bit", DT_BOOL, R_NONE, OPTALLOW8BIT, "yes" },
   /*
    ** .pp
@@ -204,23 +177,6 @@ struct option_t MuttVars[] = {
    ** If \fIset\fP, Madmutt will prompt you for carbon-copy (Cc) recipients before
    ** editing the body of an outgoing message.
    */
-  {"assumed_charset", DT_STR, R_NONE, UL &AssumedCharset, "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 \fTus-ascii\fP.
-   ** .pp
-   ** For example, Japanese users might prefer this:
-   ** .pp
-   ** \fTset assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"\fP
-   ** .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
   {"nntp_ask_followup_to", DT_BOOL, R_NONE, OPTASKFOLLOWUP, "no" },
   /*
@@ -318,18 +274,6 @@ struct option_t MuttVars[] = {
    ** unset, you must first use the ``tag-prefix'' function (default: "\fT;\fP") to
    ** make the next function apply to all tagged messages.
    */
-  {"beep", DT_BOOL, R_NONE, OPTBEEP, "yes" },
-  /*
-   ** .pp
-   ** When this variable is \fIset\fP, Madmutt will beep when an error occurs.
-   */
-  {"beep_new", DT_BOOL, R_NONE, OPTBEEPNEW, "no" },
-  /*
-   ** .pp
-   ** When this variable is \fIset\fP, Madmutt will beep whenever it prints a message
-   ** notifying you of new mail.  This is independent of the setting of the
-   ** ``$$beep'' variable.
-   */
   {"bounce", DT_QUAD, R_NONE, OPT_BOUNCE, "ask-yes" },
   /*
    ** .pp
@@ -365,11 +309,6 @@ struct option_t MuttVars[] = {
    ** as read when you leaving it.
    */
 #endif
-  {"charset", DT_STR, R_NONE, UL &Charset, "" },
-  /*
-   ** .pp
-   ** Character set your terminal uses to display and enter textual data.
-   */
   {"check_new", DT_BOOL, R_NONE, OPTCHECKNEW, "yes" },
   /*
    ** .pp
@@ -544,39 +483,6 @@ struct option_t MuttVars[] = {
    ** is viewed it is passed as standard input to $$display_filter, and the
    ** filtered message is read from the standard output.
    */
-  {"dotlock_program", DT_PATH, R_NONE, UL &MuttDotlock, "$madmutt_bindir/muttng_dotlock"},
-  /*
-   ** .pp
-   ** Contains the path of the \fTmadmutt_dotlock(1)\fP binary to be used by
-   ** Madmutt.
-   */
-  {"dsn_notify", DT_STR, R_NONE, UL &DsnNotify, ""},
-  /*
-   ** .pp
-   ** \fBNote:\fP you should not enable this unless you are using Sendmail
-   ** 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
-   ** of the following: \fInever\fP, to never request notification,
-   ** \fIfailure\fP, to request notification on transmission failure,
-   ** \fIdelay\fP, to be notified of message delays, \fIsuccess\fP, to be
-   ** notified of successful transmission.
-   ** .pp
-   ** Example: \fTset dsn_notify="failure,delay"\fP
-   */
-  {"dsn_return", DT_STR, R_NONE, UL &DsnReturn, ""},
-  /*
-   ** .pp
-   ** \fBNote:\fP you should not enable this unless you are using Sendmail
-   ** 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
-   ** message header, or \fIfull\fP to return the full message.
-   ** .pp
-   ** Example: \fTset dsn_return=hdrs\fP
-   */
   {"duplicate_threads", DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPTDUPTHREADS, "yes" },
   /*
    ** .pp
@@ -610,13 +516,6 @@ struct option_t MuttVars[] = {
    ** Note: if $$edit_headers had to be turned on by force because
    ** $$strict_mailto is \fIunset\fP, this option has no effect.
    */
-  {"editor", DT_PATH, R_NONE, UL &Editor, "" },
-  /*
-   ** .pp
-   ** This variable specifies which editor is used by Madmutt.
-   ** It defaults to the value of the \fT$$$VISUAL\fP, or \fT$$$EDITOR\fP, environment
-   ** variable, or to the string "\fTvi\fP" if neither of those are set.
-   */
   {"encode_from", DT_BOOL, R_NONE, OPTENCODEFROM, "no" },
   /*
    ** .pp
@@ -632,25 +531,6 @@ struct option_t MuttVars[] = {
    ** you must take care of space-stuffing <tt/From / lines (with a trailing
    ** space) yourself.
    */
-  {"envelope_from", DT_SYN, R_NONE, UL "use_envelope_from", 0 },
-  {"use_envelope_from", DT_BOOL, R_NONE, OPTENVFROM, "no" },
-  /*
-   ** .pp
-   ** When \fIset\fP, Madmutt will use ``$$envelope_from_address'' as the
-   ** \fIenvelope\fP sender if that is set, otherwise it will attempt to
-   ** derive it from the "From:" header.
-   **
-   ** .pp
-   ** \fBNote:\fP This information is passed
-   ** to sendmail command using the "-f" command line switch and
-   ** passed to the SMTP server for libESMTP (if support is compiled in).
-   */
-  {"envelope_from_address", DT_ADDR, R_NONE, UL &EnvFrom, "" },
-  /*
-  ** .pp
-  ** Manually sets the \fIenvelope\fP sender for outgoing messages.
-  ** This value is ignored if ``$$use_envelope_from'' is unset.
-  */
   {"fast_reply", DT_BOOL, R_NONE, OPTFASTREPLY, "no" },
   /*
    ** .pp
@@ -675,20 +555,6 @@ struct option_t MuttVars[] = {
    ** signed.
    ** (PGP only)
    */
-  {"file_charset", DT_STR, R_NONE, UL &FileCharset, "" },
-  /*
-   ** .pp
-   ** This variable is a colon-separated list of character encoding
-   ** schemes for text file attatchments.
-   ** If \fIunset\fP, $$charset value will be used instead.
-   ** For example, the following configuration would work for Japanese
-   ** text handling:
-   ** .pp
-   ** \fTset file_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"\fP
-   ** .pp
-   ** Note: ``\fTiso-2022-*\fP'' must be put at the head of the value as shown above
-   ** if included.
-   */
   {"folder", DT_PATH, R_NONE, UL &Maildir, "~/Mail"},
   /*
    ** .pp
@@ -815,21 +681,6 @@ struct option_t MuttVars[] = {
    ** .pp
    ** Defaults to the contents of the environment variable \fT$$$EMAIL\fP.
    */
-  {"gecos_mask", DT_RX, R_NONE, UL &GecosMask, "^[^,]*"},
-  /*
-   ** .pp
-   ** A regular expression used by Madmutt to parse the GECOS field of a password
-   ** entry when expanding the alias.  By default the regular expression is set
-   ** to ``\fT^[^,]*\fP'' which will return the string up to the first ``\fT,\fP'' encountered.
-   ** If the GECOS field contains a string like "lastname, firstname" then you
-   ** should do: \fTset gecos_mask=".*"\fP.
-   ** .pp
-   ** This can be useful if you see the following behavior: you address a e-mail
-   ** to user ID stevef whose full name is Steve Franklin.  If Madmutt 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 Madmutt will expand
-   ** ``Franklin'' to ``Franklin, Steve''.
-   */
 #ifdef USE_NNTP
   {"nntp_group_index_format", DT_STR, R_BOTH, UL &GroupFormat, "%4C %M%N %5s  %-45.45f %d"},
   /*
@@ -935,15 +786,6 @@ struct option_t MuttVars[] = {
    ** This variable controls whether or not a \fTMail-Followup-To:\fP header field is
    ** honored when group-replying to a message.
    */
-  {"hostname", DT_STR, R_NONE, UL &Fqdn, "" },
-  /*
-   ** .pp
-   ** Specifies the hostname to use after the ``\fT@\fP'' in local e-mail
-   ** addresses and during generation of \fTMessage-ID:\fP headers.
-   ** .pp
-   ** Please be sure to really know what you are doing when changing this variable
-   ** to configure a custom domain part of Message-IDs.
-   */
   {"ignore_list_reply_to", DT_BOOL, R_NONE, OPTIGNORELISTREPLYTO, "no" },
   /*
    ** .pp
@@ -1210,11 +1052,6 @@ struct option_t MuttVars[] = {
    ** Example: \fTset inews="/usr/local/bin/inews -hS"\fP
    */
 #endif
-  {"ispell", DT_PATH, R_NONE, UL &Ispell, ISPELL},
-  /*
-   ** .pp
-   ** How to invoke ispell (GNU's spell-checking software).
-   */
   {"keep_flagged", DT_BOOL, R_NONE, OPTKEEPFLAGGED, "no" },
   /*
    ** .pp
@@ -1250,30 +1087,6 @@ struct option_t MuttVars[] = {
    ** 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
-   ** This variable configures how often (in seconds) Madmutt should look for
-   ** new mail.
-   ** .pp
-   ** \fBNote:\fP This does not apply to IMAP mailboxes, see $$imap_mail_check.
-   */
-  {"mailcap_path", DT_STR, R_NONE, UL &MailcapPath, "" },
-  /*
-   ** .pp
-   ** This variable specifies which files to consult when attempting to
-   ** display MIME bodies not directly supported by Madmutt.
-   */
-  {"mailcap_sanitize", DT_BOOL, R_NONE, OPTMAILCAPSANITIZE, "yes" },
-  /*
-   ** .pp
-   ** If \fIset\fP, Madmutt will restrict possible characters in mailcap \fT%\fP expandos
-   ** to a well-defined set of safe characters.  This is the safe setting,
-   ** but we are not sure it doesn't break some more advanced MIME stuff.
-   ** .pp
-   ** \fBDON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE
-   ** DOING!\fP
-   */
 #ifdef USE_HCACHE
   {"header_cache", DT_PATH, R_NONE, UL &HeaderCache, "" },
   /*
@@ -1366,48 +1179,6 @@ struct option_t MuttVars[] = {
    ** This specifies the folder into which read mail in your ``$$spoolfile''
    ** folder will be appended.
    */
-  {"madmutt_folder_path", DT_SYS, R_NONE, 0, "" },
-  /*
-   ** .pp
-   ** \fIThis is a read-only system property and, at runtime,
-   ** specifies the full path or URI of the folder currently
-   ** open (if any).\fP
-   */
-  {"madmutt_folder_name", DT_SYS, R_NONE, 0, "" },
-  /*
-   ** .pp
-   ** \fIThis is a read-only system property and, at runtime,
-   ** specifies the actual name of the folder as far as it could
-   ** be detected.\fP
-   ** .pp
-   ** For detection, $$$folder is first taken into account
-   ** and simply stripped to form the result when a match is found. For
-   ** example, with $$$folder being \fTimap://host\fP and the folder is
-   ** \fTimap://host/INBOX/foo\fP, $$$madmutt_folder_name will be just
-   ** \fTINBOX/foo\fP.)
-   ** .pp
-   ** Second, if the initial portion of a name is not $$$folder,
-   ** the result will be everything after the last ``/''.
-   ** .pp
-   ** Third and last, the result will be just the name if neither
-   ** $$$folder nor a ``/'' were found in the name.
-   */
-  {"madmutt_pwd", DT_SYS, R_NONE, 0, "" },
-  /*
-   ** .pp
-   ** \fIThis is a read-only system property and, at runtime,
-   ** specifies the current working directory of the madmutt
-   ** binary.\fP
-   */
-  {"operating_system", DT_STR, R_NONE, UL &OperatingSystem, "" },
-  /*
-   ** .pp
-   ** This specifies the operating system name for the \fTUser-Agent:\fP header field. If
-   ** this is \fIunset\fP, it will be set to the operating system name that \fTuname(2)\fP
-   ** returns. If \fTuname(2)\fP fails, ``UNIX'' will be used.
-   ** .pp
-   ** It may, for example, look as: ``\fTMadmutt 1.5.9i (Linux)\fP''.
-   */
   {"sidebar_boundary", DT_STR, R_BOTH, UL &SidebarBoundary, "." },
   /*
    ** .pp
@@ -2376,7 +2147,6 @@ struct option_t MuttVars[] = {
    ** (S/MIME only)
    */
 #if defined(USE_LIBESMTP)
-  {"smtp_auth_username", DT_SYN, R_NONE, UL "smtp_user", 0},
   {"smtp_user", DT_STR, R_NONE, UL &SmtpAuthUser, "" },
   /*
    ** .pp
@@ -2386,7 +2156,6 @@ struct option_t MuttVars[] = {
    ** Defines the username to use with SMTP AUTH.  Setting this variable will
    ** cause Madmutt to attempt to use SMTP AUTH when sending.
    */
-  {"smtp_auth_password", DT_SYN, R_NONE, UL "smtp_pass", 0},
   {"smtp_pass", DT_STR, R_NONE, UL &SmtpAuthPass, "" },
   /*
    ** .pp
@@ -2401,7 +2170,6 @@ 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_SYN, R_NONE, UL "envelope_from_address", 0 },
   {"smtp_host", DT_STR, R_NONE, UL &SmtpHost, "" },
   /*
    ** .pp
@@ -2765,14 +2533,6 @@ struct option_t MuttVars[] = {
    ** with the query string the user types.  See ``$query'' for more
    ** information.
    */
-  {"quit", DT_QUAD, R_NONE, OPT_QUIT, "yes" },
-  /*
-   ** .pp
-   ** This variable controls whether ``quit'' and ``exit'' actually quit
-   ** from Madmutt.  If it set to \fIyes\fP, they do quit, if it is set to \fIno\fP, they
-   ** have no effect, and if it is set to \fIask-yes\fP or \fIask-no\fP, you are
-   ** prompted for confirmation when you try to quit.
-   */
   {"quote_empty", DT_BOOL, R_NONE, OPTQUOTEEMPTY, "yes" },
   /*
    ** .pp
@@ -2979,47 +2739,6 @@ struct option_t MuttVars[] = {
    ** Madmutt scores are always greater than or equal to zero, the default setting
    ** of this variable will never mark a message read.
    */
-  {"send_charset", DT_STR, R_NONE, UL &SendCharset, "us-ascii:iso-8859-1:utf-8"},
-  /*
-   ** .pp
-   ** A list of character sets for outgoing messages. Madmutt will use the
-   ** first character set into which the text can be converted exactly.
-   ** If your ``$$charset'' is not \fTiso-8859-1\fP and recipients may not
-   ** understand \fTUTF-8\fP, it is advisable to include in the list an
-   ** appropriate widely used standard character set (such as
-   ** \fTiso-8859-2\fP, \fTkoi8-r\fP or \fTiso-2022-jp\fP) either
-   ** instead of or after \fTiso-8859-1\fP.
-   */
-  {"sendmail", DT_PATH, R_NONE, UL &Sendmail, SENDMAIL " -oem -oi"},
-  /*
-   ** .pp
-   ** Specifies the program and arguments used to deliver mail sent by Madmutt.
-   ** Madmutt 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
-   ** Madmutt 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, "" },
-  /*
-   ** .pp
-   ** Command to use when spawning a subshell.  By default, the user's login
-   ** shell from \fT/etc/passwd\fP is used.
-   */
 #ifdef USE_NNTP
   {"nntp_save_unsubscribed", DT_BOOL, R_NONE, OPTSAVEUNSUB, "no" },
   /*
@@ -3209,15 +2928,6 @@ struct option_t MuttVars[] = {
    ** Madmutt will attach the message whether or not this is the case,
    ** as long as the non-``$$reply_regexp'' parts of both messages are identical.
    */
-  {"spam_separator", DT_STR, R_NONE, UL &SpamSep, ","},
-  /*
-   ** .pp
-   ** ``$spam_separator'' controls what happens when multiple spam headers
-   ** are matched: if \fIunset\fP, each successive header will overwrite any
-   ** previous matches value for the spam label. If \fIset\fP, each successive
-   ** match will append to the previous, using ``$spam_separator'' as a
-   ** separator.
-   */
   {"spoolfile", DT_PATH, R_NONE, UL &Spoolfile, "" },
   /*
    ** .pp
@@ -3411,14 +3121,6 @@ struct option_t MuttVars[] = {
    ** checking for new mail.  A value of zero or less will cause Madmutt
    ** to never time out.
    */
-  {"tmpdir", DT_PATH, R_NONE, UL &Tempdir, "" },
-  /*
-   ** .pp
-   ** This variable allows you to specify where Madmutt will place its
-   ** temporary files needed for displaying and composing messages.  If
-   ** this variable is not set, the environment variable \fT$$$TMPDIR\fP is
-   ** used.  If \fT$$$TMPDIR\fP is not set then "\fT/tmp\fP" is used.
-   */
   {"to_chars", DT_STR, R_BOTH, UL &Tochars, " +TCFL"},
   /*
    ** .pp
@@ -3461,25 +3163,6 @@ struct option_t MuttVars[] = {
    ** This sets the umask that will be used by Madmutt when creating all
    ** kinds of files. If \fIunset\fP, the default value is \fT077\fP.
    */
-  {"use_8bitmime", DT_BOOL, R_NONE, OPTUSE8BITMIME, "no" },
-  /*
-   ** .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 in connection with the SMTP support via libESMTP.
-   ** Otherwise you may not be able to send mail.
-   ** .pp
-   ** When \fIset\fP, Madmutt 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, "yes" },
-  /*
-   ** .pp
-   ** When \fIset\fP, Madmutt will qualify all local addresses (ones without the
-   ** @host portion) with the value of ``$$hostname''.  If \fIunset\fP, no
-   ** addresses will be qualified.
-   */
   {"use_from", DT_BOOL, R_NONE, OPTUSEFROM, "yes" },
   /*
    ** .pp
@@ -3615,8 +3298,6 @@ struct option_t MuttVars[] = {
    */
 #endif
   /*--*/
-  {"strict_mime", DT_BOOL, R_NONE, OPTSTRICTMIME, "no" },
-  {"rfc2047_parameters", DT_BOOL, R_NONE, OPTRFC2047PARAMS, "yes"},
   { NULL, -1, R_NONE, -1, NULL }
 };
 
@@ -3682,12 +3363,9 @@ const struct mapping_t SortKeyMethods[] = {
 /* functions used to parse commands in a rc file */
 
 static int parse_list (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-static int parse_spam_list (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unlist (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_attachments (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 static int parse_unattachments (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 *);
 static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
@@ -3696,11 +3374,6 @@ static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *);
 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 *);
 
 struct command_t {
     const char *name;
@@ -3709,22 +3382,16 @@ struct command_t {
 };
 
 struct command_t Commands[] = {
-    {"mailboxes",           buffy_parse_mailboxes, M_MAILBOXES},
-    {"unmailboxes",         buffy_parse_mailboxes, M_UNMAILBOXES},
     {"bind",                mutt_parse_bind,       0},
     {"color",               mutt_parse_color,      0},
     {"exec",                mutt_parse_exec,       0},
     {"account-hook",        mutt_parse_hook,       M_ACCOUNTHOOK},
     {"append-hook",         mutt_parse_hook,       M_APPENDHOOK},
-    {"charset-hook",        mutt_parse_hook,       M_CHARSETHOOK},
     {"close-hook",          mutt_parse_hook,       M_CLOSEHOOK},
     {"crypt-hook",          mutt_parse_hook,       M_CRYPTHOOK},
     {"fcc-hook",            mutt_parse_hook,       M_FCCHOOK},
     {"fcc-save-hook",       mutt_parse_hook,       M_FCCHOOK|M_SAVEHOOK},
     {"folder-hook",         mutt_parse_hook,       M_FOLDERHOOK},
-#ifdef HAVE_ICONV
-    {"iconv-hook",          mutt_parse_hook,       M_ICONVHOOK},
-#endif
     {"mbox-hook",           mutt_parse_hook,       M_MBOXHOOK},
     {"message-hook",        mutt_parse_hook,       M_MESSAGEHOOK},
     {"open-hook",           mutt_parse_hook,       M_OPENHOOK},
@@ -3742,33 +3409,19 @@ struct command_t Commands[] = {
     {"unmono",              mutt_parse_unmono,     0},
     {"unscore",             mutt_parse_unscore,    0},
     {"alias",               parse_alias,           0},
-    {"alternates",          parse_alternates,      0},
     {"attachments",         parse_attachments,     0 },
     {"ignore",              parse_ignore,          0},
-    {"alternative_order",   parse_list,            UL &AlternativeOrderList},
-    {"auto_view",           parse_list,            UL &AutoViewList},
     {"hdr_order",           parse_list,            UL &HeaderOrderList},
-    {"mime_lookup",         parse_list,            UL &MimeLookupList},
-    {"lists",               parse_lists,           0},
     {"my_hdr",              parse_my_hdr,          0},
     {"reset",               parse_set,             M_SET_RESET},
     {"set",                 parse_set,             0},
     {"toggle",              parse_set,             M_SET_INV},
     {"unset",               parse_set,             M_SET_UNSET},
     {"source",              parse_source,          0},
-    {"nospam",              parse_spam_list,       M_NOSPAM},
-    {"spam",                parse_spam_list,       M_SPAM},
-    {"subscribe",           parse_subscribe,       0},
     {"unalias",             parse_unalias,         0},
-    {"unalternates",        parse_unalternates,    0},
     {"unattachments",       parse_unattachments,   0},
     {"unignore",            parse_unignore,        0},
-    {"unlists",             parse_unlists,         0},
-    {"unalternative_order", parse_unlist,          UL &AlternativeOrderList},
-    {"unauto_view",         parse_unlist,          UL &AutoViewList},
     {"unhdr_order",         parse_unlist,          UL &HeaderOrderList},
-    {"unmime_lookup",       parse_unlist,          UL &MimeLookupList},
     {"unmy_hdr",            parse_unmy_hdr,        0},
-    {"unsubscribe",         parse_unsubscribe,     0},
     {NULL, NULL, 0}
 };