Remove lots of useless stupid, and code greedy options.
[apps/madmutt.git] / mutt.h
diff --git a/mutt.h b/mutt.h
index 39bd444..bc599d2 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -13,6 +13,7 @@
 
 #include <lib-lib/lib-lib.h>
 #include <lib-mime/mime.h>
+#include <lib-lua/lib-lua.h>
 
 #define MUTT_VERSION (VERSION)
 
@@ -30,34 +31,20 @@ typedef struct {
   int op;                       /* function op */
 } event_t;
 
-/* flags for mutt_FormatString() */
-typedef enum {
-  M_FORMAT_FORCESUBJ = (1 << 0),        /* print the subject even if unchanged */
-  M_FORMAT_TREE = (1 << 1),     /* draw the thread tree */
-  M_FORMAT_MAKEPRINT = (1 << 2),        /* make sure that all chars are printable */
-  M_FORMAT_OPTIONAL = (1 << 3),
-  M_FORMAT_STAT_FILE = (1 << 4),        /* used by mutt_attach_fmt */
-  M_FORMAT_ARROWCURSOR = (1 << 5),      /* reserve space for arrow_cursor */
-  M_FORMAT_INDEX = (1 << 6)     /* this is a main index entry */
-} format_flag;
-
 /* types for mutt_add_hook() */
-#define M_FOLDERHOOK   1
+#define M_FOLDERHOOK   (1<<0)
 #define M_MBOXHOOK     (1<<1)
 #define M_SENDHOOK     (1<<2)
 #define M_FCCHOOK      (1<<3)
 #define M_SAVEHOOK     (1<<4)
-#define M_CHARSETHOOK  (1<<5)
-#define M_ICONVHOOK    (1<<6)
-#define M_MESSAGEHOOK  (1<<7)
-#define M_CRYPTHOOK    (1<<8)
-#define M_ACCOUNTHOOK  (1<<9)
-#define M_REPLYHOOK    (1<<10)
-#define M_SEND2HOOK     (1<<11)
-
-#define M_OPENHOOK     (1<<12)
-#define M_APPENDHOOK   (1<<13)
-#define M_CLOSEHOOK    (1<<14)
+#define M_MESSAGEHOOK  (1<<5)
+#define M_CRYPTHOOK    (1<<6)
+#define M_REPLYHOOK    (1<<7)
+#define M_SEND2HOOK     (1<<8)
+
+#define M_OPENHOOK     (1<<9)
+#define M_APPENDHOOK   (1<<10)
+#define M_CLOSEHOOK    (1<<11)
 
 /* tree characters for linearize_tree and print_enriched_string */
 #define M_TREE_LLCORNER                1
@@ -155,23 +142,12 @@ enum {
 
   /* options for socket code */
   M_NEW_SOCKET,
-#ifdef USE_SSL
-  M_NEW_SSL_SOCKET,
-#endif
 
   /* Options for mutt_save_attachment */
   M_SAVE_APPEND,
   M_SAVE_OVERWRITE
 };
 
