dovecot-1.2: Added mailbox_keyword_is_valid().

dovecot at dovecot.org dovecot at dovecot.org
Mon Jul 21 02:48:55 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/0e7a9547be83
changeset: 8042:0e7a9547be83
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Jul 21 02:48:51 2008 +0300
description:
Added mailbox_keyword_is_valid().

diffstat:

10 files changed, 24 insertions(+), 5 deletions(-)
src/lib-storage/index/cydir/cydir-storage.c     |    1 +
src/lib-storage/index/dbox/dbox-storage.c       |    1 +
src/lib-storage/index/index-storage.c           |   11 ++++++-----
src/lib-storage/index/index-storage.h           |    2 ++
src/lib-storage/index/maildir/maildir-storage.c |    1 +
src/lib-storage/index/mbox/mbox-storage.c       |    1 +
src/lib-storage/index/raw/raw-storage.c         |    1 +
src/lib-storage/mail-storage-private.h          |    2 ++
src/lib-storage/mail-storage.c                  |    6 ++++++
src/lib-storage/mail-storage.h                  |    3 +++

diffs (143 lines):

diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/cydir/cydir-storage.c
--- a/src/lib-storage/index/cydir/cydir-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/cydir/cydir-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -441,6 +441,7 @@ struct mailbox cydir_mailbox = {
 		index_transaction_set_max_modseq,
 		index_keywords_create,
 		index_keywords_free,
+		index_keyword_is_valid,
 		index_storage_get_seq_range,
 		index_storage_get_uid_range,
 		index_storage_get_expunged_uids,
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/dbox/dbox-storage.c
--- a/src/lib-storage/index/dbox/dbox-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/dbox/dbox-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -701,6 +701,7 @@ struct mailbox dbox_mailbox = {
 		index_transaction_set_max_modseq,
 		index_keywords_create,
 		index_keywords_free,
+		index_keyword_is_valid,
 		index_storage_get_seq_range,
 		index_storage_get_uid_range,
 		index_storage_get_expunged_uids,
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/index-storage.c
--- a/src/lib-storage/index/index-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/index-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -538,9 +538,10 @@ void mail_storage_set_index_error(struct
 	mail_index_reset_error(ibox->index);
 }
 
-int index_mailbox_keyword_is_valid(struct index_mailbox *ibox,
-				   const char *keyword, const char **error_r)
-{
+bool index_keyword_is_valid(struct mailbox *box, const char *keyword,
+			    const char **error_r)
+{
+	struct index_mailbox *ibox = (struct index_mailbox *)box;
 	unsigned int i, idx;
 
 	/* if it already exists, skip validity checks */
@@ -580,7 +581,7 @@ index_keywords_create_skip(struct index_
 
 	t_array_init(&valid_keywords, 32);
 	for (; *keywords != NULL; keywords++) {
-		if (index_mailbox_keyword_is_valid(ibox, *keywords, &error))
+		if (mailbox_keyword_is_valid(&ibox->box, *keywords, &error))
 			array_append(&valid_keywords, keywords, 1);
 	}
 	(void)array_append_space(&valid_keywords); /* NULL-terminate */
@@ -595,7 +596,7 @@ int index_keywords_create(struct mailbox
 	unsigned int i;
 
 	for (i = 0; keywords[i] != NULL; i++) {
-		if (index_mailbox_keyword_is_valid(ibox, keywords[i], &error))
+		if (mailbox_keyword_is_valid(_box, keywords[i], &error))
 			continue;
 
 		if (!skip_invalid) {
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/index-storage.h
--- a/src/lib-storage/index/index-storage.h	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/index-storage.h	Mon Jul 21 02:48:51 2008 +0300
@@ -116,6 +116,8 @@ int index_keywords_create(struct mailbox
 int index_keywords_create(struct mailbox *box, const char *const keywords[],
 			  struct mail_keywords **keywords_r, bool skip_invalid);
 void index_keywords_free(struct mail_keywords *keywords);
+bool index_keyword_is_valid(struct mailbox *box, const char *keyword,
+			    const char **error_r);
 
 void index_mailbox_set_recent_uid(struct index_mailbox *ibox, uint32_t uid);
 void index_mailbox_set_recent_seq(struct index_mailbox *ibox,
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/maildir/maildir-storage.c
--- a/src/lib-storage/index/maildir/maildir-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/maildir/maildir-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -1046,6 +1046,7 @@ struct mailbox maildir_mailbox = {
 		index_transaction_set_max_modseq,
 		index_keywords_create,
 		index_keywords_free,
+		index_keyword_is_valid,
 		index_storage_get_seq_range,
 		index_storage_get_uid_range,
 		index_storage_get_expunged_uids,
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/mbox/mbox-storage.c
--- a/src/lib-storage/index/mbox/mbox-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/mbox/mbox-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -1000,6 +1000,7 @@ struct mailbox mbox_mailbox = {
 		index_transaction_set_max_modseq,
 		index_keywords_create,
 		index_keywords_free,
+		index_keyword_is_valid,
 		index_storage_get_seq_range,
 		index_storage_get_uid_range,
 		index_storage_get_expunged_uids,
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/index/raw/raw-storage.c
--- a/src/lib-storage/index/raw/raw-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/index/raw/raw-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -292,6 +292,7 @@ struct mailbox raw_mailbox = {
 		index_transaction_set_max_modseq,
 		index_keywords_create,
 		index_keywords_free,
+		index_keyword_is_valid,
 		index_storage_get_seq_range,
 		index_storage_get_uid_range,
 		index_storage_get_expunged_uids,
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/mail-storage-private.h
--- a/src/lib-storage/mail-storage-private.h	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/mail-storage-private.h	Mon Jul 21 02:48:51 2008 +0300
@@ -127,6 +127,8 @@ struct mailbox_vfuncs {
 			       struct mail_keywords **keywords_r,
 			       bool skip_invalid);
 	void (*keywords_free)(struct mail_keywords *keywords);
+	bool (*keyword_is_valid)(struct mailbox *box, const char *keyword,
+				 const char **error_r);
 
 	void (*get_seq_range)(struct mailbox *box, uint32_t uid1, uint32_t uid2,
 			      uint32_t *seq1_r, uint32_t *seq2_r);
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/mail-storage.c
--- a/src/lib-storage/mail-storage.c	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/mail-storage.c	Mon Jul 21 02:48:51 2008 +0300
@@ -603,6 +603,12 @@ void mailbox_keywords_free(struct mailbo
 	box->v.keywords_free(keywords);
 }
 
+bool mailbox_keyword_is_valid(struct mailbox *box, const char *keyword,
+			      const char **error_r)
+{
+	return box->v.keyword_is_valid(box, keyword, error_r);
+}
+
 void mailbox_get_seq_range(struct mailbox *box, uint32_t uid1, uint32_t uid2,
 			   uint32_t *seq1_r, uint32_t *seq2_r)
 {
diff -r 4de1590878ea -r 0e7a9547be83 src/lib-storage/mail-storage.h
--- a/src/lib-storage/mail-storage.h	Mon Jul 21 01:07:06 2008 +0300
+++ b/src/lib-storage/mail-storage.h	Mon Jul 21 02:48:51 2008 +0300
@@ -385,6 +385,9 @@ mailbox_keywords_create_valid(struct mai
 			      const char *const keywords[]);
 void mailbox_keywords_free(struct mailbox *box,
 			   struct mail_keywords **keywords);
+/* Returns TRUE if keyword is valid, FALSE and error if not. */
+bool mailbox_keyword_is_valid(struct mailbox *box, const char *keyword,
+			      const char **error_r);
 
 /* Convert uid range to sequence range. */
 void mailbox_get_seq_range(struct mailbox *box, uint32_t uid1, uint32_t uid2,


More information about the dovecot-cvs mailing list