+DO_INIT(address_t, address);
+static inline void address_wipe(address_t *addr) {
+ p_delete(&addr->personal);
+ p_delete(&addr->mailbox);
+}
+
+DO_NEW(address_t, address);
+DO_DELETE(address_t, address);
+DO_SLIST(address_t, address, address_delete);
+
+/****************************************************************************/
+/* rfc822 header parameters */
+/****************************************************************************/
+
+typedef struct parameters_t parameters_t;
+
+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 *);
+
+int parameter_equal(const parameters_t *, const parameters_t *);
+
+void parameter_foreach(const parameters_t *,
+ void (*f)(const char *, const char *));
+
+/****************************************************************************/
+/* rfc822 envelopes */
+/****************************************************************************/
+