and added declaration to mhparse.h.
const struct str2init *get_ce_method (const char *);
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
extern int skip_mp_cte_check; /* flag to InitMultiPart */
extern int suppress_bogus_mp_content_warning; /* flag to InitMultiPart */
extern int bogus_mp_content; /* flag from InitMultiPart */
-void reverse_parts (CT);
/* mhoutsbr.c */
int output_message (CT, char *);
} fix_transformations;
int mhfixmsgsbr (CT *, const fix_transformations *, char *);
-static void reverse_alternative_parts (CT);
static int fix_boundary (CT *, int *);
static int get_multipart_boundary (CT, char **);
static int replace_boundary (CT, char *, char *);
}
-/* parse_mime() arranges alternates in reverse (priority) order, so
- reverse them back. This will put a text/plain part at the front of
- a multipart/alternative part, for example, where it belongs. */
-static void
-reverse_alternative_parts (CT ct) {
- if (ct->c_type == CT_MULTIPART) {
- struct multipart *m = (struct multipart *) ct->c_ctparams;
- struct part *part;
-
- if (ct->c_subtype == MULTI_ALTERNATE) {
- reverse_parts (ct);
- }
-
- /* And call recursively on each part of a multipart. */
- for (part = m->mp_parts; part; part = part->mp_next) {
- reverse_alternative_parts (part->mp_part);
- }
- }
-}
-
-
static int
fix_boundary (CT *ct, int *message_mods) {
struct multipart *mp;
static int InitGeneric (CT);
static int InitText (CT);
static int InitMultiPart (CT);
-void reverse_parts (CT);
+static void reverse_parts (CT);
static int InitMessage (CT);
static int InitApplication (CT);
static int init_encoding (CT, OpenCEFunc);
* reverse the order of the parts of a multipart/alternative
*/
-void
+static void
reverse_parts (CT ct)
{
struct multipart *m = (struct multipart *) ct->c_ctparams;
}
+
+
+/* parse_mime() arranges alternates in reverse (priority) order. This
+ function can be used to reverse them back. This will put, for
+ example, a text/plain part before a text/html part in a
+ multipart/alternative part, for example, where it belongs. */
+void
+reverse_alternative_parts (CT ct) {
+ if (ct->c_type == CT_MULTIPART) {
+ struct multipart *m = (struct multipart *) ct->c_ctparams;
+ struct part *part;
+
+ if (ct->c_subtype == MULTI_ALTERNATE) {
+ reverse_parts (ct);
+ }
+
+ /* And call recursively on each part of a multipart. */
+ for (part = m->mp_parts; part; part = part->mp_next) {
+ reverse_alternative_parts (part->mp_part);
+ }
+ }
+}
+
+
/*
* MESSAGE
*/