tmp
[apps/madmutt.git] / lib-mime / mime-types.h
index ac99d87..179e7b2 100644 (file)
@@ -89,28 +89,20 @@ DO_SLIST(address_t, address, address_delete);
 /* rfc822 header parameters                                                 */
 /****************************************************************************/
 
-typedef struct parameter_t {
-    struct parameter_t *next;
-    char *attribute;
-    char *value;
-} parameter_t;
-
-DO_INIT(parameter_t, parameter);
-static inline void parameter_wipe(parameter_t *param) {
-    p_delete(&param->attribute);
-    p_delete(&param->value);
-}
+typedef struct parameters_t parameters_t;
 
-DO_NEW(parameter_t, parameter);
-DO_DELETE(parameter_t, parameter);
-DO_SLIST(parameter_t, parameter, parameter_delete);
+parameters_t *parameter_new();
+parameters_t *parameter_dup(parameters_t *);
+char *parameter_getval(parameters_t *, const char *);
+void parameter_setval(parameters_t *, const char *, const char *);
+void parameter_delval(parameters_t * p, const char *);
+void parameter_set_boundary(parameters_t *);
+void parameter_purge_empty(parameters_t *);
 
-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 **);
+int parameter_equal(const parameters_t *, const parameters_t *);
 
-int parameter_equal(const parameter_t *, const parameter_t *);
+void parameter_foreach(const parameters_t *,
+                       void (*f)(const char *, const char *));
 
 /****************************************************************************/
 /* rfc822 envelopes                                                         */
@@ -175,7 +167,7 @@ typedef struct body {
 
     char *xtype;                  /* content-type if x-unknown */
     char *subtype;                /* content-type subtype */
-    parameter_t *parameter;         /* parameters of the content-type */
+    parameters_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.