[PATCH] go: update bindings to compile with notmuch 0.25

Kamil Klimkiewicz miglanz at gmail.com
Tue Aug 8 02:58:41 PDT 2017


Attached is a simple patch that fixes go bindings to compile with
notmuch 0.25. Please note it doesn't change the go API, ie. go methods
*don't* return Status values. I am not sure you also want to break go
API with the update. If you do, I can update the patch to return
go-idiomatic (*Messages, Status) tuple.

---
 contrib/go/src/notmuch/notmuch.go | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/contrib/go/src/notmuch/notmuch.go
b/contrib/go/src/notmuch/notmuch.go
index 2d684311..936f927c 100644
--- a/contrib/go/src/notmuch/notmuch.go
+++ b/contrib/go/src/notmuch/notmuch.go
@@ -455,11 +455,12 @@ func (self *Query) GetSort() Sort {
  * If a Xapian exception occurs this function will return NULL.
  */
 func (self *Query) SearchThreads() *Threads {
-       threads := C.notmuch_query_search_threads(self.query)
-       if threads == nil {
+       var threads Threads
+       C.notmuch_query_search_threads(self.query, &threads.threads)
+       if threads.threads == nil {
                return nil
        }
-       return &Threads{threads: threads}
+       return &threads
 }

 /* Execute a query for messages, returning a notmuch_messages_t object
@@ -501,11 +502,12 @@ func (self *Query) SearchThreads() *Threads {
  * If a Xapian exception occurs this function will return NULL.
  */
 func (self *Query) SearchMessages() *Messages {
-       msgs := C.notmuch_query_search_messages(self.query)
-       if msgs == nil {
+       var messages Messages
+       C.notmuch_query_search_messages(self.query, &messages.messages)
+       if messages.messages == nil {
                return nil
        }
-       return &Messages{messages: msgs}
+       return &messages
 }

 /* Destroy a notmuch_query_t along with any associated resources.
@@ -531,7 +533,9 @@ func (self *Query) Destroy() {
  * printing a message).
  */
 func (self *Query) CountMessages() uint {
-       return uint(C.notmuch_query_count_messages(self.query))
+       var count C.uint
+       C.notmuch_query_count_messages(self.query, &count)
+       return uint(count)
 }

 /* Is the given 'threads' iterator pointing at a valid thread.
-- 
2.14.0


More information about the notmuch mailing list