SET_FILTER_KEY("header \"List-Id\"", H_LIST_ID);
extract_list_id_str(*key);
} else if (hentry[H_X_SEQUENCE].body != NULL) {
- guchar *p;
+ gchar *p;
SET_FILTER_KEY("X-Sequence", H_X_SEQUENCE);
p = *key;
while (*p != '\0') {
- while (*p != '\0' && !isspace(*p)) p++;
- while (isspace(*p)) p++;
- if (isdigit(*p)) {
+ while (*p != '\0' && !g_ascii_isspace(*p)) p++;
+ while (g_ascii_isspace(*p)) p++;
+ if (g_ascii_isdigit(*p)) {
*p = '\0';
break;
}
GList *cur;
for (cur = folder_get_list(); cur != NULL; cur = cur->next) {
- trash = FOLDER(cur->data)->trash;
+ Folder *folder = FOLDER(cur->data);
+ trash = folder->trash;
procmsg_empty_trash(trash);
+ if (folder->account && folder->account->set_trash_folder &&
+ folder_find_item_from_identifier(folder->account->trash_folder))
+ procmsg_empty_trash(
+ folder_find_item_from_identifier(folder->account->trash_folder));
}
}
if((filtering_rules != NULL) &&
filter_message_by_msginfo(filtering_rules, msginfo))
return TRUE;
+
+ hooks_invoke(MAIL_POSTFILTERING_HOOKLIST, msginfo);
return FALSE;
}
mimeinfo->content = MIMECONTENT_FILE;
mimeinfo->data.filename = g_strdup(tmpfile);
g_free(tmpfile);
- }
-
- tmp_msginfo = procheader_parse_file(mimeinfo->data.filename,
- flags, TRUE, FALSE);
-
- if (tmp_msginfo != NULL) {
- tmp_msginfo->folder = src_msginfo->folder;
- tmp_msginfo->plaintext_file = g_strdup(mimeinfo->data.filename);
+ tmp_msginfo = procheader_parse_file(mimeinfo->data.filename,
+ flags, TRUE, FALSE);
+ if (tmp_msginfo != NULL) {
+ tmp_msginfo->folder = src_msginfo->folder;
+ tmp_msginfo->plaintext_file = g_strdup(mimeinfo->data.filename);
+ } else {
+ g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
+ }
} else {
- g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
+ gchar *tmpfile = get_tmp_file();
+ FILE *fp = fopen(tmpfile, "wb");
+ if (fp && procmime_write_message_rfc822(mimeinfo, fp) >= 0) {
+ tmp_msginfo = procheader_parse_file(
+ tmpfile, flags, TRUE, FALSE);
+ }
+ if (fp)
+ fclose(fp);
+ if (tmp_msginfo != NULL) {
+ tmp_msginfo->folder = src_msginfo->folder;
+ tmp_msginfo->plaintext_file = g_strdup(tmpfile);
+ } else {
+ g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
+ }
+ g_free(tmpfile);
+
}
return tmp_msginfo;