]> diplodocus.org Git - nmh/blobdiff - h/mhparse.h
Added unregister_for_removal(0) calls to the couple of children
[nmh] / h / mhparse.h
index b11f706d5994709e51ef9e5e87ce2d3da252704b..62e6c0b390983f48b75c51db0c792e0b04140e23 100644 (file)
@@ -68,6 +68,16 @@ struct cefile {
 
 /*
  * Primary structure for handling Content (Entity)
 
 /*
  * 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 */
  */
 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) */
     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 */
     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_server;
     char *eb_subject;
     char *eb_body;
+    char *eb_url;
 };
 
 /*
 };
 
 /*
@@ -274,11 +285,40 @@ extern struct str2init str2methods[];
  */
 int pidcheck (int);
 CT parse_mime (char *);
  */
 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);
 int open7Bit (CT, char **);
 void close_encoding (CT);
 void free_content (CT);
 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 */
 
 extern int checksw;    /* Add Content-MD5 field */