X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fmessage.cc;h=a4b090ba698f8867e350220f45e453cad753538f;hb=321ab1bd6bb2e3877c59cad412e96d9cb2cbaf15;hp=b9f998c5f7e9f6bd7c75f01e8bf337fdb15add14;hpb=d136a1e2cffe954d83495c0f8e45d5ce97583e90;p=notmuch diff --git a/lib/message.cc b/lib/message.cc index b9f998c5..a4b090ba 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -21,6 +21,8 @@ #include "notmuch-private.h" #include "database-private.h" +#include + #include #include @@ -33,6 +35,8 @@ struct _notmuch_message { char *thread_id; char *filename; notmuch_message_file_t *message_file; + notmuch_message_list_t *replies; + Xapian::Document doc; }; @@ -110,6 +114,13 @@ _notmuch_message_create (const void *talloc_owner, message->filename = NULL; message->message_file = NULL; + message->replies = _notmuch_message_list_create (message); + if (unlikely (message->replies == NULL)) { + if (status) + *status = NOTMUCH_PRIVATE_STATUS_OUT_OF_MEMORY; + return NULL; + } + /* This is C++'s creepy "placement new", which is really just an * ugly way to call a constructor for a pre-allocated object. So * it's really not an error to not be checking for OUT_OF_MEMORY @@ -305,6 +316,19 @@ notmuch_message_get_thread_id (notmuch_message_t *message) return message->thread_id; } +void +_notmuch_message_add_reply (notmuch_message_t *message, + notmuch_message_node_t *reply) +{ + _notmuch_message_list_append (message->replies, reply); +} + +notmuch_messages_t * +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