#ifndef _MUTT_H
#define _MUTT_H
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h> /* needed for SEEK_SET */
-#endif
-#ifdef HAVE_UNIX_H
-# include <unix.h> /* needed for snprintf on QNX. */
-#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <time.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <signal.h>
-#ifdef HAVE_WCHAR_H
-# include <wchar.h>
-#endif
-#if defined(HAVE_WCTYPE_H) && defined(HAVE_WC_FUNCS)
-# include <wctype.h>
-#endif
-
-#ifndef _POSIX_PATH_MAX
-#include <posix1_lim.h>
-#endif
-
-#include <pwd.h>
-#include <grp.h>
-
-#include <lib-lib/buffer.h>
-#include <lib-lib/hash.h>
-#include <lib-lib/list.h>
-#include <lib-lib/rx.h>
-
+#include <lib-lib/lib-lib.h>
#include <lib-mime/mime.h>
+#include <lib-lua/lib-lua.h>
-#include "charset.h"
-
-#ifndef HAVE_WC_FUNCS
-# ifdef MB_LEN_MAX
-# undef MB_LEN_MAX
-# endif
-# define MB_LEN_MAX 16
-#endif
-
-# define MUTT_VERSION (VERSION)
+#define MUTT_VERSION (VERSION)
/* nifty trick I stole from ELM 2.5alpha. */
#ifdef MAIN_C
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
/* 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,
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,
#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,
OPTFORCENAME,
OPTFORWDECODE,
OPTFORWQUOTE,
-#ifdef USE_HCACHE
- OPTHCACHEVERIFY,
-#if HAVE_QDBM
+#ifdef HAVE_QDBM
OPTHCACHECOMPRESS,
-#endif /* HAVE_QDBM */
#endif
- OPTHDRS,
OPTHEADER,
OPTHELP,
OPTHIDDENHOST,
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,
OPTMETOO,
OPTMHPURGE,
OPTMIMEFORWDECODE,
-#ifdef USE_NNTP
- OPTMIMESUBJECT, /* encode subject line with RFC2047 */
-#endif
OPTNARROWTREE,
OPTPAGERSTOP,
OPTPIPEDECODE,
OPTPIPESPLIT,
- OPTPOPAUTHTRYALL,
OPTPOPLAST,
OPTPRINTDECODE,
OPTPRINTSPLIT,
OPTREVALIAS,
OPTREVNAME,
OPTREVREAL,
- OPTRFC2047PARAMS,
- OPTSAVEADDRESS,
- OPTSAVEEMPTY,
- OPTSAVENAME,
- OPTSCORE,
OPTSIGDASHES,
- OPTSIGONTOP,
OPTSORTRE,
OPTSPAMSEP,
OPTSTATUSONTOP,
OPTSTRICTMAILTO,
- OPTSTRICTMIME,
OPTSTRICTTHREADS,
OPTSTRIPWAS,
OPTSTUFFQUOTED,
OPTTHREADRECEIVED,
OPTTILDE,
OPTUNCOLLAPSEJUMP,
- OPTUSE8BITMIME,
- OPTUSEDOMAIN,
OPTUSEFROM,
- OPTUSEGPGAGENT,
#ifdef HAVE_LIBIDN
OPTUSEIDN,
#endif
-#ifdef HAVE_GETADDRINFO
OPTUSEIPV6,
-#endif
OPTWAITKEY,
OPTWEED,
OPTWRAP,
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 */
OPTAUXSORT, /* (pseudo) using auxillary sort function */
OPTFORCEREFRESH, /* (pseudo) refresh even during macros */
- OPTLOCALES, /* (pseudo) set if user has valid locale definition */
OPTNOCURSES, /* (pseudo) when sending in batch mode */
OPTNEEDREDRAW, /* (pseudo) to notify caller of a submenu */
OPTSEARCHREVERSE, /* (pseudo) used by ci_search_command */
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) calloc ((n + 7) / 8, sizeof (char))
+#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 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 *);
-
void mutt_init (int, string_list_t *);
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;
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 */
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? */
#define M_PARTS_RECOUNT (1<<1) /* force recount */
#include "protos.h"
-#include "lib.h"
#include "globals.h"
#endif /* !_MUTT_H */