diff options
Diffstat (limited to 'src/lib-storage/index/maildir/maildir-keywords.h')
-rw-r--r-- | src/lib-storage/index/maildir/maildir-keywords.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lib-storage/index/maildir/maildir-keywords.h b/src/lib-storage/index/maildir/maildir-keywords.h new file mode 100644 index 0000000..43e47d7 --- /dev/null +++ b/src/lib-storage/index/maildir/maildir-keywords.h @@ -0,0 +1,36 @@ +#ifndef MAILDIR_KEYWORDS_H +#define MAILDIR_KEYWORDS_H + +#define MAILDIR_KEYWORDS_NAME "dovecot-keywords" + +struct maildir_mailbox; +struct maildir_keywords; +struct maildir_keywords_sync_ctx; + +struct maildir_keywords *maildir_keywords_init(struct maildir_mailbox *mbox); +void maildir_keywords_deinit(struct maildir_keywords **mk); + +/* Initialize a read-only maildir_keywords instance. Mailbox needs to contain + the dovecot-keywords file, but otherwise it doesn't have to be in maildir + format. */ +struct maildir_keywords * +maildir_keywords_init_readonly(struct mailbox *box); + +struct maildir_keywords_sync_ctx * +maildir_keywords_sync_init(struct maildir_keywords *mk, + struct mail_index *index); +/* Don't try to add any nonexistent keywords */ +struct maildir_keywords_sync_ctx * +maildir_keywords_sync_init_readonly(struct maildir_keywords *mk, + struct mail_index *index); +void maildir_keywords_sync_deinit(struct maildir_keywords_sync_ctx **ctx); + +/* Returns keyword index. */ +unsigned int maildir_keywords_char_idx(struct maildir_keywords_sync_ctx *ctx, + char keyword); +/* Returns keyword character for given index, or \0 if keyword couldn't be + added. */ +char maildir_keywords_idx_char(struct maildir_keywords_sync_ctx *ctx, + unsigned int idx); + +#endif |