if (partial[i]=='>') partial[i] = 0;
}
if (is_partial == 0) strcpy(partial, "");
- lprintf(9, "Partial is %s\n", partial);
+ if (strlen(partial) > 0) lprintf(9, "Partial is %s\n", partial);
tmp = tmpfile();
if (tmp == NULL) {
imfp.output_fp = tmp;
mime_parser(msg->cm_fields['M'], NULL,
- *imap_load_part,
+ *imap_load_part, NULL, NULL,
(void *)&imfp,
1);
}
}
}
+/*
+ * Called immediately before outputting a multipart bodystructure
+ */
+void imap_fetch_bodystructure_pre(
+ char *name, char *filename, char *partnum, char *disp,
+ void *content, char *cbtype, size_t length, char *encoding,
+ void *cbuserdata
+ ) {
+
+ cprintf("(");
+}
+
+
+
+/*
+ * Called immediately after outputting a multipart bodystructure
+ */
+void imap_fetch_bodystructure_post(
+ char *name, char *filename, char *partnum, char *disp,
+ void *content, char *cbtype, size_t length, char *encoding,
+ void *cbuserdata
+ ) {
+
+ char subtype[SIZ];
+
+ extract_token(subtype, cbtype, 1, '/');
+ imap_strout(subtype);
+ cprintf(")");
+}
+
/*
cprintf("BODYSTRUCTURE (\"TEXT\" \"PLAIN\" "
"(\"CHARSET\" \"US-ASCII\") NIL NIL "
- "\"7BIT\" %ld %ld) ", bytes, lines);
+ "\"7BIT\" %ld %ld)", bytes, lines);
return;
}
/* For messages already stored in RFC822 format, we have to parse. */
- cprintf("BODYSTRUCTURE (");
+ cprintf("BODYSTRUCTURE ");
mime_parser(msg->cm_fields['M'],
NULL,
- *imap_fetch_bodystructure_part,
+ *imap_fetch_bodystructure_part, /* part */
+ *imap_fetch_bodystructure_pre, /* pre-multi */
+ *imap_fetch_bodystructure_post, /* post-multi */
NULL,
0);
- cprintf(") ");
}