-/* Exit values used in send_msg() */
-#define S_ERR 127
-#define S_BKG 126
-
-typedef struct list_t
-{
- char *data;
- struct list_t *next;
-} LIST;
-
-typedef struct rx_list_t
-{
- REGEXP *rx;
- struct rx_list_t *next;
-} RX_LIST;
-
-#define mutt_new_list() safe_calloc (1, sizeof (LIST))
-#define mutt_new_rx_list() safe_calloc (1, sizeof (RX_LIST))
-void mutt_free_list (LIST **);
-void mutt_free_rx_list (RX_LIST **);
-int mutt_matches_ignore (const char *, LIST *);
-
-/* add an element to a list */
-LIST *mutt_add_list (LIST *, const char *);
-
-void mutt_init (int, LIST *);
-
-typedef struct alias
-{
- struct alias *self; /* XXX - ugly hack */
- char *name;
- ADDRESS *addr;
- struct alias *next;
- short tagged;
- short del;
- short num;
-} ALIAS;
-
-typedef struct envelope
-{
- ADDRESS *return_path;
- ADDRESS *from;
- ADDRESS *to;
- ADDRESS *cc;
- ADDRESS *bcc;
- ADDRESS *sender;
- ADDRESS *reply_to;
- ADDRESS *mail_followup_to;
- char *subject;
- char *real_subj; /* offset of the real subject */
- char *message_id;
- char *supersedes;
- char *date;
- char *x_label;
- char *organization;
-#ifdef USE_NNTP
- char *newsgroups;
- char *xref;
- char *followup_to;
- char *x_comment_to;
-#endif
- LIST *references; /* message references (in reverse order) */
- LIST *in_reply_to; /* in-reply-to header content */
- LIST *userhdrs; /* user defined headers */
-} ENVELOPE;
-
-typedef struct parameter
-{
- char *attribute;
- char *value;
- struct parameter *next;
-} PARAMETER;
-
-/* Information that helps in determing the Content-* of an attachment */
-typedef struct content
-{
- long hibin; /* 8-bit characters */
- long lobin; /* unprintable 7-bit chars (eg., control chars) */
- long crlf; /* '\r' and '\n' characters */
- long ascii; /* number of ascii chars */
- long linemax; /* length of the longest line in the file */
- unsigned int space : 1; /* whitespace at the end of lines? */
- unsigned int binary : 1; /* long lines, or CR not in CRLF pair */
- unsigned int from : 1; /* has a line beginning with "From "? */
- unsigned int dot : 1; /* has a line consisting of a single dot? */
- unsigned int cr : 1; /* has CR, even when in a CRLF pair */
-} CONTENT;
-
-typedef struct body
-{
- char *xtype; /* content-type if x-unknown */
- char *subtype; /* content-type subtype */
- PARAMETER *parameter; /* parameters of the content-type */
- char *description; /* content-description */
- char *form_name; /* Content-Disposition form-data name param */
- long hdr_offset; /* offset in stream where the headers begin.
- * this info is used when invoking metamail,
- * where we need to send the headers of the
- * attachment
- */
- long offset; /* offset where the actual data begins */
- long length; /* length (in bytes) of attachment */
- char *filename; /* when sending a message, this is the file
- * to which this structure refers
- */
- char *d_filename; /* filename to be used for the
- * content-disposition header.
- * If NULL, filename is used
- * instead.
- */
- CONTENT *content; /* structure used to store detailed info about
- * the content of the attachment. this is used
- * to determine what content-transfer-encoding
- * is required when sending mail.
- */
- struct body *next; /* next attachment in the list */
- struct body *parts; /* parts of a multipart or message/rfc822 */
- struct header *hdr; /* header information for message/rfc822 */
-
- struct attachptr *aptr; /* Menu information, used in recvattach.c */
-
- time_t stamp; /* time stamp of last
- * encoding update.
- */
-
- unsigned int type : 4; /* content-type primary type */
- unsigned int encoding : 3; /* content-transfer-encoding */
- unsigned int disposition : 2; /* content-disposition */
- unsigned int use_disp : 1; /* Content-Disposition uses filename= ? */
- unsigned int unlink : 1; /* flag to indicate the the file named by
- * "filename" should be unlink()ed before
- * free()ing this structure
- */
- unsigned int tagged : 1;
- unsigned int deleted : 1; /* attachment marked for deletion */
-
- unsigned int noconv : 1; /* don't do character set conversion */
- unsigned int force_charset : 1;
- /* send mode: don't adjust the character
- * set when in send-mode.
- */
-
- unsigned int goodsig : 1; /* good cryptographic signature */
- unsigned int badsig : 1; /* bad cryptographic signature (needed to check encrypted s/mime-signatures) */
-
- unsigned int collapsed : 1; /* used by recvattach */
-
-} BODY;
-
-typedef struct header
-{
- unsigned int security : 9; /* bit 0-6: flags, bit 7,8: application.
- see: crypt.h pgplib.h, smime.h */
-
- unsigned int mime : 1; /* has a Mime-Version header? */
- unsigned int flagged : 1; /* marked important? */
- unsigned int tagged : 1;
- unsigned int appended : 1; /* has been saved */
- unsigned int purged : 1; /* bypassing the trash folder */
- unsigned int deleted : 1;
- unsigned int changed : 1;
- unsigned int attach_del : 1; /* has an attachment marked for deletion */
- unsigned int old : 1;
- unsigned int read : 1;
- unsigned int expired : 1; /* already expired? */
- unsigned int superseded : 1; /* got superseded? */
- unsigned int replied : 1;
- unsigned int subject_changed : 1; /* used for threading */
- unsigned int threaded : 1; /* used for threading */
- unsigned int display_subject : 1; /* used for threading */
- unsigned int recip_valid : 1; /* is_recipient is valid */
- unsigned int active : 1; /* message is not to be removed */
- unsigned int trash : 1; /* message is marked as trashed on disk.
- * This flag is used by the maildir_trash
- * option.
- */
-
- /* timezone of the sender of this message */
- unsigned int zhours : 5;
- unsigned int zminutes : 6;
- unsigned int zoccident : 1;
-
- /* bits used for caching when searching */
- unsigned int searched : 1;
- unsigned int matched : 1;
-
- /* the following are used to support collapsing threads */
- unsigned int collapsed : 1; /* is this message part of a collapsed thread? */
- unsigned int limited : 1; /* is this message in a limited view? */
- size_t num_hidden; /* number of hidden messages in this view */
-
- short recipient; /* user_is_recipient()'s return value, cached */
-
- int pair; /* color-pair to use when displaying in the index */
-
- time_t date_sent; /* time when the message was sent (UTC) */
- time_t received; /* time when the message was placed in the mailbox */
- long offset; /* where in the stream does this message begin? */
- int lines; /* how many lines in the body of this message? */
- int index; /* the absolute (unsorted) message number */
- int msgno; /* number displayed to the user */
- int virtual; /* virtual message number */
- int score;
- ENVELOPE *env; /* envelope information */
- BODY *content; /* list of MIME parts */
- char *path;
-#ifdef USE_NNTP
- int article_num;
-#endif
-
- char *tree; /* character string to print thread tree */
- struct thread *thread;