SizeCEFunc c_cesizefnx; /* size of decoded contents */
int c_umask; /* associated umask */
- pid_t c_pid; /* process doing display */
int c_rfc934; /* rfc934 compatibility flag */
char *c_showproc; /* default, if not in profile */
/*
* prototypes
*/
-int pidcheck (int);
CT parse_mime (char *);
/*
const struct str2init *get_ct_init (int);
const char *ce_str (int);
const struct str2init *get_ce_method (const char *);
+char *content_charset (CT);
+int convert_charset (CT, char *, int *);
+
+/*
+ * 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.
*
- * Argumens are:
+ * Arguments are:
*
* cts - An array of CT elements of messages that need to be
* displayed. Array is terminated by a NULL.
* last - Pointer to tail of linked list
* name - Name of parameter
* value - Value of parameter
+ * nocopy - If set, will use the pointer values directly for "name"
+ * and "value" instead of making their own copy. These
+ * pointers will be free()'d later by the MIME routines, so
+ * they should not be used after calling this function!
+ *
+ * Returns allocated parameter element
+ */
+PM add_param(PM *first, PM *last, char *name, char *value, int nocopy);
+
+/*
+ * Replace (or add) a parameter to the parameter linked list.
*
- * Returned allocated parameter element
+ * If the named parameter already exists on the parameter linked list,
+ * replace the value with the new one. Otherwise add it to the linked
+ * list. All parameters are identical to add_param().
*/
-PM add_param(PM *first, PM *last, const char *name, const char *value);
+PM replace_param(PM *first, PM *last, char *name, char *value, int nocopy);
/*
* Retrieve a parameter value from a parameter linked list. Convert to the
*/
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 containg 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);
+
+/*
+ * 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 */