aboutsummaryrefslogtreecommitdiffhomepage
path: root/bindings/go/pkg/notmuch.go
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/go/pkg/notmuch.go')
-rw-r--r--bindings/go/pkg/notmuch.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/bindings/go/pkg/notmuch.go b/bindings/go/pkg/notmuch.go
index d32901d4..de9de23c 100644
--- a/bindings/go/pkg/notmuch.go
+++ b/bindings/go/pkg/notmuch.go
@@ -306,20 +306,21 @@ func (self *Database) RemoveMessage(fname string) Status {
* * An out-of-memory situation occurs
* * A Xapian exception occurs
*/
-func (self *Database) FindMessage(message_id string) *Message {
+func (self *Database) FindMessage(message_id string) (*Message, Status) {
var c_msg_id *C.char = C.CString(message_id)
defer C.free(unsafe.Pointer(c_msg_id))
if c_msg_id == nil {
- return nil
+ return nil, STATUS_OUT_OF_MEMORY
}
- msg := C.notmuch_database_find_message(self.db, c_msg_id)
- if msg == nil {
- return nil
+ msg := &Message{message:nil}
+ st := Status(C.notmuch_database_find_message(self.db, c_msg_id, &msg.message))
+ if st != STATUS_SUCCESS {
+ return nil, st
}
- return &Message{message:msg}
+ return msg, st
}
/* Return a list of all tags found in the database.