relation = g_relation_new(2);
g_relation_index(relation, 0, g_direct_hash, g_direct_equal);
- folder_item_set_batch(item, TRUE);
if ((ret = item->folder->klass->get_flags(
item->folder, item, msglist, relation)) == 0) {
GTuples *tuples;
gboolean skip;
folder_item_update_freeze();
+ folder_item_set_batch(item, TRUE);
for (cur = msglist; cur != NULL; cur = g_slist_next(cur)) {
msginfo = (MsgInfo *) cur->data;
~permflags & msginfo->flags.perm_flags, 0);
}
}
+ folder_item_set_batch(item, FALSE);
folder_item_update_thaw();
}
- folder_item_set_batch(item, FALSE);
g_relation_destroy(relation);
return ret;
if (!MSG_IS_IGNORE_THREAD(msginfo->flags) && procmsg_msg_has_flagged_parent(msginfo, MSG_IGNORE_THREAD)) {
procmsg_msginfo_change_flags(msginfo, MSG_IGNORE_THREAD, 0, MSG_NEW | MSG_UNREAD, 0);
}
+ if (!MSG_IS_WATCH_THREAD(msginfo->flags) && procmsg_msg_has_flagged_parent(msginfo, MSG_WATCH_THREAD)) {
+ procmsg_msginfo_set_flags(msginfo, MSG_WATCH_THREAD, 0);
+ }
if(prefs_common.thread_by_subject && !msginfo->inreplyto &&
!msginfo->references && !MSG_IS_IGNORE_THREAD(msginfo->flags) &&
(parent_msginfo = subject_table_lookup(subject_table, msginfo->subject)))
if ((folder_has_parent_of_type(dest, F_QUEUE)) ||
(folder_has_parent_of_type(dest, F_DRAFT)))
- while (fgets(buf, sizeof(buf), fp) != NULL)
+ while (fgets(buf, sizeof(buf), fp) != NULL) {
+ /* new way */
+ if ((!strncmp(buf, "X-Claws-End-Special-Headers: 1",
+ strlen("X-Claws-End-Special-Headers:"))) ||
+ (!strncmp(buf, "X-Sylpheed-End-Special-Headers: 1",
+ strlen("X-Sylpheed-End-Special-Headers:"))))
+ break;
+ /* old way */
if (buf[0] == '\r' || buf[0] == '\n') break;
+ /* from other mailers */
+ if (!strncmp(buf, "Date: ", 6)
+ || !strncmp(buf, "To: ", 4)
+ || !strncmp(buf, "From: ", 6)
+ || !strncmp(buf, "Subject: ", 9)) {
+ rewind(fp);
+ break;
+ }
+ }
procheader_get_header_fields(fp, hentry);
+ debug_print("looking for %s\n", hentry[0].body);
if (hentry[0].body) {
extract_parenthesis(hentry[0].body, '<', '>');
remove_space(hentry[0].body);
if (procmsg_msg_has_flagged_parent(dest, MSG_IGNORE_THREAD))
perm_flags |= MSG_IGNORE_THREAD;
+ if (procmsg_msg_has_flagged_parent(dest, MSG_WATCH_THREAD))
+ perm_flags |= MSG_WATCH_THREAD;
+
/* Unset tmp flags that should not be copied */
tmp_flags &= ~(MSG_MOVE | MSG_COPY | MSG_MOVE_DONE);
folderscan = TRUE;
}
num = folder_item_get_msg_num_by_file(dest, fileinfo->file);
+ debug_print("got num %d\n", num);
}
if (num > lastnum)
identifier = folder_item_get_identifier(item);
g_return_val_if_fail(identifier != NULL, NULL);
-
+
+#ifdef G_OS_WIN32
+ while (strchr(identifier, '/'))
+ *strchr(identifier, '/') = '\\';
+#endif
+
path = g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S,
"tagsdb", G_DIR_SEPARATOR_S,
identifier, NULL);
/* apply post global rules */
filter_message_by_msginfo(post_global_processing, msginfo, NULL,
FILTERING_POST_PROCESSING, NULL);
- if (curmsg % 10 == 0)
+ if (curmsg % 1000 == 0)
GTK_EVENTS_FLUSH();
}
prefs_common.apply_per_account_filtering_rules = last_apply_per_account;