[PATCH 6/7] go: Bind notmuch_database_find_message_by_filename

Adrien Bustany adrien at bustany.org
Wed Jul 18 11:34:34 PDT 2012


---
 bindings/go/src/notmuch/notmuch.go |   39 ++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/bindings/go/src/notmuch/notmuch.go b/bindings/go/src/notmuch/notmuch.go
index 384d5a5..be4cb8c 100644
--- a/bindings/go/src/notmuch/notmuch.go
+++ b/bindings/go/src/notmuch/notmuch.go
@@ -453,6 +453,45 @@ func (self *Database) FindMessage(message_id string) (*Message, Status) {
 	return createMessage(msg, nil), st
 }
 
+/* Find a message with the given filename.
+ *
+ * If the database contains a message with the given filename then, on
+ * successful return (NOTMUCH_STATUS_SUCCESS) '*message' will be initialized to
+ * a message object. The caller should call notmuch_message_destroy when done
+ * with the message.
+ *
+ * On any failure or when the message is not found, this function initializes
+ * '*message' to NULL. This means, when NOTMUCH_STATUS_SUCCESS is returned, the
+ * caller is supposed to check '*message' for NULL to find out whether the
+ * message with the given filename is found.
+ *
+ * Return value:
+ *
+ * NOTMUCH_STATUS_SUCCESS: Successful return, check '*message'
+ *
+ * NOTMUCH_STATUS_NULL_POINTER: The given 'message' argument is NULL
+ *
+ * NOTMUCH_STATUS_OUT_OF_MEMORY: Out of memory, creating the message object
+ *
+ * NOTMUCH_STATUS_XAPIAN_EXCEPTION: A Xapian exception occurred
+ */
+func (self *Database) FindMessageByFilename(filename string) (*Message, Status) {
+
+	var c_msg_filename *C.char = C.CString(filename)
+	defer C.free(unsafe.Pointer(c_msg_filename))
+
+	if c_msg_filename == nil {
+		return nil, STATUS_OUT_OF_MEMORY
+	}
+
+	var msg *C.notmuch_message_t
+	st := Status(C.notmuch_database_find_message_by_filename(self.db, c_msg_filename, &msg))
+	if st != STATUS_SUCCESS {
+		return nil, st
+	}
+	return createMessage(msg, nil), st
+}
+
 /* Return a list of all tags found in the database.
  *
  * This function creates a list of all tags found in the database. The
-- 
1.7.7.6



More information about the notmuch mailing list