/*
* mhparse.h -- definitions for parsing/building of MIME content
* -- (mhparse.c/mhbuildsbr.c)
- *
- * $Id$
*/
#define NPARTS 50
char *c_celine; /* Content-Transfer-Encoding: */
char *c_id; /* Content-ID: */
char *c_descr; /* Content-Description: */
+ char *c_dispo; /* Content-Disposition: */
char *c_partno; /* within multipart content */
/* Content-Type info */
int c_subtype; /* internal flag for content subtype */
/* Content-Transfer-Encoding info (decoded contents) */
- CE c_cefile; /* structure holding decoded content */
+ struct cefile c_cefile; /* structure holding decoded content */
int c_encoding; /* internal flag for encoding type */
/* Content-MD5 info */
#define TEXT_ENRICHED 0x03
/* Flags for character sets */
-#define CHARSET_UNKNOWN 0x00
+#define CHARSET_SPECIFIED 0x00
#define CHARSET_UNSPECIFIED 0x01 /* only needed when building drafts */
-#define CHARSET_USASCII 0x01
-#define CHARSET_LATIN 0x02
/* Structure for text content */
struct text {
struct multipart {
char *mp_start; /* boundary string separating parts */
char *mp_stop; /* terminating boundary string */
+ char *mp_content_before; /* any content before the first subpart */
+ char *mp_content_after; /* any content after the last subpart */
struct part *mp_parts; /* pointer to first subpart structure */
};
char *eb_server;
char *eb_subject;
char *eb_body;
+ char *eb_url;
};
/*
#define APPLICATION_OCTETS 0x01
#define APPLICATION_POSTSCRIPT 0x02
+
+/*
+ * Structures for mapping types to their internal flags
+ */
+struct k2v {
+ char *kv_key;
+ int kv_value;
+};
+extern struct k2v SubText[];
+extern struct k2v Charset[];
+extern struct k2v SubMultiPart[];
+extern struct k2v SubMessage[];
+extern struct k2v SubApplication[];
+
+/*
+ * Structures for mapping (content) types to
+ * the functions to handle them.
+ */
+struct str2init {
+ char *si_key;
+ int si_val;
+ InitFunc si_init;
+};
+extern struct str2init str2cts[];
+extern struct str2init str2ces[];
+extern struct str2init str2methods[];
+
+/*
+ * prototypes
+ */
+int pidcheck (int);
+CT parse_mime (char *);
+int add_header (CT, char *, char *);
+int get_ctinfo (char *, CT, int);
+int params_external (CT, int);
+int open7Bit (CT, char **);
+void close_encoding (CT);
+void free_content (CT);
+char *ct_type_str (int);
+char *ct_subtype_str (int, int);
+const struct str2init *get_ct_init (int);
+const char *ce_str (int);
+const struct str2init *get_ce_method (const char *);
+int parse_header_attrs (const char *, int, char **, CI, int *);
+
+extern int checksw; /* Add Content-MD5 field */