MimeInfo *alt_parent = mimeinfo;
/* if multipart/{related,mixed} part, look inside for a multipart/alternative child */
- if (prefs_common.promote_html_part &&
- mimeinfo->type == MIMETYPE_MULTIPART &&
+ if (mimeinfo->type == MIMETYPE_MULTIPART &&
(!strcasecmp(mimeinfo->subtype, "related") ||
!strcasecmp(mimeinfo->subtype, "mixed"))) {
for (; mimeinfo; mimeinfo = procmime_mimeinfo_next(mimeinfo)) {
break;
}
if (mimeinfo->type == MIMETYPE_TEXT &&
- !strcasecmp(mimeinfo->subtype, "html")) {
- /* we got it */
+ !strcasecmp(mimeinfo->subtype, "calendar") &&
+ mimeview_has_viewer_for_content_type(messageview->mimeview,
+ "text/calendar")) {
+ mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo);
+ goto done;
+ } else if (mimeinfo->type == MIMETYPE_TEXT &&
+ !strcasecmp(mimeinfo->subtype, "html") &&
+ prefs_common.promote_html_part) {
mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo);
goto done;
}
/* if we now have a multipart/alternative part (possibly inside a
* multipart/{related,mixed} part, look for an HTML part inside */
- if (prefs_common.promote_html_part && mimeinfo &&
- mimeinfo->type == MIMETYPE_MULTIPART &&
+ if (mimeinfo && mimeinfo->type == MIMETYPE_MULTIPART &&
!strcasecmp(mimeinfo->subtype, "alternative")) {
for (; mimeinfo; mimeinfo = procmime_mimeinfo_next(mimeinfo)) {
if (mimeinfo->node->parent != alt_parent->node) {
continue;
}
if (mimeinfo->type == MIMETYPE_TEXT &&
- !strcasecmp(mimeinfo->subtype, "html")) {
- /* we got it */
+ !strcasecmp(mimeinfo->subtype, "calendar") &&
+ mimeview_has_viewer_for_content_type(messageview->mimeview,
+ "text/calendar")) {
+ mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo);
+ goto done;
+ } else if (mimeinfo->type == MIMETYPE_TEXT &&
+ !strcasecmp(mimeinfo->subtype, "html") &&
+ prefs_common.promote_html_part) {
mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo);
goto done;
}