#ifndef MUTT_LIB_MIME_MIME_TYPES_H
#define MUTT_LIB_MIME_MIME_TYPES_H
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <lib-lib/mem.h>
-#include <lib-lib/buffer.h>
-#include <lib-lib/list.h>
+#include <lib-lib/lib-lib.h>
/* Content-Type */
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);
/* 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 */
/****************************************************************************/
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.
* 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 */
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 */