X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..75b0dbe98e53c962cc00d7487a0a38ed2ff7c105:/h/mhparse.h diff --git a/h/mhparse.h b/h/mhparse.h index f99a1c7a..1f8ab719 100644 --- a/h/mhparse.h +++ b/h/mhparse.h @@ -2,8 +2,6 @@ /* * mhparse.h -- definitions for parsing/building of MIME content * -- (mhparse.c/mhbuildsbr.c) - * - * $Id$ */ #define NPARTS 50 @@ -90,6 +88,7 @@ struct Content { 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 */ @@ -98,7 +97,7 @@ struct Content { 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 */ @@ -163,10 +162,8 @@ struct Content { #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 { @@ -194,6 +191,8 @@ struct part { 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 */ }; @@ -232,6 +231,7 @@ struct exbody { char *eb_server; char *eb_subject; char *eb_body; + char *eb_url; }; /* @@ -243,3 +243,49 @@ struct exbody { #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 */