* -- (mhparse.c/mhbuildsbr.c)
*/
-#define NPARTS 50
-#define NTYPES 20
-#define NPREFS 20
-
/*
* Abstract type for header fields
*/
struct hfield {
char *name; /* field name */
char *value; /* field body */
- int hf_encoding; /* internal flag for transfer encoding to use */
HF next; /* link to next header field */
};
int c_encoding; /* internal flag for encoding type */
int c_reqencoding; /* Requested encoding (by mhbuild) */
- /* Content-MD5 info */
- int c_digested; /* have we seen this header before? */
- unsigned char c_digest[16]; /* decoded MD5 checksum */
-
/* pointers to content-specific structures */
void *c_ctparams; /* content type specific data */
struct exbody *c_ctexbody; /* data for type message/external */
/* Flags for subtypes of MESSAGE */
#define MESSAGE_UNKNOWN 0x00
#define MESSAGE_RFC822 0x01
-#define MESSAGE_PARTIAL 0x02
-#define MESSAGE_EXTERNAL 0x03
-
-/* Structure for message/partial */
-struct partial {
- char *pm_partid;
- int pm_partno;
- int pm_maxno;
- int pm_marked;
- int pm_stored;
-};
+#define MESSAGE_EXTERNAL 0x02
/* Structure for message/external */
struct exbody {
int params_external (CT, int);
int open7Bit (CT, char **);
void close_encoding (CT);
-char *ct_type_str (int);
-char *ct_subtype_str (int, int);
-int ct_str_type (const char *);
-int ct_str_subtype (int, const char *);
-const struct str2init *get_ct_init (int);
-const char *ce_str (int);
-const struct str2init *get_ce_method (const char *);
+char *ct_type_str (int) CONST;
+char *ct_subtype_str (int, int) CONST;
+int ct_str_type (const char *) PURE;
+int ct_str_subtype (int, const char *) PURE;
+const struct str2init *get_ct_init (int) PURE;
+const char *ce_str (int) CONST;
+const struct str2init *get_ce_method (const char *) PURE;
char *content_charset (CT);
void reverse_alternative_parts (CT);
-/*
- * Given a content structure, return true if the content has a disposition
- * of "inline".
- *
- * Arguments are:
- *
- * ct - Content structure to examine
- */
-int is_inline(CT ct);
-
/*
* Given a list of messages, display information about them on standard
* output.
*/
char *get_param_value(PM pm, char replace);
-extern int checksw; /* Add Content-MD5 field */
-
/*
* mhstore
* Put it here because it uses the CT typedef.
*/
typedef struct mhstoreinfo *mhstoreinfo_t;
mhstoreinfo_t mhstoreinfo_create(CT *, char *, const char *, int, int);
-int mhstoreinfo_files_not_clobbered(const mhstoreinfo_t);
+int mhstoreinfo_files_not_clobbered(const mhstoreinfo_t) PURE;
void mhstoreinfo_free(mhstoreinfo_t);
void store_all_messages (mhstoreinfo_t);
+
+extern bool skip_mp_cte_check;
+extern bool suppress_bogus_mp_content_warning;
+extern bool bogus_mp_content;
+extern bool suppress_extraneous_trailing_semicolon_warning;
+
+extern bool suppress_multiple_mime_version_warning;
+
+#define NPREFS 20
+typedef struct {
+ char *type;
+ char *subtype;
+} mime_type_subtype;
+extern mime_type_subtype mime_preference[NPREFS];
+extern int npreferred;