Rocco Rutte:
[apps/madmutt.git] / mutt.h
diff --git a/mutt.h b/mutt.h
index 467ea42..0eb6139 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 1996-2002 Michael R. Elkins <me@mutt.org>
+ * Copyright (C) 2004 g10 Code GmbH
  * 
  *     This program is free software; you can redistribute it and/or modify
  *     it under the terms of the GNU General Public License as published by
 #define  M_CLEAR   (1<<5) /* clear input if printable character is pressed */
 #define  M_COMMAND (1<<6) /* do command completion */
 #define  M_PATTERN (1<<7) /* pattern mode - only used for history classes */
+#define  M_LASTFOLDER (1<<8) /* last-folder mode - hack hack hack */
 
 /* flags for mutt_get_token() */
 #define M_TOKEN_EQUAL          1       /* treat '=' as a special */
@@ -160,6 +162,8 @@ typedef enum
 #define M_CRYPTHOOK    (1<<8)
 #define M_ACCOUNTHOOK  (1<<9)
 #define M_REPLYHOOK    (1<<10)
+#define M_SEND2HOOK     (1<<11)
+
 #ifdef USE_COMPRESSED
 #define M_OPENHOOK     (1<<12)
 #define M_APPENDHOOK   (1<<13)
@@ -214,6 +218,7 @@ enum
   M_LIMIT,
   M_EXPIRED,
   M_SUPERSEDED,
+  M_REALNAME,
 
   /* actions for mutt_pattern_comp/mutt_pattern_exec */
   M_AND,
@@ -226,9 +231,11 @@ enum
   M_DATE,
   M_DATE_RECEIVED,
   M_DUPLICATED,
+  M_UNREFERENCED,
   M_ID,
   M_BODY,
   M_HEADER,
+  M_HORMEL,
   M_WHOLE_MSG,
   M_SENDER,
   M_MESSAGE,
@@ -291,7 +298,7 @@ enum
   OPT_MIMEFWD,
   OPT_MIMEFWDREST,
   OPT_MOVE,
-  OPT_PGPTRADITIONAL, /* create old-style PGP messages */
+  OPT_PGPMIMEAUTO,     /* ask to revert to PGP/MIME when inline fails */
 #ifdef USE_POP
   OPT_POPDELETE,
   OPT_POPRECONNECT,
@@ -335,6 +342,9 @@ enum
 #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
@@ -379,6 +389,7 @@ enum
   OPTHIDDENHOST,
   OPTHIDELIMITED,
   OPTHIDEMISSING,
+  OPTHIDETHREADSUBJECT,
   OPTHIDETOPLIMITED,
   OPTHIDETOPMISSING,
   OPTIGNORELISTREPLYTO,
@@ -402,6 +413,7 @@ enum
 # endif
 #endif
   OPTIMPLICITAUTOVIEW,
+  OPTINCLUDEONLYFIRST,
   OPTKEEPFLAGGED,
   OPTMAILCAPSANITIZE,
   OPTMAILDIRTRASH,
@@ -443,8 +455,11 @@ enum
   OPTSIGDASHES,
   OPTSIGONTOP,
   OPTSORTRE,
+  OPTSPAMSEP,
   OPTSTATUSONTOP,
+  OPTSTRICTMIME,
   OPTSTRICTTHREADS,
+  OPTSTUFFQUOTED,
   OPTSUSPEND,
   OPTTEXTFLOWED,
   OPTTHOROUGHSRC,
@@ -455,6 +470,9 @@ enum
   OPTUSEDOMAIN,
   OPTUSEFROM,
   OPTUSEGPGAGENT,
+#ifdef HAVE_LIBIDN
+  OPTUSEIDN,
+#endif
 #ifdef HAVE_GETADDRINFO
   OPTUSEIPV6,
 #endif
@@ -466,6 +484,8 @@ enum
   OPTXMAILER,
   OPTXTERMSETTITLES,
 
+  OPTCRYPTUSEGPGME,
+
   /* PGP options */
   
   OPTCRYPTAUTOSIGN,
@@ -482,7 +502,7 @@ enum
   OPTPGPIGNORESUB,
   OPTPGPCHECKEXIT,
   OPTPGPLONGIDS,
