X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/fb5a049491f2f756c8931384103f4ee017e25b49..b11a86cf7a0fc5b0dfef070e0bc65754c7d26016:/h/mhparse.h diff --git a/h/mhparse.h b/h/mhparse.h index d7bdb344..62e6c0b3 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,6 +285,29 @@ 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 + * autobuild - A flag to indicate if the composition file parser is + * being run in automatic mode or not. In auto mode, + * if a MIME-Version header is encountered it is assumed + * that the composition file is already in MIME format + * and will not be processed further. Otherwise, an + * error is generated. + * 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. If the + * -auto flag is set and a MIME-Version header is encountered, the return + * value is NULL. + */ +CT build_mime (char *infile, int autobuild, int directives, int encoding); + int add_header (CT, char *, char *); int get_ctinfo (char *, CT, int); int params_external (CT, int); @@ -285,5 +319,6 @@ 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 */