X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/e7929465963035b8285dfc75519da61d5774388d..b0aa8cdb1c264e42d4931ca24968689c73381278:/h/mhparse.h diff --git a/h/mhparse.h b/h/mhparse.h index 371e671a..d184e530 100644 --- a/h/mhparse.h +++ b/h/mhparse.h @@ -6,7 +6,7 @@ #define NPARTS 50 #define NTYPES 20 -#define NPARMS 10 +#define NPREFS 20 /* * Abstract type for header fields @@ -87,7 +87,7 @@ struct cefile { * 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 + * A struct multipart contains (among other things) a linked list * of struct part elements, and THOSE contain a pointer to the sub-part's * Content structure. */ @@ -193,6 +193,10 @@ struct Content { /* Structure for text content */ struct text { int tx_charset; /* flag for character set */ + int lf_line_endings; /* Whether to use CR LF (0) or LF (1) line + endings. The meaning of 0 was selected so + that CR LF is the default, in accordance + with RFC 2046, Sec. 4.1.1, Par. 1. */ }; /* @@ -338,6 +342,8 @@ 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 *); @@ -421,6 +427,21 @@ int list_switch(CT ct, int toplevel, int realsize, int verbose, int debug, char *output_params(size_t initialwidth, PM params, int *offsetout, int external); +/* + * Encode a parameter value using RFC 2231 encode. + * + * Arguments are: + * + * pm - PM containing the parameter value and related info. + * output - Output buffer. + * len - Size, in octets, of output buffer. + * valuelen - Number of characters in the value + * valueoff - Offset into value field (pm->pm_value). + * index - If 0, output character set and language tag. + */ +size_t encode_param(PM pm, char *output, size_t len, size_t valuelen, + size_t valueoff, int index); + /* * Add a parameter to the parameter linked list. * @@ -497,11 +518,10 @@ char *get_param_value(PM pm, char replace); * 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 containg mh-format(5) code used to + * 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, - char *markerform); +void show_all_messages(CT *cts, int concat, int textonly, int inlineonly); /* * Display (or store) a single MIME part using the specified command