X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mime%2Fmime-types.h;h=6f8c4b7d4f68cd482d93507e02c45a1f8aee501e;hp=de9ca87ae6b7f4d6fb3764161645b2bc6bd164fc;hb=4e64abbe6c52d61bb01b85c266e33e30b257ba68;hpb=2a2f2f9a5bad73c883b7f9c9b4166d932b6aaf37 diff --git a/lib-mime/mime-types.h b/lib-mime/mime-types.h index de9ca87..6f8c4b7 100644 --- a/lib-mime/mime-types.h +++ b/lib-mime/mime-types.h @@ -30,13 +30,7 @@ #ifndef MUTT_LIB_MIME_MIME_TYPES_H #define MUTT_LIB_MIME_MIME_TYPES_H -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include +#include /* Content-Type */ enum { @@ -75,10 +69,10 @@ enum { /****************************************************************************/ typedef struct address_t { + struct address_t *next; char *personal; /* real name of address */ char *mailbox; /* mailbox and host address */ int group; /* group mailbox? */ - struct address_t *next; } address_t; DO_INIT(address_t, address); @@ -95,23 +89,28 @@ DO_SLIST(address_t, address, address_delete); /* rfc822 header parameters */ /****************************************************************************/ -typedef struct parameter { +typedef struct parameter_t { + struct parameter_t *next; char *attribute; char *value; - struct parameter *next; -} PARAMETER; +} parameter_t; -DO_INIT(PARAMETER, parameter); -static inline void parameter_wipe(PARAMETER *param) { +DO_INIT(parameter_t, parameter); +static inline void parameter_wipe(parameter_t *param) { p_delete(¶m->attribute); p_delete(¶m->value); } -DO_NEW(PARAMETER, parameter); -DO_DELETE(PARAMETER, parameter); -DO_SLIST(PARAMETER, parameter, parameter_delete); +DO_NEW(parameter_t, parameter); +DO_DELETE(parameter_t, parameter); +DO_SLIST(parameter_t, parameter, parameter_delete); + +char *parameter_getval(parameter_t *, const char *); +void parameter_setval(parameter_t **, const char *, const char *); +void parameter_delval(parameter_t ** p, const char *); +void parameter_set_boundary(parameter_t **); -char *parameter_getval(PARAMETER *, const char *); +int parameter_equal(const parameter_t *, const parameter_t *); /****************************************************************************/ /* rfc822 envelopes */ @@ -178,9 +177,11 @@ typedef struct content { /****************************************************************************/ typedef struct body { + struct body *next; /* next attachment in the list */ + char *xtype; /* content-type if x-unknown */ char *subtype; /* content-type subtype */ - PARAMETER *parameter; /* parameters of the content-type */ + parameter_t *parameter; /* parameters of the content-type */ char *description; /* content-description */ char *form_name; /* Content-Disposition form-data name param */ off_t hdr_offset; /* offset in stream where the headers begin. @@ -204,7 +205,6 @@ typedef struct body { * 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 */ @@ -248,6 +248,17 @@ typedef struct body { unsigned int attach_qualifies:1; } BODY; +static inline BODY *body_init(BODY *b) { + b->disposition = DISPATTACH; + b->use_disp = 1; + return b; +} +void body_wipe(BODY *); + +DO_NEW(BODY, body); +DO_DELETE(BODY, body); +DO_SLIST(BODY, body, body_delete); + /****************************************************************************/ /* rfc822 Headers */ @@ -321,9 +332,7 @@ see: crypt.h pgplib.h, smime.h */ short attach_total; -#ifdef MIXMASTER string_list_t *chain; -#endif int refno; /* message number on server */ void *data; /* driver-specific data */