X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/66576f625749ee3cbd168604996d97cb33a58367..b22bcbc2adddca14cc1889b1eee37643e0b88489:/h/mhparse.h diff --git a/h/mhparse.h b/h/mhparse.h index 3641f7a6..96a37b0a 100644 --- a/h/mhparse.h +++ b/h/mhparse.h @@ -1,13 +1,7 @@ - -/* - * mhparse.h -- definitions for parsing/building of MIME content +/* mhparse.h -- definitions for parsing/building of MIME content * -- (mhparse.c/mhbuildsbr.c) */ -#define NPARTS 50 -#define NTYPES 20 -#define NPREFS 20 - /* * Abstract type for header fields */ @@ -40,7 +34,6 @@ typedef unsigned long (*SizeCEFunc) (CT); 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 */ }; @@ -161,7 +154,7 @@ struct Content { SizeCEFunc c_cesizefnx; /* size of decoded contents */ int c_umask; /* associated umask */ - int c_rfc934; /* rfc934 compatibility flag */ + int c_rfc934; /* RFC 934 compatibility flag */ char *c_showproc; /* default, if not in profile */ char *c_termproc; /* for charset madness... */ @@ -359,28 +352,16 @@ 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); -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); -int convert_charset (CT, char *, int *); 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. @@ -417,7 +398,7 @@ int list_content(CT ct, int toplevel, int realsize, int verbose, int debug, int dispo); /* - * Display content-appropriate information on MIME parts, decending recursively + * Display content-appropriate information on MIME parts, descending recursively * into multipart content if appropriate. Uses list_content() for displaying * generic information. * @@ -525,49 +506,6 @@ char *get_param(PM first, const char *name, char replace, int fetchonly); */ char *get_param_value(PM pm, char replace); -/* - * Display MIME message(s) on standard out. - * - * Arguments are: - * - * cts - NULL terminated array of CT structures for messages - * to display - * concat - If true, concatenate all MIME parts. If false, show each - * MIME part under a separate pager. - * textonly - If true, only display "text" MIME parts - * inlineonly - If true, only display MIME parts that are marked with - * a disposition of "inline" (includes parts that lack a - * Content-Disposition header). - * markerform - The name of a file containing mh-format(5) code used to - * display markers about non-displayed MIME parts. - */ -void show_all_messages(CT *cts, int concat, int textonly, int inlineonly); - -/* - * Display (or store) a single MIME part using the specified command - * - * Arguments are: - * - * ct - The Content structure of the MIME part we wish to display - * alternate - Set this to true if this is one part of a MIME - * multipart/alternative part. Will suppress some errors and - * will cause the function to return DONE instead of OK on - * success. - * cp - The command string to execute. Will be run through the - * parser for %-escapes as described in mhshow(1). - * cracked - If set, chdir() to this directory before executing the - * command in "cp". Only used by mhstore(1). - * fmt - A series of mh-format(5) instructions to execute if the - * command string indicates a marker is desired. Can be NULL. - * - * Returns NOTOK if we could not display the part, DONE if alternate was - * set and we could display the part, and OK if alternate was not set and - * we could display the part. - */ -struct format; -int show_content_aux(CT ct, int alternate, char *cp, char *cracked, - struct format *fmt); - extern int checksw; /* Add Content-MD5 field */ /* @@ -576,6 +514,21 @@ extern int checksw; /* Add Content-MD5 field */ */ 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;