aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorÓscar Nájera <hi@oscarnajera.com>2022-11-28 17:50:11 +0100
committerÓscar Nájera <hi@oscarnajera.com>2022-11-28 17:50:11 +0100
commit7ed04b079df07d77ab22a46e2cb9e505402fe59c (patch)
tree3bbe7564730cf793008f56b082031f26a3aa8ac4 /lib
parent5168eaf3c7d1808625a3918b0f133bdf26d9c7ec (diff)
downloaddotfiles-7ed04b079df07d77ab22a46e2cb9e505402fe59c.tar.gz
dotfiles-7ed04b079df07d77ab22a46e2cb9e505402fe59c.tar.bz2
dotfiles-7ed04b079df07d77ab22a46e2cb9e505402fe59c.zip
Update notmuch guile bindings
Use a makefile to remember how to do it
Diffstat (limited to 'lib')
-rw-r--r--lib/guile/ffi/notmuch.ffi5
-rw-r--r--lib/guile/ffi/notmuch.scm661
-rw-r--r--lib/guile/makefile16
3 files changed, 623 insertions, 59 deletions
diff --git a/lib/guile/ffi/notmuch.ffi b/lib/guile/ffi/notmuch.ffi
index 1f8bfce..e404510 100644
--- a/lib/guile/ffi/notmuch.ffi
+++ b/lib/guile/ffi/notmuch.ffi
@@ -1,4 +1,5 @@
+;; -*- mode: scheme; -*-
(define-ffi-module (ffi notmuch)
- ; #:pkg-config "notmuch"
- #:library '("libnotmuch")
+ ;; #:pkg-config "notmuch"
+ #:library '("libnotmuch")
#:include '("notmuch.h"))
diff --git a/lib/guile/ffi/notmuch.scm b/lib/guile/ffi/notmuch.scm
index 42c3ab3..4c02592 100644
--- a/lib/guile/ffi/notmuch.scm
+++ b/lib/guile/ffi/notmuch.scm
@@ -8,17 +8,11 @@
(define ffi-notmuch-llibs
(delay (list (dynamic-link "libnotmuch"))))
-(cond-expand
- (guile-2.2)
- (guile-2
- (define intptr_t long)
- (define uintptr_t unsigned-long)))
-
;; typedef int notmuch_bool_t;
(define-public notmuch_bool_t-desc int)
-;; typedef enum _notmuch_status {
+;; typedef enum {
;; NOTMUCH_STATUS_SUCCESS = 0,
;; NOTMUCH_STATUS_OUT_OF_MEMORY,
;; NOTMUCH_STATUS_READ_ONLY_DATABASE,
@@ -38,6 +32,12 @@
;; NOTMUCH_STATUS_MALFORMED_CRYPTO_PROTOCOL,
;; NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION,
;; NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL,
+;; NOTMUCH_STATUS_NO_CONFIG,
+;; NOTMUCH_STATUS_NO_DATABASE,
+;; NOTMUCH_STATUS_DATABASE_EXISTS,
+;; NOTMUCH_STATUS_BAD_QUERY_SYNTAX,
+;; NOTMUCH_STATUS_NO_MAIL_ROOT,
+;; NOTMUCH_STATUS_CLOSED_DATABASE,
;; NOTMUCH_STATUS_LAST_STATUS,
;; } notmuch_status_t;
(define notmuch_status_t-enum-nvl
@@ -62,7 +62,13 @@
.
17)
(NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL . 18)
- (NOTMUCH_STATUS_LAST_STATUS . 19))
+ (NOTMUCH_STATUS_NO_CONFIG . 19)
+ (NOTMUCH_STATUS_NO_DATABASE . 20)
+ (NOTMUCH_STATUS_DATABASE_EXISTS . 21)
+ (NOTMUCH_STATUS_BAD_QUERY_SYNTAX . 22)
+ (NOTMUCH_STATUS_NO_MAIL_ROOT . 23)
+ (NOTMUCH_STATUS_CLOSED_DATABASE . 24)
+ (NOTMUCH_STATUS_LAST_STATUS . 25))
)
(define notmuch_status_t-enum-vnl
(map (lambda (pair) (cons (cdr pair) (car pair)))
@@ -75,31 +81,6 @@
(else (error "bad arg"))))
(define-public (wrap-notmuch_status_t v)
(assq-ref notmuch_status_t-enum-vnl v))
-(define-public unwrap-enum-_notmuch_status unwrap-notmuch_status_t)
-(define-public wrap-enum-_notmuch_status wrap-notmuch_status_t)
-
-;; enum _notmuch_status {
-;; NOTMUCH_STATUS_SUCCESS = 0,
-;; NOTMUCH_STATUS_OUT_OF_MEMORY,
-;; NOTMUCH_STATUS_READ_ONLY_DATABASE,
-;; NOTMUCH_STATUS_XAPIAN_EXCEPTION,
-;; NOTMUCH_STATUS_FILE_ERROR,
-;; NOTMUCH_STATUS_FILE_NOT_EMAIL,
-;; NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID,
-;; NOTMUCH_STATUS_NULL_POINTER,
-;; NOTMUCH_STATUS_TAG_TOO_LONG,
-;; NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW,
-;; NOTMUCH_STATUS_UNBALANCED_ATOMIC,
-;; NOTMUCH_STATUS_UNSUPPORTED_OPERATION,
-;; NOTMUCH_STATUS_UPGRADE_REQUIRED,
-;; NOTMUCH_STATUS_PATH_ERROR,
-;; NOTMUCH_STATUS_IGNORED,
-;; NOTMUCH_STATUS_ILLEGAL_ARGUMENT,
-;; NOTMUCH_STATUS_MALFORMED_CRYPTO_PROTOCOL,
-;; NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION,
-;; NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL,
-;; NOTMUCH_STATUS_LAST_STATUS,
-;; };
;; const char *notmuch_status_to_string(notmuch_status_t status);
(define notmuch_status_to_string
@@ -215,6 +196,28 @@
(export notmuch_config_list_t* notmuch_config_list_t*?
make-notmuch_config_list_t*)
+;; typedef struct _notmuch_config_values notmuch_config_values_t;
+(define-public notmuch_config_values_t-desc 'void)
+(define-fh-type-alias notmuch_config_values_t fh-void)
+(define-public notmuch_config_values_t? fh-void?)
+(define-public make-notmuch_config_values_t make-fh-void)
+(define-public notmuch_config_values_t*-desc (fh:pointer notmuch_config_values_t-desc))
+(define-fh-pointer-type notmuch_config_values_t* notmuch_config_values_t*-desc
+ notmuch_config_values_t*? make-notmuch_config_values_t*)
+(export notmuch_config_values_t* notmuch_config_values_t*?
+ make-notmuch_config_values_t*)
+
+;; typedef struct _notmuch_config_pairs notmuch_config_pairs_t;
+(define-public notmuch_config_pairs_t-desc 'void)
+(define-fh-type-alias notmuch_config_pairs_t fh-void)
+(define-public notmuch_config_pairs_t? fh-void?)
+(define-public make-notmuch_config_pairs_t make-fh-void)
+(define-public notmuch_config_pairs_t*-desc (fh:pointer notmuch_config_pairs_t-desc))
+(define-fh-pointer-type notmuch_config_pairs_t* notmuch_config_pairs_t*-desc
+ notmuch_config_pairs_t*? make-notmuch_config_pairs_t*)
+(export notmuch_config_pairs_t* notmuch_config_pairs_t*?
+ make-notmuch_config_pairs_t*)
+
;; typedef struct _notmuch_indexopts notmuch_indexopts_t;
(define-public notmuch_indexopts_t-desc 'void)
(define-fh-type-alias notmuch_indexopts_t fh-void)
@@ -326,6 +329,109 @@
~error_message))))))
(export notmuch_database_open_verbose)
+;; notmuch_status_t notmuch_database_open_with_config(const char *database_path
+;; , notmuch_database_mode_t mode, const char *config_path, const char *
+;; profile, notmuch_database_t **database, char **error_message);
+(define notmuch_database_open_with_config
+ (let ((~notmuch_database_open_with_config
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_database_open_with_config"
+ (list ffi-void*
+ ffi:int
+ ffi-void*
+ ffi-void*
+ ffi-void*
+ ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (database_path
+ mode
+ config_path
+ profile
+ database
+ error_message)
+ (let ((~database_path (unwrap~pointer database_path))
+ (~mode (unwrap-notmuch_database_mode_t mode))
+ (~config_path (unwrap~pointer config_path))
+ (~profile (unwrap~pointer profile))
+ (~database (unwrap~pointer database))
+ (~error_message (unwrap~pointer error_message)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_database_open_with_config)
+ ~database_path
+ ~mode
+ ~config_path
+ ~profile
+ ~database
+ ~error_message))))))
+(export notmuch_database_open_with_config)
+
+;; notmuch_status_t notmuch_database_load_config(const char *database_path,
+;; const char *config_path, const char *profile, notmuch_database_t **
+;; database, char **error_message);
+(define notmuch_database_load_config
+ (let ((~notmuch_database_load_config
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_database_load_config"
+ (list ffi-void*
+ ffi-void*
+ ffi-void*
+ ffi-void*
+ ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (database_path
+ config_path
+ profile
+ database
+ error_message)
+ (let ((~database_path (unwrap~pointer database_path))
+ (~config_path (unwrap~pointer config_path))
+ (~profile (unwrap~pointer profile))
+ (~database (unwrap~pointer database))
+ (~error_message (unwrap~pointer error_message)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_database_load_config)
+ ~database_path
+ ~config_path
+ ~profile
+ ~database
+ ~error_message))))))
+(export notmuch_database_load_config)
+
+;; notmuch_status_t notmuch_database_create_with_config(const char *
+;; database_path, const char *config_path, const char *profile,
+;; notmuch_database_t **database, char **error_message);
+(define notmuch_database_create_with_config
+ (let ((~notmuch_database_create_with_config
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_database_create_with_config"
+ (list ffi-void*
+ ffi-void*
+ ffi-void*
+ ffi-void*
+ ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (database_path
+ config_path
+ profile
+ database
+ error_message)
+ (let ((~database_path (unwrap~pointer database_path))
+ (~config_path (unwrap~pointer config_path))
+ (~profile (unwrap~pointer profile))
+ (~database (unwrap~pointer database))
+ (~error_message (unwrap~pointer error_message)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_database_create_with_config)
+ ~database_path
+ ~config_path
+ ~profile
+ ~database
+ ~error_message))))))
+(export notmuch_database_create_with_config)
+
;; const char *notmuch_database_status_string(const notmuch_database_t *notmuch
;; );
(define notmuch_database_status_string
@@ -397,6 +503,32 @@
~closure))))))
(export notmuch_database_compact)
+;; notmuch_status_t notmuch_database_compact_db(notmuch_database_t *database,
+;; const char *backup_path, notmuch_compact_status_cb_t status_cb, void *
+;; closure);
+(define notmuch_database_compact_db
+ (let ((~notmuch_database_compact_db
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_database_compact_db"
+ (list ffi-void* ffi-void* ffi-void* ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (database backup_path status_cb closure)
+ (let ((~database
+ ((fht-unwrap notmuch_database_t*) database))
+ (~backup_path (unwrap~pointer backup_path))
+ (~status_cb
+ ((fht-unwrap notmuch_compact_status_cb_t)
+ status_cb))
+ (~closure (unwrap~pointer closure)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_database_compact_db)
+ ~database
+ ~backup_path
+ ~status_cb
+ ~closure))))))
+(export notmuch_database_compact_db)
+
;; notmuch_status_t notmuch_database_destroy(notmuch_database_t *database);
(define notmuch_database_destroy
(let ((~notmuch_database_destroy
@@ -673,6 +805,22 @@
((force ~notmuch_database_get_all_tags) ~db))))))
(export notmuch_database_get_all_tags)
+;; notmuch_status_t notmuch_database_reopen(notmuch_database_t *db,
+;; notmuch_database_mode_t mode);
+(define notmuch_database_reopen
+ (let ((~notmuch_database_reopen
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_database_reopen"
+ (list ffi-void* ffi:int)
+ (force ffi-notmuch-llibs)))))
+ (lambda (db mode)
+ (let ((~db ((fht-unwrap notmuch_database_t*) db))
+ (~mode (unwrap-notmuch_database_mode_t mode)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_database_reopen) ~db ~mode))))))
+(export notmuch_database_reopen)
+
;; notmuch_query_t *notmuch_query_create(notmuch_database_t *database, const
;; char *query_string);
(define notmuch_query_create
@@ -693,6 +841,50 @@
(export notmuch_query_create)
;; typedef enum {
+;; NOTMUCH_QUERY_SYNTAX_XAPIAN,
+;; NOTMUCH_QUERY_SYNTAX_SEXP,
+;; } notmuch_query_syntax_t;
+(define notmuch_query_syntax_t-enum-nvl
+ '((NOTMUCH_QUERY_SYNTAX_XAPIAN . 0)
+ (NOTMUCH_QUERY_SYNTAX_SEXP . 1))
+ )
+(define notmuch_query_syntax_t-enum-vnl
+ (map (lambda (pair) (cons (cdr pair) (car pair)))
+ notmuch_query_syntax_t-enum-nvl))
+(define-public (unwrap-notmuch_query_syntax_t n)
+ (cond
+ ((symbol? n)
+ (or (assq-ref notmuch_query_syntax_t-enum-nvl n) (error "bad arg")))
+ ((integer? n) n)
+ (else (error "bad arg"))))
+(define-public (wrap-notmuch_query_syntax_t v)
+ (assq-ref notmuch_query_syntax_t-enum-vnl v))
+
+;; notmuch_status_t notmuch_query_create_with_syntax(notmuch_database_t *
+;; database, const char *query_string, notmuch_query_syntax_t syntax,
+;; notmuch_query_t **output);
+(define notmuch_query_create_with_syntax
+ (let ((~notmuch_query_create_with_syntax
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_query_create_with_syntax"
+ (list ffi-void* ffi-void* ffi:int ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (database query_string syntax output)
+ (let ((~database
+ ((fht-unwrap notmuch_database_t*) database))
+ (~query_string (unwrap~pointer query_string))
+ (~syntax (unwrap-notmuch_query_syntax_t syntax))
+ (~output (unwrap~pointer output)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_query_create_with_syntax)
+ ~database
+ ~query_string
+ ~syntax
+ ~output))))))
+(export notmuch_query_create_with_syntax)
+
+;; typedef enum {
;; NOTMUCH_SORT_OLDEST_FIRST,
;; NOTMUCH_SORT_NEWEST_FIRST,
;; NOTMUCH_SORT_MESSAGE_ID,
@@ -1409,7 +1601,7 @@
~indexopts))))))
(export notmuch_message_reindex)
-;; typedef enum _notmuch_message_flag {
+;; typedef enum {
;; NOTMUCH_MESSAGE_FLAG_MATCH,
;; NOTMUCH_MESSAGE_FLAG_EXCLUDED,
;; NOTMUCH_MESSAGE_FLAG_GHOST,
@@ -1430,14 +1622,6 @@
(else (error "bad arg"))))
(define-public (wrap-notmuch_message_flag_t v)
(assq-ref notmuch_message_flag_t-enum-vnl v))
-(define-public unwrap-enum-_notmuch_message_flag unwrap-notmuch_message_flag_t)
-(define-public wrap-enum-_notmuch_message_flag wrap-notmuch_message_flag_t)
-
-;; enum _notmuch_message_flag {
-;; NOTMUCH_MESSAGE_FLAG_MATCH,
-;; NOTMUCH_MESSAGE_FLAG_EXCLUDED,
-;; NOTMUCH_MESSAGE_FLAG_GHOST,
-;; };
;; notmuch_bool_t notmuch_message_get_flag(notmuch_message_t *message,
;; notmuch_message_flag_t flag);
@@ -2293,6 +2477,321 @@
~config_list)))))
(export notmuch_config_list_destroy)
+;; typedef enum {
+;; NOTMUCH_CONFIG_FIRST,
+;; NOTMUCH_CONFIG_DATABASE_PATH = NOTMUCH_CONFIG_FIRST,
+;; NOTMUCH_CONFIG_MAIL_ROOT,
+;; NOTMUCH_CONFIG_HOOK_DIR,
+;; NOTMUCH_CONFIG_BACKUP_DIR,
+;; NOTMUCH_CONFIG_EXCLUDE_TAGS,
+;; NOTMUCH_CONFIG_NEW_TAGS,
+;; NOTMUCH_CONFIG_NEW_IGNORE,
+;; NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS,
+;; NOTMUCH_CONFIG_PRIMARY_EMAIL,
+;; NOTMUCH_CONFIG_OTHER_EMAIL,
+;; NOTMUCH_CONFIG_USER_NAME,
+;; NOTMUCH_CONFIG_AUTOCOMMIT,
+;; NOTMUCH_CONFIG_EXTRA_HEADERS,
+;; NOTMUCH_CONFIG_LAST,
+;; } notmuch_config_key_t;
+(define notmuch_config_key_t-enum-nvl
+ '((NOTMUCH_CONFIG_FIRST . 0)
+ (NOTMUCH_CONFIG_DATABASE_PATH . 0)
+ (NOTMUCH_CONFIG_MAIL_ROOT . 1)
+ (NOTMUCH_CONFIG_HOOK_DIR . 2)
+ (NOTMUCH_CONFIG_BACKUP_DIR . 3)
+ (NOTMUCH_CONFIG_EXCLUDE_TAGS . 4)
+ (NOTMUCH_CONFIG_NEW_TAGS . 5)
+ (NOTMUCH_CONFIG_NEW_IGNORE . 6)
+ (NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS . 7)
+ (NOTMUCH_CONFIG_PRIMARY_EMAIL . 8)
+ (NOTMUCH_CONFIG_OTHER_EMAIL . 9)
+ (NOTMUCH_CONFIG_USER_NAME . 10)
+ (NOTMUCH_CONFIG_AUTOCOMMIT . 11)
+ (NOTMUCH_CONFIG_EXTRA_HEADERS . 12)
+ (NOTMUCH_CONFIG_LAST . 13))
+ )
+(define notmuch_config_key_t-enum-vnl
+ (map (lambda (pair) (cons (cdr pair) (car pair)))
+ notmuch_config_key_t-enum-nvl))
+(define-public (unwrap-notmuch_config_key_t n)
+ (cond
+ ((symbol? n)
+ (or (assq-ref notmuch_config_key_t-enum-nvl n) (error "bad arg")))
+ ((integer? n) n)
+ (else (error "bad arg"))))
+(define-public (wrap-notmuch_config_key_t v)
+ (assq-ref notmuch_config_key_t-enum-vnl v))
+
+;; const char *notmuch_config_get(notmuch_database_t *notmuch,
+;; notmuch_config_key_t key);
+(define notmuch_config_get
+ (let ((~notmuch_config_get
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_get"
+ (list ffi-void* ffi:int)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch key)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch))
+ (~key (unwrap-notmuch_config_key_t key)))
+ ((force ~notmuch_config_get) ~notmuch ~key)))))
+(export notmuch_config_get)
+
+;; notmuch_status_t notmuch_config_set(notmuch_database_t *notmuch,
+;; notmuch_config_key_t key, const char *val);
+(define notmuch_config_set
+ (let ((~notmuch_config_set
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_config_set"
+ (list ffi-void* ffi:int ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch key val)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch))
+ (~key (unwrap-notmuch_config_key_t key))
+ (~val (unwrap~pointer val)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_config_set) ~notmuch ~key ~val))))))
+(export notmuch_config_set)
+
+;; notmuch_config_values_t *notmuch_config_get_values(notmuch_database_t *
+;; notmuch, notmuch_config_key_t key);
+(define notmuch_config_get_values
+ (let ((~notmuch_config_get_values
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_get_values"
+ (list ffi-void* ffi:int)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch key)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch))
+ (~key (unwrap-notmuch_config_key_t key)))
+ ((fht-wrap notmuch_config_values_t*)
+ ((force ~notmuch_config_get_values)
+ ~notmuch
+ ~key))))))
+(export notmuch_config_get_values)
+
+;; notmuch_config_values_t *notmuch_config_get_values_string(notmuch_database_t
+;; *notmuch, const char *key);
+(define notmuch_config_get_values_string
+ (let ((~notmuch_config_get_values_string
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_get_values_string"
+ (list ffi-void* ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch key)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch))
+ (~key (unwrap~pointer key)))
+ ((fht-wrap notmuch_config_values_t*)
+ ((force ~notmuch_config_get_values_string)
+ ~notmuch
+ ~key))))))
+(export notmuch_config_get_values_string)
+
+;; notmuch_bool_t notmuch_config_values_valid(notmuch_config_values_t *values);
+;;
+(define notmuch_config_values_valid
+ (let ((~notmuch_config_values_valid
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_config_values_valid"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (values)
+ (let ((~values
+ ((fht-unwrap notmuch_config_values_t*) values)))
+ ((force ~notmuch_config_values_valid) ~values)))))
+(export notmuch_config_values_valid)
+
+;; const char *notmuch_config_values_get(notmuch_config_values_t *values);
+(define notmuch_config_values_get
+ (let ((~notmuch_config_values_get
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_values_get"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (values)
+ (let ((~values
+ ((fht-unwrap notmuch_config_values_t*) values)))
+ ((force ~notmuch_config_values_get) ~values)))))
+(export notmuch_config_values_get)
+
+;; void notmuch_config_values_move_to_next(notmuch_config_values_t *values);
+(define notmuch_config_values_move_to_next
+ (let ((~notmuch_config_values_move_to_next
+ (delay (fh-link-proc
+ ffi:void
+ "notmuch_config_values_move_to_next"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (values)
+ (let ((~values
+ ((fht-unwrap notmuch_config_values_t*) values)))
+ ((force ~notmuch_config_values_move_to_next)
+ ~values)))))
+(export notmuch_config_values_move_to_next)
+
+;; void notmuch_config_values_start(notmuch_config_values_t *values);
+(define notmuch_config_values_start
+ (let ((~notmuch_config_values_start
+ (delay (fh-link-proc
+ ffi:void
+ "notmuch_config_values_start"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (values)
+ (let ((~values
+ ((fht-unwrap notmuch_config_values_t*) values)))
+ ((force ~notmuch_config_values_start) ~values)))))
+(export notmuch_config_values_start)
+
+;; void notmuch_config_values_destroy(notmuch_config_values_t *values);
+(define notmuch_config_values_destroy
+ (let ((~notmuch_config_values_destroy
+ (delay (fh-link-proc
+ ffi:void
+ "notmuch_config_values_destroy"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (values)
+ (let ((~values
+ ((fht-unwrap notmuch_config_values_t*) values)))
+ ((force ~notmuch_config_values_destroy) ~values)))))
+(export notmuch_config_values_destroy)
+
+;; notmuch_config_pairs_t *notmuch_config_get_pairs(notmuch_database_t *notmuch
+;; , const char *prefix);
+(define notmuch_config_get_pairs
+ (let ((~notmuch_config_get_pairs
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_get_pairs"
+ (list ffi-void* ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch prefix)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch))
+ (~prefix (unwrap~pointer prefix)))
+ ((fht-wrap notmuch_config_pairs_t*)
+ ((force ~notmuch_config_get_pairs)
+ ~notmuch
+ ~prefix))))))
+(export notmuch_config_get_pairs)
+
+;; notmuch_bool_t notmuch_config_pairs_valid(notmuch_config_pairs_t *pairs);
+(define notmuch_config_pairs_valid
+ (let ((~notmuch_config_pairs_valid
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_config_pairs_valid"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (pairs)
+ (let ((~pairs
+ ((fht-unwrap notmuch_config_pairs_t*) pairs)))
+ ((force ~notmuch_config_pairs_valid) ~pairs)))))
+(export notmuch_config_pairs_valid)
+
+;; void notmuch_config_pairs_move_to_next(notmuch_config_pairs_t *pairs);
+(define notmuch_config_pairs_move_to_next
+ (let ((~notmuch_config_pairs_move_to_next
+ (delay (fh-link-proc
+ ffi:void
+ "notmuch_config_pairs_move_to_next"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (pairs)
+ (let ((~pairs
+ ((fht-unwrap notmuch_config_pairs_t*) pairs)))
+ ((force ~notmuch_config_pairs_move_to_next)
+ ~pairs)))))
+(export notmuch_config_pairs_move_to_next)
+
+;; const char *notmuch_config_pairs_key(notmuch_config_pairs_t *pairs);
+(define notmuch_config_pairs_key
+ (let ((~notmuch_config_pairs_key
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_pairs_key"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (pairs)
+ (let ((~pairs
+ ((fht-unwrap notmuch_config_pairs_t*) pairs)))
+ ((force ~notmuch_config_pairs_key) ~pairs)))))
+(export notmuch_config_pairs_key)
+
+;; const char *notmuch_config_pairs_value(notmuch_config_pairs_t *pairs);
+(define notmuch_config_pairs_value
+ (let ((~notmuch_config_pairs_value
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_pairs_value"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (pairs)
+ (let ((~pairs
+ ((fht-unwrap notmuch_config_pairs_t*) pairs)))
+ ((force ~notmuch_config_pairs_value) ~pairs)))))
+(export notmuch_config_pairs_value)
+
+;; void notmuch_config_pairs_destroy(notmuch_config_pairs_t *pairs);
+(define notmuch_config_pairs_destroy
+ (let ((~notmuch_config_pairs_destroy
+ (delay (fh-link-proc
+ ffi:void
+ "notmuch_config_pairs_destroy"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (pairs)
+ (let ((~pairs
+ ((fht-unwrap notmuch_config_pairs_t*) pairs)))
+ ((force ~notmuch_config_pairs_destroy) ~pairs)))))
+(export notmuch_config_pairs_destroy)
+
+;; notmuch_status_t notmuch_config_get_bool(notmuch_database_t *notmuch,
+;; notmuch_config_key_t key, notmuch_bool_t *val);
+(define notmuch_config_get_bool
+ (let ((~notmuch_config_get_bool
+ (delay (fh-link-proc
+ ffi:int
+ "notmuch_config_get_bool"
+ (list ffi-void* ffi:int ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch key val)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch))
+ (~key (unwrap-notmuch_config_key_t key))
+ (~val (unwrap~pointer val)))
+ (wrap-notmuch_status_t
+ ((force ~notmuch_config_get_bool)
+ ~notmuch
+ ~key
+ ~val))))))
+(export notmuch_config_get_bool)
+
+;; const char *notmuch_config_path(notmuch_database_t *notmuch);
+(define notmuch_config_path
+ (let ((~notmuch_config_path
+ (delay (fh-link-proc
+ ffi-void*
+ "notmuch_config_path"
+ (list ffi-void*)
+ (force ffi-notmuch-llibs)))))
+ (lambda (notmuch)
+ (let ((~notmuch
+ ((fht-unwrap notmuch_database_t*) notmuch)))
+ ((force ~notmuch_config_path) ~notmuch)))))
+(export notmuch_config_path)
+
;; notmuch_indexopts_t *notmuch_database_get_default_indexopts(
;; notmuch_database_t *db);
(define notmuch_database_get_default_indexopts
@@ -2408,6 +2907,36 @@
(NOTMUCH_DECRYPT_AUTO . 2)
(NOTMUCH_DECRYPT_TRUE . 1)
(NOTMUCH_DECRYPT_FALSE . 0)
+ (NOTMUCH_CONFIG_LAST . 13)
+ (NOTMUCH_CONFIG_EXTRA_HEADERS . 12)
+ (NOTMUCH_CONFIG_AUTOCOMMIT . 11)
+ (NOTMUCH_CONFIG_USER_NAME . 10)
+ (NOTMUCH_CONFIG_OTHER_EMAIL . 9)
+ (NOTMUCH_CONFIG_PRIMARY_EMAIL . 8)
+ (NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS . 7)
+ (NOTMUCH_CONFIG_NEW_IGNORE . 6)
+ (NOTMUCH_CONFIG_NEW_TAGS . 5)
+ (NOTMUCH_CONFIG_EXCLUDE_TAGS . 4)
+ (NOTMUCH_CONFIG_BACKUP_DIR . 3)
+ (NOTMUCH_CONFIG_HOOK_DIR . 2)
+ (NOTMUCH_CONFIG_MAIL_ROOT . 1)
+ (NOTMUCH_CONFIG_DATABASE_PATH . 0)
+ (NOTMUCH_CONFIG_FIRST . 0)
+ (NOTMUCH_CONFIG_LAST . 13)
+ (NOTMUCH_CONFIG_EXTRA_HEADERS . 12)
+ (NOTMUCH_CONFIG_AUTOCOMMIT . 11)
+ (NOTMUCH_CONFIG_USER_NAME . 10)
+ (NOTMUCH_CONFIG_OTHER_EMAIL . 9)
+ (NOTMUCH_CONFIG_PRIMARY_EMAIL . 8)
+ (NOTMUCH_CONFIG_SYNC_MAILDIR_FLAGS . 7)
+ (NOTMUCH_CONFIG_NEW_IGNORE . 6)
+ (NOTMUCH_CONFIG_NEW_TAGS . 5)
+ (NOTMUCH_CONFIG_EXCLUDE_TAGS . 4)
+ (NOTMUCH_CONFIG_BACKUP_DIR . 3)
+ (NOTMUCH_CONFIG_HOOK_DIR . 2)
+ (NOTMUCH_CONFIG_MAIL_ROOT . 1)
+ (NOTMUCH_CONFIG_DATABASE_PATH . 0)
+ (NOTMUCH_CONFIG_FIRST . 0)
(NOTMUCH_MESSAGE_FLAG_GHOST . 2)
(NOTMUCH_MESSAGE_FLAG_EXCLUDED . 1)
(NOTMUCH_MESSAGE_FLAG_MATCH . 0)
@@ -2430,15 +2959,23 @@
(NOTMUCH_SORT_MESSAGE_ID . 2)
(NOTMUCH_SORT_NEWEST_FIRST . 1)
(NOTMUCH_SORT_OLDEST_FIRST . 0)
+ (NOTMUCH_QUERY_SYNTAX_SEXP . 1)
+ (NOTMUCH_QUERY_SYNTAX_XAPIAN . 0)
+ (NOTMUCH_QUERY_SYNTAX_SEXP . 1)
+ (NOTMUCH_QUERY_SYNTAX_XAPIAN . 0)
(NOTMUCH_DATABASE_MODE_READ_WRITE . 1)
(NOTMUCH_DATABASE_MODE_READ_ONLY . 0)
(NOTMUCH_DATABASE_MODE_READ_WRITE . 1)
(NOTMUCH_DATABASE_MODE_READ_ONLY . 0)
- (NOTMUCH_STATUS_LAST_STATUS . 19)
+ (NOTMUCH_STATUS_LAST_STATUS . 25)
+ (NOTMUCH_STATUS_CLOSED_DATABASE . 24)
+ (NOTMUCH_STATUS_NO_MAIL_ROOT . 23)
+ (NOTMUCH_STATUS_BAD_QUERY_SYNTAX . 22)
+ (NOTMUCH_STATUS_DATABASE_EXISTS . 21)
+ (NOTMUCH_STATUS_NO_DATABASE . 20)
+ (NOTMUCH_STATUS_NO_CONFIG . 19)
(NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL . 18)
- (NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION
- .
- 17)
+ (NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION . 17)
(NOTMUCH_STATUS_MALFORMED_CRYPTO_PROTOCOL . 16)
(NOTMUCH_STATUS_ILLEGAL_ARGUMENT . 15)
(NOTMUCH_STATUS_IGNORED . 14)
@@ -2456,7 +2993,13 @@
(NOTMUCH_STATUS_READ_ONLY_DATABASE . 2)
(NOTMUCH_STATUS_OUT_OF_MEMORY . 1)
(NOTMUCH_STATUS_SUCCESS . 0)
- (NOTMUCH_STATUS_LAST_STATUS . 19)
+ (NOTMUCH_STATUS_LAST_STATUS . 25)
+ (NOTMUCH_STATUS_CLOSED_DATABASE . 24)
+ (NOTMUCH_STATUS_NO_MAIL_ROOT . 23)
+ (NOTMUCH_STATUS_BAD_QUERY_SYNTAX . 22)
+ (NOTMUCH_STATUS_DATABASE_EXISTS . 21)
+ (NOTMUCH_STATUS_NO_DATABASE . 20)
+ (NOTMUCH_STATUS_NO_CONFIG . 19)
(NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL . 18)
(NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION
.
@@ -2480,7 +3023,7 @@
(NOTMUCH_STATUS_SUCCESS . 0)
(NOTMUCH_TAG_MAX . 200)
(LIBNOTMUCH_MICRO_VERSION . 0)
- (LIBNOTMUCH_MINOR_VERSION . 3)
+ (LIBNOTMUCH_MINOR_VERSION . 6)
(LIBNOTMUCH_MAJOR_VERSION . 5)
(TRUE . 1)
(FALSE . 0)))
@@ -2497,15 +3040,19 @@
(else (error "type mismatch"))))
(define ffi-notmuch-types
- '((pointer . "notmuch_database_t") "notmuch_database_t" (pointer .
- "notmuch_query_t") "notmuch_query_t" (pointer . "notmuch_threads_t")
- "notmuch_threads_t" (pointer . "notmuch_thread_t") "notmuch_thread_t"
- (pointer . "notmuch_messages_t") "notmuch_messages_t" (pointer .
- "notmuch_message_t") "notmuch_message_t" (pointer . "notmuch_tags_t")
- "notmuch_tags_t" (pointer . "notmuch_directory_t") "notmuch_directory_t"
- (pointer . "notmuch_filenames_t") "notmuch_filenames_t" (pointer .
- "notmuch_config_list_t") "notmuch_config_list_t" (pointer .
- "notmuch_indexopts_t") "notmuch_indexopts_t" "notmuch_compact_status_cb_t"
+ '((pointer . "notmuch_database_t") "notmuch_database_t"
+ (pointer . "notmuch_query_t") "notmuch_query_t"
+ (pointer . "notmuch_threads_t") "notmuch_threads_t"
+ (pointer . "notmuch_thread_t") "notmuch_thread_t"
+ (pointer . "notmuch_messages_t") "notmuch_messages_t"
+ (pointer . "notmuch_message_t") "notmuch_message_t"
+ (pointer . "notmuch_tags_t") "notmuch_tags_t"
+ (pointer . "notmuch_directory_t") "notmuch_directory_t"
+ (pointer . "notmuch_filenames_t") "notmuch_filenames_t"
+ (pointer . "notmuch_config_list_t") "notmuch_config_list_t"
+ (pointer . "notmuch_config_values_t") "notmuch_config_values_t"
+ (pointer . "notmuch_config_pairs_t") "notmuch_config_pairs_t"
+ (pointer . "notmuch_indexopts_t") "notmuch_indexopts_t" "notmuch_compact_status_cb_t"
(pointer . "notmuch_message_properties_t") "notmuch_message_properties_t"))
(export ffi-notmuch-types)
diff --git a/lib/guile/makefile b/lib/guile/makefile
new file mode 100644
index 0000000..50b7bbe
--- /dev/null
+++ b/lib/guile/makefile
@@ -0,0 +1,16 @@
+##
+# Build my guile libraries
+#
+# @file
+# @version 0.1
+
+LD_LIBRARY_PATH=$HOME/.guix-profile/lib
+
+notmuch: ffi/notmuch.ffi
+ C_INCLUDE_PATH=$(HOME)/.guix-profile/include/ guild compile-ffi $<
+
+clean:
+ rm ffi/notmuch.scm
+
+
+# end