- "extraneous information in message %s's %s: field\n%*.*s(%s)",
- ct->c_file, TYPE_FIELD, i, i, "", cp);
+ "extraneous information in message %s's %s: field\n%*s(%s)",
+ ct->c_file, TYPE_FIELD, strlen(invo_name) + 2, "", cp);
+ }
+
+ return OK;
+}
+
+
+/*
+ * Parse out a Content-Disposition header. A lot of this is cribbed from
+ * get_ctinfo().
+ */
+static int
+get_dispo (char *cp, CT ct, int buildflag)
+{
+ char *dp, *dispoheader;
+ char c;
+ int status;
+
+ /*
+ * Save the whole copy of the Content-Disposition header, unless we're
+ * processing a mhbuild directive. A NULL c_dispo will be a flag to
+ * mhbuild that the disposition header needs to be generated at that
+ * time.
+ */
+
+ dispoheader = cp = add(cp, NULL);
+
+ while (isspace ((unsigned char) *cp)) /* trim leading spaces */
+ cp++;
+
+ /* change newlines to spaces */
+ for (dp = strchr(cp, '\n'); dp; dp = strchr(dp, '\n'))
+ *dp++ = ' ';
+
+ /* trim trailing spaces */
+ for (dp = cp + strlen (cp) - 1; dp >= cp; dp--)
+ if (!isspace ((unsigned char) *dp))
+ break;
+ *++dp = '\0';
+
+ if (debugsw)
+ fprintf (stderr, "%s: %s\n", DISPO_FIELD, cp);
+
+ if (*cp == '(' && get_comment (ct->c_file, DISPO_FIELD, &cp, NULL) ==
+ NOTOK) {
+ free(dispoheader);
+ return NOTOK;