X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2e768e3cc0ce768373d3320eca4cdd08b8cf646a..7b87125e7b885b8985fabeae667deb26091f4e01:/h/mhparse.h?ds=sidebyside diff --git a/h/mhparse.h b/h/mhparse.h index b11f706d..1dfd7ed8 100644 --- a/h/mhparse.h +++ b/h/mhparse.h @@ -68,6 +68,16 @@ struct cefile { /* * Primary structure for handling Content (Entity) + * + * Some more explanation of this: + * + * This structure recursively describes a complete MIME message. + * At the top level, the c_first_hf list has a list of all message + * headers. If the content-type is multipart (c_type == CT_MULTIPART) + * then c_ctparams will contain a pointer to a struct multipart. + * A struct multipart contains (among other trhings) a linked list + * of struct part elements, and THOSE contain a pointer to the sub-part's + * Content structure. */ struct Content { /* source (read) file */ @@ -97,7 +107,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 */ @@ -231,6 +241,7 @@ struct exbody { char *eb_server; char *eb_subject; char *eb_body; + char *eb_url; }; /* @@ -274,11 +285,32 @@ extern struct str2init str2methods[]; */ int pidcheck (int); CT parse_mime (char *); + +/* + * Translate a composition file into a MIME data structure. Arguments are: + * + * infile - Name of input filename + * directives - A flag to control whether or not build directives are + * processed by default. + * encoding - The default encoding to use when doing RFC 2047 header + * encoding. Must be one of CE_UNKNOWN, CE_BASE64, or + * CE_QUOTED; + * + * Returns a CT structure describing the resulting MIME message. + */ +CT build_mime (char *infile, int directives, int encoding); + 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 */