#include <grp.h>
#include "rfc822.h"
+#include "list.h"
#include "hash.h"
#include "charset.h"
#include "lib/rx.h"
#define INITVAL(x)
#endif
-/* flags for mutt_copy_header() */
-#define CH_UPDATE 1 /* update the status and x-status fields? */
-#define CH_WEED (1<<1) /* weed the headers? */
-#define CH_DECODE (1<<2) /* do RFC1522 decoding? */
-#define CH_XMIT (1<<3) /* transmitting this message? */
-#define CH_FROM (1<<4) /* retain the "From " message separator? */
-#define CH_PREFIX (1<<5) /* use Prefix string? */
-#define CH_NOSTATUS (1<<6) /* supress the status and x-status fields */
-#define CH_REORDER (1<<7) /* Re-order output of headers */
-#define CH_NONEWLINE (1<<8) /* don't output terminating newline */
-#define CH_MIME (1<<9) /* ignore MIME fields */
-#define CH_UPDATE_LEN (1<<10) /* update Lines: and Content-Length: */
-#define CH_TXTPLAIN (1<<11) /* generate text/plain MIME headers */
-#define CH_NOLEN (1<<12) /* don't write Content-Length: and Lines: */
-#define CH_WEED_DELIVERED (1<<13) /* weed eventual Delivered-To headers */
-#define CH_FORCE_FROM (1<<14) /* give CH_FROM precedence over CH_WEED? */
-#define CH_NOQFROM (1<<15) /* give CH_FROM precedence over CH_WEED? */
-#define CH_UPDATE_IRT (1<<16) /* update In-Reply-To: */
-#define CH_UPDATE_REFS (1<<17) /* update References: */
-
-/* flags for mutt_enter_string() */
-#define M_ALIAS 1 /* do alias "completion" by calling up the alias-menu */
-#define M_FILE (1<<1) /* do file completion */
-#define M_EFILE (1<<2) /* do file completion, plus incoming folders */
-#define M_CMD (1<<3) /* do completion on previous word */
-#define M_PASS (1<<4) /* password mode (no echo) */
-#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() */
+/* flags for mutt_extract_token() */
#define M_TOKEN_EQUAL 1 /* treat '=' as a special */
#define M_TOKEN_CONDENSE (1<<1) /* ^(char) to control chars (macros) */
#define M_TOKEN_SPACE (1<<2) /* don't treat whitespace as a term */
#define M_TOKEN_COMMENT (1<<5) /* don't reap comments */
#define M_TOKEN_SEMICOLON (1<<6) /* don't treat ; as special */
-/* flags for km_dokey() */
-#define M_KM_UNBUFFERED 1 /* don't read from the key buffer */
-
typedef struct {
char *data; /* pointer to data */
char *dptr; /* current read/write position */
M_LIMIT,
M_EXPIRED,
M_SUPERSEDED,
- M_REALNAME,
/* actions for mutt_pattern_comp/mutt_pattern_exec */
M_AND,
M_REFERENCE,
M_RECIPIENT,
M_LIST,
+ M_SUBSCRIBED_LIST,
M_PERSONAL_RECIP,
M_PERSONAL_FROM,
M_ADDRESS,
#ifdef USE_NNTP
M_NEWSGROUPS,
#endif
+ M_REALNAME,
+ M_MULTIPART,
/* Options for Mailcap lookup */
M_EDIT,
/* quad-option vars */
enum {
OPT_ABORT,
+ OPT_ATTACH,
OPT_BOUNCE,
OPT_COPY,
OPT_DELETE,
OPTCONFIRMAPPEND,
OPTCONFIRMCREATE,
OPTDELETEUNTAG,
+ OPTDELSP,
OPTDIGESTCOLLAPSE,
OPTDUPTHREADS,
OPTEDITHDRS,
OPTHIDETOPMISSING,
OPTIGNORELISTREPLYTO,
#ifdef USE_IMAP
+ OPTIMAPCHECKSUBSCRIBED,
OPTIMAPLSUB,
OPTIMAPPASSIVE,
OPTIMAPPEEK,
OPTWRAPSEARCH,
OPTWRITEBCC, /* write out a bcc header? */
OPTXMAILER,
+ OPTXMAILTO, /* 1 if $edit_header is forcebly set */
OPTXTERMSETTITLES,
OPTCRYPTUSEGPGME,
#define toggle_option(x) mutt_bit_toggle(Options,x)
#define option(x) mutt_bit_isset(Options,x)
-typedef struct list_t {
- char *data;
- struct list_t *next;
-} LIST;
-
typedef struct spam_list_t {
rx_t *rx;
int nmatch;
} SPAM_LIST;
-#define mutt_new_list() mem_calloc (1, sizeof (LIST))
#define mutt_new_spam_list() mem_calloc (1, sizeof (SPAM_LIST))
-void mutt_free_list (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 */
-LIST *mutt_add_list (LIST*, const char*);
-LIST *mutt_add_list_n (LIST*, const void*, size_t len);
+int mutt_matches_ignore (const char *, LIST *);
void mutt_init (int, LIST *);
/* flag to mutt_pattern_comp() */
-#define M_FULL_MSG 1 /* enable body and header matching */
+#define M_FULL_MSG (1<<0) /* enable body and header matching */
typedef enum {
M_MATCH_FULL_ADDRESS = 1
typedef struct pattern_t {
short op;
- short not;
- short alladdr;
+ 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;
unsigned int counting:1; /* do we just want to cound? */
} CONTEXT;
-#include "ascii.h"
-#include "alias.h"
-#include "buffer.h"
-#include "state.h"
-#include "enter.h"
#include "protos.h"
#include "lib.h"
#include "globals.h"