X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fmessage.cc;h=82e8fce7edca3953a6503b5d2f5e7e76208c5200;hb=d807e28f43579ecc91aa40ae3e42760991c2f810;hp=3f5334239e0839d5d0bcae3595e4e28b7f1b5280;hpb=6ca6c089e9df7affe6bee0392197509a24ab2546;p=notmuch diff --git a/lib/message.cc b/lib/message.cc index 3f533423..82e8fce7 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -385,22 +385,17 @@ notmuch_message_get_replies (notmuch_message_t *message) return _notmuch_messages_create (message->replies); } -/* Set the filename for 'message' to 'filename'. - * - * XXX: We should still figure out if we think it's important to store - * multiple filenames for email messages with identical message IDs. +/* Add an additional 'filename' for 'message'. * * This change will not be reflected in the database until the next * call to _notmuch_message_set_sync. */ notmuch_status_t -_notmuch_message_set_filename (notmuch_message_t *message, +_notmuch_message_add_filename (notmuch_message_t *message, const char *filename) { - const char *relative, *directory, *basename; - char *term; - Xapian::docid directory_id; notmuch_status_t status; void *local = talloc_new (message); + char *direntry; if (message->filename) { talloc_free (message->filename); @@ -410,22 +405,13 @@ _notmuch_message_set_filename (notmuch_message_t *message, if (filename == NULL) INTERNAL_ERROR ("Message filename cannot be NULL."); - relative = _notmuch_database_relative_path (message->notmuch, filename); - - status = _notmuch_database_split_path (local, relative, - &directory, &basename); - if (status) - return status; - - status = _notmuch_database_find_directory_id (message->notmuch, directory, - &directory_id); + status = _notmuch_database_filename_to_direntry (local, + message->notmuch, + filename, &direntry); if (status) return status; - term = talloc_asprintf (local, "%s%u:%s", - _find_prefix ("direntry"), directory_id, basename); - - message->doc.add_term (term); + _notmuch_message_add_term (message, "file-direntry", direntry); talloc_free (local); @@ -435,7 +421,7 @@ _notmuch_message_set_filename (notmuch_message_t *message, const char * notmuch_message_get_filename (notmuch_message_t *message) { - const char *prefix = _find_prefix ("direntry"); + const char *prefix = _find_prefix ("file-direntry"); int prefix_len = strlen (prefix); Xapian::TermIterator i; char *direntry, *colon;