-  OPTPGPAUTOTRAD,
+  OPTPGPAUTODEC,
 #if 0
   OPTPGPENCRYPTSELF,
 #endif
@@ -490,6 +510,8 @@ enum
   OPTPGPSTRICTENC,
   OPTFORWDECRYPT,
   OPTPGPSHOWUNUSABLE,
+  OPTPGPAUTOINLINE,
+  OPTPGPREPLYINLINE,
 
   /* news options */
 
@@ -537,6 +559,7 @@ enum
   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 */
 
   OPTMAX
 };
@@ -568,10 +591,21 @@ typedef struct rx_list_t
   struct rx_list_t *next;
 } RX_LIST;
 
+typedef struct spam_list_t
+{
+  REGEXP *rx;
+  int     nmatch;
+  char   *template;
+  struct spam_list_t *next;
+} SPAM_LIST;
+
 #define mutt_new_list() safe_calloc (1, sizeof (LIST))
+#define mutt_new_spam_list() safe_calloc (1, sizeof (SPAM_LIST))
 #define mutt_new_rx_list() safe_calloc (1, sizeof (RX_LIST))
 void mutt_free_list (LIST **);
 void mutt_free_rx_list (RX_LIST **);
+void mutt_free_spam_list (SPAM_LIST **);
 LIST *mutt_copy_list (LIST *);
 int mutt_matches_ignore (const char *, LIST *);
 /* add an element to a list */
@@ -600,6 +634,7 @@ typedef struct envelope
   ADDRESS *sender;
   ADDRESS *reply_to;
   ADDRESS *mail_followup_to;
+  char *list_post;             /* this stores a mailto URL, or nothing */
   char *subject;
   char *real_subj;             /* offset of the real subject */
   char *message_id;
@@ -613,6 +648,7 @@ typedef struct envelope
   char *followup_to;
   char *x_comment_to;
 #endif
+  BUFFER *spam;
   LIST *references;            /* message references (in reverse order) */
   LIST *in_reply_to;           /* in-reply-to header content */
   LIST *userhdrs;              /* user defined headers */
@@ -662,6 +698,7 @@ typedef struct body
                                 * If NULL, filename is used 
                                 * instead.
                                 */
+  char *file_charset;           /* charset of attached file */
   CONTENT *content;             /* structure used to store detailed info about
                                 * the content of the attachment.  this is used
                                 * to determine what content-transfer-encoding
@@ -693,8 +730,20 @@ typedef struct body
                                /* send mode: don't adjust the character
                                 * set when in send-mode.
                                 */
+  unsigned int is_signed_data : 1; /* A lot of MUAs don't indicate
+                                      S/MIME signed-data correctly,
+                                      e.g. they use foo.p7m even for
+                                      the name of signed data.  This
+                                      flag is used to keep track of
+                                      the actual message type.  It
+                                      gets set during the verification
+                                      (which is done if the encryption
+                                      try failed) and check by the
+                                      function to figure the type of
+                                      the message. */
 
   unsigned int goodsig : 1;    /* good cryptographic signature */
+  unsigned int warnsig : 1;     /* maybe good signature */
   unsigned int badsig : 1;     /* bad cryptographic signature (needed to check encrypted s/mime-signatures) */
 
   unsigned int collapsed : 1;  /* used by recvattach */
@@ -703,7 +752,7 @@ typedef struct body
 
 typedef struct header
 {
-  unsigned int security : 9;  /* bit 0-6: flags, bit 7,8: application.
+  unsigned int security : 11;  /* bit 0-6: flags, bit 7,8: application.
                                 see: crypt.h pgplib.h, smime.h */
 
   unsigned int mime : 1;               /* has a Mime-Version header? */
@@ -908,6 +957,8 @@ typedef struct
 #define M_WEED          (1<<3) /* weed headers even when not in display mode */
 #define M_CHARCONV     (1<<4) /* Do character set conversions */
 #define M_PRINTING     (1<<5) /* are we printing? - M_DISPLAY "light" */
+#define M_REPLYING     (1<<6) /* are we replying? */
+#define M_FIRSTDONE    (1<<7) /* the first attachment has been done */
 
 #define state_set_prefix(s) ((s)->flags |= M_PENDINGPREFIX)
 #define state_reset_prefix(s) ((s)->flags &= ~M_PENDINGPREFIX)