-/* possible arguments to set_quadoption() */
-enum {
-  M_NO,
-  M_YES,
-  M_ASKNO,
-  M_ASKYES
-};
-
 /* quad-option vars */
 enum {
   OPT_ABORT,
@@ -186,19 +162,13 @@ enum {
   OPT_MIMEFWD,
   OPT_MIMEFWDREST,
   OPT_MOVE,
-  OPT_PGPMIMEAUTO,              /* ask to revert to PGP/MIME when inline fails */
   OPT_POPDELETE,
   OPT_POPRECONNECT,
   OPT_POSTPONE,
   OPT_PRINT,
-  OPT_QUIT,
   OPT_REPLYTO,
   OPT_RECALL,
-#if defined(USE_SSL) || defined(USE_GNUTLS)
-  OPT_SSLSTARTTLS,
-#endif
   OPT_SUBJECT,
-  OPT_VERIFYSIG,                /* verify PGP signatures */
   OPT_LISTREPLY,
 #ifdef USE_NNTP
   OPT_TOMODERATED,
@@ -218,48 +188,34 @@ enum {
 #define SENDFORWARD    (1<<3)
 #define SENDPOSTPONED  (1<<4)
 #define SENDBATCH      (1<<5)
-#define SENDKEY                (1<<6)
-#define SENDRESEND     (1<<7)
-#define SENDNEWS       (1<<8)
+#define SENDRESEND     (1<<6)
+#define SENDNEWS       (1<<7)
 
-/* flags to _mutt_select_file() */
+/* flags to mutt_select_file() */
 #define M_SEL_BUFFY    (1<<0)
 #define M_SEL_MULTI    (1<<1)
 #define M_SEL_FOLDER   (1<<2)
 
-/* flags for parse_spam_list */
-#define M_SPAM          1
-#define M_NOSPAM        2
-
 /* boolean vars */
 enum {
   OPTALLOW8BIT,
-  OPTALLOWANSI,
-  OPTARROWCURSOR,
-  OPTASCIICHARS,
   OPTASKBCC,
   OPTASKCC,
   OPTASKFOLLOWUP,
-  OPTASKXCOMMENTTO,
   OPTATTACHSPLIT,
   OPTAUTOEDIT,
   OPTAUTOTAG,
-  OPTBEEP,
-  OPTBEEPNEW,
   OPTBOUNCEDELIVERED,
-  OPTBRAILLEFRIENDLY,
   OPTCHECKNEW,
   OPTCOLLAPSEUNREAD,
   OPTCONFIRMAPPEND,
   OPTCONFIRMCREATE,
-  OPTCOUNTATTACH,
   OPTDELETEUNTAG,
   OPTDELSP,
   OPTDIGESTCOLLAPSE,
   OPTDUPTHREADS,
   OPTEDITHDRS,
   OPTENCODEFROM,
-  OPTENVFROM,
   OPTFASTREPLY,
   OPTFCCATTACH,
   OPTFCCCLEAR,
@@ -268,15 +224,10 @@ enum {
   OPTFORCENAME,
   OPTFORWDECODE,
   OPTFORWQUOTE,
-#ifdef USE_HCACHE
-  OPTHCACHEVERIFY,
 #ifdef HAVE_QDBM
   OPTHCACHECOMPRESS,
-#endif /* HAVE_QDBM */
 #endif
-  OPTHDRS,
   OPTHEADER,
-  OPTHELP,
   OPTHIDDENHOST,
   OPTHIDELIMITED,
   OPTHIDEMISSING,
@@ -287,81 +238,44 @@ enum {
   OPTIMAPCHECKSUBSCRIBED,
   OPTIMAPLSUB,
   OPTIMAPPASSIVE,
-  OPTIMAPPEEK,
   OPTIMAPSERVERNOISE,
-#if defined(USE_SSL) || defined(USE_GNUTLS)
-# ifndef USE_GNUTLS
-  OPTSSLSYSTEMCERTS,
-  OPTSSLV2,
-# endif /* !USE_GNUTLS */
-  OPTSSLV3,
-  OPTTLSV1,
-  OPTSSLFORCETLS,
-#endif /* USE_SSL || USE_GNUTLS */
   OPTIMPLICITAUTOVIEW,
-  OPTINCLUDEONLYFIRST,
   OPTKEEPFLAGGED,
-  OPTMAILCAPSANITIZE,
   OPTMAILDIRTRASH,
   OPTMARKERS,
   OPTMARKOLD,
   OPTMBOXPANE,
-  OPTMENUSCROLL,                /* scroll menu instead of implicit next-page */
-  OPTMENUMOVEOFF,
-  OPTMETAKEY,                   /* interpret ALT-x as ESC-x */
   OPTMETOO,
   OPTMHPURGE,
   OPTMIMEFORWDECODE,
-#ifdef USE_NNTP
-  OPTMIMESUBJECT,               /* encode subject line with RFC2047 */
-#endif
   OPTNARROWTREE,
   OPTPAGERSTOP,
   OPTPIPEDECODE,
   OPTPIPESPLIT,
-  OPTPOPAUTHTRYALL,
   OPTPOPLAST,
   OPTPRINTDECODE,
   OPTPRINTSPLIT,
   OPTPROMPTAFTER,
   OPTQUOTEEMPTY,
   OPTQUOTEQUOTED,
-  OPTREADONLY,
-  OPTREPLYSELF,
   OPTRESOLVE,
   OPTREVALIAS,
   OPTREVNAME,
   OPTREVREAL,
-  OPTRFC2047PARAMS,
-  OPTSAVEADDRESS,
-  OPTSAVEEMPTY,
-  OPTSAVENAME,
-  OPTSCORE,
   OPTSIGDASHES,
-  OPTSIGONTOP,
   OPTSORTRE,
-  OPTSPAMSEP,
-  OPTSTATUSONTOP,
   OPTSTRICTMAILTO,
-  OPTSTRICTMIME,
   OPTSTRICTTHREADS,
   OPTSTRIPWAS,
   OPTSTUFFQUOTED,
-  OPTSUSPEND,
   OPTTEXTFLOWED,
   OPTTHOROUGHSRC,
   OPTTHREADRECEIVED,
   OPTTILDE,
   OPTUNCOLLAPSEJUMP,
-  OPTUSE8BITMIME,
-  OPTUSEDOMAIN,
   OPTUSEFROM,
-  OPTUSEGPGAGENT,
 #ifdef HAVE_LIBIDN
   OPTUSEIDN,
-#endif
-#ifdef HAVE_GETADDRINFO
-  OPTUSEIPV6,
 #endif
   OPTWAITKEY,
   OPTWEED,
@@ -372,43 +286,18 @@ enum {
   OPTXMAILTO,                   /* 1 if $edit_header is forcebly set */
   OPTXTERMSETTITLES,
 
-  OPTCRYPTUSEGPGME,
-
   /* PGP options */
 
-  OPTCRYPTAUTOSIGN,
-  OPTCRYPTAUTOENCRYPT,
-  OPTCRYPTAUTOPGP,
-  OPTCRYPTAUTOSMIME,
-  OPTCRYPTREPLYENCRYPT,
-  OPTCRYPTREPLYSIGN,
-  OPTCRYPTREPLYSIGNENCRYPTED,
-  OPTCRYPTTIMESTAMP,
-  OPTSMIMEISDEFAULT,
-  OPTASKCERTLABEL,
-  OPTSDEFAULTDECRYPTKEY,
-  OPTPGPIGNORESUB,
-  OPTPGPCHECKEXIT,
-  OPTPGPLONGIDS,
-  OPTPGPAUTODEC,
-#if 0
-  OPTPGPENCRYPTSELF,
-#endif
   OPTPGPRETAINABLESIG,
-  OPTPGPSTRICTENC,
   OPTFORWDECRYPT,
   OPTPGPSHOWUNUSABLE,
-  OPTPGPAUTOINLINE,
-  OPTPGPREPLYINLINE,
 
   /* news options */
 
 #ifdef USE_NNTP
   OPTSHOWNEWNEWS,
   OPTSHOWONLYUNREAD,
-  OPTSAVEUNSUB,
   OPTLOADDESC,
-  OPTXCOMMENTTO,
 #endif                          /* USE_NNTP */
 
   /* pseudo options */
@@ -438,42 +327,26 @@ enum {
   OPTMENUCALLER,                /* (pseudo) tell menu to give caller a take */
   OPTREDRAWTREE,                /* (pseudo) redraw the thread tree */
   OPTPGPCHECKTRUST,             /* (pseudo) used by pgp_select_key () */
-  OPTDONTHANDLEPGPKEYS,         /* (pseudo) used to extract PGP keys */
   OPTUNBUFFEREDINPUT,           /* (pseudo) don't use key buffer */
 
 #ifdef USE_NNTP
   OPTNEWS,                      /* (pseudo) used to change reader mode */
   OPTNEWSSEND,                  /* (pseudo) used to change behavior when posting */
-  OPTNEWSCACHE,                 /* (pseudo) used to indicate if news cache exist */
 #endif
   OPTSHORTENHIERARCHY,          /* set when to shorten "hierarchies" in the sidebar */
   OPTSIDEBARNEWMAILONLY,
   OPTMAX
 };
 
-#define mutt_bit_alloc(n) p_new(char, (n + 7) / 8)
-#define mutt_bit_set(v,n) v[n/8] |= (1 << (n % 8))
-#define mutt_bit_unset(v,n) v[n/8] &= ~(1 << (n % 8))
-#define mutt_bit_toggle(v,n) v[n/8] ^= (1 << (n % 8))
-#define mutt_bit_isset(v,n) (v[n/8] & (1 << (n % 8)))
+#define mutt_bit_set(v,n)    (v[n/8] |=  (1 << (n % 8)))
+#define mutt_bit_unset(v,n)  (v[n/8] &= ~(1 << (n % 8)))
+#define mutt_bit_toggle(v,n) (v[n/8] ^=  (1 << (n % 8)))
+#define mutt_bit_isset(v,n)  (v[n/8] &   (1 << (n % 8)))
 
-#define set_option(x) mutt_bit_set(Options,x)
-#define unset_option(x) mutt_bit_unset(Options,x)
+#define set_option(x)    mutt_bit_set(Options,x)
+#define unset_option(x)  mutt_bit_unset(Options,x)
 #define toggle_option(x) mutt_bit_toggle(Options,x)
-#define option(x) mutt_bit_isset(Options,x)
-
-typedef struct spam_list_t {
-  rx_t *rx;
-  int nmatch;
-  char *template;
-  struct spam_list_t *next;
-} SPAM_LIST;
-
-
-#define mutt_new_spam_list() p_new(SPAM_LIST, 1)
-void mutt_free_spam_list (SPAM_LIST **);
-
-int mutt_matches_ignore (const char *, string_list_t *);
+#define option(x)        mutt_bit_isset(Options,x)
 
 void mutt_init (int, string_list_t *);
 
@@ -494,26 +367,8 @@ typedef struct thread {
   HEADER *sort_key;
 } THREAD;
 
-
-/* flag to mutt_pattern_comp() */
-#define M_FULL_MSG      (1<<0)       /* enable body and header matching */
-
-typedef enum {
-  M_MATCH_FULL_ADDRESS = 1
-} pattern_exec_flag;
-
-typedef struct pattern_t {
-  short op;
-  unsigned int not : 1;
-  unsigned int alladdr : 1;
-  unsigned int stringmatch : 1;
-  int min;
-  int max;
-  struct pattern_t *next;
-  struct pattern_t *child;      /* arguments to logical op */
-  char* str;
-  regex_t *rx;
-} pattern_t;
+typedef struct compress_info compress_info;
+typedef struct pattern_t pattern_t;
 
 typedef struct {
   char *path;
@@ -527,9 +382,9 @@ typedef struct {
   HEADER **hdrs;
   HEADER *last_tag;             /* last tagged msg. used to link threads */
   THREAD *tree;                 /* top of thread tree */
-  HASH *id_hash;                /* hash table by msg id */
-  HASH *subj_hash;              /* hash table by subject */
-  HASH *thread_hash;            /* hash table for threading */
+  hash_t *id_hash;                /* hash table by msg id */
+  hash_t *subj_hash;              /* hash table by subject */
+  hash_t *thread_hash;            /* hash table for threading */
   int *v2r;                     /* mapping from virtual to real msgno */
   int hdrmax;                   /* number of pointers in hdrs */
   int msgcount;                 /* number of messages in the mailbox */
@@ -545,7 +400,7 @@ typedef struct {
 
   short magic;                  /* mailbox type */
 
-  void *compressinfo;           /* compressed mbox module private data */
+  compress_info *cinfo;         /* compressed mbox module private data */
   char *realpath;               /* path to compressed mailbox */
 
   unsigned int locked:1;        /* is the mailbox locked? */