*/
#include <h/mh.h>
-#include <errno.h>
#include <h/mime.h>
#include <h/mhparse.h>
#include <h/utils.h>
char *parts[NPARTS + 1];
char *types[NTYPES + 1];
-int endian = 0; /* little or big endian */
int userrs = 0;
static char *errs = NULL;
snprintf (buffer, sizeof(buffer), "%s/%s", ci->ci_type, ci->ci_subtype);
for (ap = types; *ap; ap++)
- if (!mh_strcasecmp (*ap, ci->ci_type) || !mh_strcasecmp (*ap, buffer))
+ if (!strcasecmp (*ap, ci->ci_type) || !strcasecmp (*ap, buffer))
return 1;
return 0;
}
-void
-set_endian (void)
+/*
+ * Returns true if this content is marked as "inline".
+ *
+ * Technically we should check parent content to see if they have
+ * disposition to use as a default, but we don't right now. Maybe
+ * later ....
+ */
+
+int
+is_inline(CT ct)
{
- union {
- long l;
- char c[sizeof(long)];
- } un;
-
- un.l = 1;
- endian = un.c[0] ? -1 : 1;
- if (debugsw)
- fprintf (stderr, "%s endian architecture\n",
- endian > 0 ? "big" : "little");
-}
+ /*
+ * If there isn't any disposition at all, it's "inline". Obviously
+ * if it's "inline", then it's inline. RFC 2183 says if it's an unknown
+ * disposition, treat it as 'attachment'.
+ */
+ if (! ct->c_dispo_type || strcasecmp(ct->c_dispo_type, "inline") == 0)
+ return 1;
+ else
+ return 0;
+}
int
make_intermediates (char *file)