X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Fcorpus%2F10;fp=test%2Fcorpus%2F10;h=4211d7348b3b8fce48045ff4fa996d415e7f8522;hp=0000000000000000000000000000000000000000;hb=d805866ec502540e80b6209bfb6a54fd24ff4458;hpb=ba9f9efc9a8ba9d6e509d4041a66e9a2d31171b1 diff --git a/test/corpus/10 b/test/corpus/10 new file mode 100644 index 00000000..4211d734 --- /dev/null +++ b/test/corpus/10 @@ -0,0 +1,54 @@ +From: "Mikhail Gusarov" +To: notmuch@notmuchmail.org +Date: Wed, 18 Nov 2009 02:51:18 +0600 +Subject: [notmuch] [PATCH] Handle rename of message file +Message-ID: <1258491078-29658-1-git-send-email-dottedmag@dottedmag.net> + +If message file has been renamed, just update filename in the DB. + +Signed-off-by: Mikhail Gusarov +--- + lib/database.cc | 21 ++++++++++++--------- + 1 files changed, 12 insertions(+), 9 deletions(-) + +diff --git a/lib/database.cc b/lib/database.cc +index 3c8d626..c4eb8b6 100644 +--- a/lib/database.cc ++++ b/lib/database.cc +@@ -925,20 +925,23 @@ notmuch_database_add_message (notmuch_database_t *notmuch, + if (private_status == NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND) { + _notmuch_message_set_filename (message, filename); + _notmuch_message_add_term (message, "type", "mail"); ++ ++ ret = _notmuch_database_link_message (notmuch, message, message_file); ++ if (ret) ++ goto DONE; ++ ++ date = notmuch_message_file_get_header (message_file, "date"); ++ _notmuch_message_set_date (message, date); ++ ++ _notmuch_message_index_file (message, filename); ++ } else if (strcmp(notmuch_message_get_filename(message), filename)) { ++ /* Message file has been moved/renamed */ ++ _notmuch_message_set_filename (message, filename); + } else { + ret = NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID; + goto DONE; + } + +- ret = _notmuch_database_link_message (notmuch, message, message_file); +- if (ret) +- goto DONE; +- +- date = notmuch_message_file_get_header (message_file, "date"); +- _notmuch_message_set_date (message, date); +- +- _notmuch_message_index_file (message, filename); +- + _notmuch_message_sync (message); + } catch (const Xapian::Error &error) { + fprintf (stderr, "A Xapian exception occurred: %s.\n", +-- +1.6.3.3 + +