Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id BD926431FC2 for ; Tue, 24 Nov 2009 20:55:20 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cXCnpuGYmDE3 for ; Tue, 24 Nov 2009 20:55:18 -0800 (PST) Received: from tau.jukie.net (tau.jukie.net [216.239.93.128]) by olra.theworths.org (Postfix) with ESMTP id 67DE7431FBC for ; Tue, 24 Nov 2009 20:55:18 -0800 (PST) Received: from localhost.localdomain (oxygen.jukie.net [10.10.10.8]) by tau.jukie.net (Postfix) with ESMTP id D1993C00F84; Tue, 24 Nov 2009 23:55:17 -0500 (EST) From: Bart Trojanowski To: notmuch@notmuchmail.org Date: Tue, 24 Nov 2009 23:54:33 -0500 Message-Id: <1259124875-28212-2-git-send-email-bart@jukie.net> X-Mailer: git-send-email 1.6.4.4.2.gc2f148 In-Reply-To: <1259124875-28212-1-git-send-email-bart@jukie.net> References: <1259124875-28212-1-git-send-email-bart@jukie.net> Cc: Bart Trojanowski Subject: [notmuch] [PATCH 1/3] message: add flags to notmuch_message_t X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Nov 2009 04:55:21 -0000 This patch allows for different flags, internal to notmuch, to be set on a message object. The patch does not define any such flags, just the facilities to manage these flags. Signed-off-by: Bart Trojanowski --- lib/message.cc | 19 +++++++++++++++++++ lib/notmuch.h | 14 ++++++++++++++ 2 files changed, 33 insertions(+), 0 deletions(-) diff --git a/lib/message.cc b/lib/message.cc index 1e325e2..e0834f1 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -37,6 +37,7 @@ struct _notmuch_message { char *filename; notmuch_message_file_t *message_file; notmuch_message_list_t *replies; + unsigned long flags; Xapian::Document doc; }; @@ -108,6 +109,7 @@ _notmuch_message_create (const void *talloc_owner, message->doc_id = doc_id; message->frozen = 0; + message->flags = 0; /* Each of these will be lazily created as needed. */ message->message_id = NULL; @@ -445,6 +447,23 @@ notmuch_message_get_filename (notmuch_message_t *message) return message->filename; } +notmuch_bool_t +notmuch_message_get_flag (notmuch_message_t *message, + notmuch_message_flag_t flag) +{ + return message->flags & (1 << flag); +} + +void +notmuch_message_set_flag (notmuch_message_t *message, + notmuch_message_flag_t flag, notmuch_bool_t enable) +{ + if (enable) + message->flags |= (1 << flag); + else + message->flags &= ~(1 << flag); +} + time_t notmuch_message_get_date (notmuch_message_t *message) { diff --git a/lib/notmuch.h b/lib/notmuch.h index 8bba442..c232c58 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -684,6 +684,20 @@ notmuch_message_get_replies (notmuch_message_t *message); const char * notmuch_message_get_filename (notmuch_message_t *message); +/* Message flags */ +typedef enum _notmuch_message_flag { +} notmuch_message_flag_t; + +/* Get a value of a flag for the email corresponding to 'message'. */ +notmuch_bool_t +notmuch_message_get_flag (notmuch_message_t *message, + notmuch_message_flag_t flag); + +/* Set a value of a flag for the email corresponding to 'message'. */ +void +notmuch_message_set_flag (notmuch_message_t *message, + notmuch_message_flag_t flag, notmuch_bool_t value); + /* Get the date of 'message' as a time_t value. * * For the original textual representation of the Date header from the -- 1.6.4.4.2.gc2f148