[PATCH 6/7] go: Bind notmuch_database_find_message_by_filename
--- 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
[PATCH 6/7] go: Bind notmuch_database_find_message_by_filename
--- 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 ___ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch