]> diplodocus.org Git - nmh/blobdiff - h/mhparse.h
Minor formatting fix for fmttest man page.
[nmh] / h / mhparse.h
index f99a1c7a963aea650031d9f8ded1ccbc88ea4d51..1f8ab71915a6738ee564d721a30f7270bd66f417 100644 (file)
@@ -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 */