From ad784f38ce30d39b058325baf050eb784fb9a02e Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 19 Oct 2009 23:08:49 -0700 Subject: notmuch: Ignore files that don't look like email messages. This is helpful for things like indexes that other mail programs may have left around. It also means we can make the initial instructions much easier, (the user need not worry about moving away auxiliary files from some other email program). --- database.cc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'database.cc') diff --git a/database.cc b/database.cc index efc38762..70f80f9f 100644 --- a/database.cc +++ b/database.cc @@ -479,6 +479,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch, GPtrArray *parents, *thread_ids; const char *refs, *in_reply_to, *date, *header; + const char *from, *to, *subject; char *message_id; time_t time_value; @@ -487,10 +488,12 @@ notmuch_database_add_message (notmuch_database_t *notmuch, message = notmuch_message_open (filename); notmuch_message_restrict_headers (message, - "references", + "date", + "from", "in-reply-to", "message-id", - "date", + "references", + "subject", (char *) NULL); try { @@ -567,7 +570,19 @@ notmuch_database_add_message (notmuch_database_t *notmuch, doc.add_value (NOTMUCH_VALUE_DATE, Xapian::sortable_serialise (time_value)); - db->add_document (doc); + from = notmuch_message_get_header (message, "from"); + subject = notmuch_message_get_header (message, "subject"); + to = notmuch_message_get_header (message, "to"); + + if (from == NULL && + subject == NULL && + to == NULL) + { + notmuch_message_close (message); + return NOTMUCH_STATUS_FILE_NOT_EMAIL; + } else { + db->add_document (doc); + } } catch (const Xapian::Error &error) { fprintf (stderr, "A Xapian exception occurred: %s.\n", error.get_msg().c_str()); -- cgit v1.2.3