[dovecot-cvs] dovecot/src/lib-storage/index/maildir maildir-list.c,1.16,1.17 maildir-storage.c,1.32,1.33

cras at procontrol.fi cras at procontrol.fi
Mon Feb 24 19:39:34 EET 2003


Update of /home/cvs/dovecot/src/lib-storage/index/maildir
In directory danu:/tmp/cvs-serv5915/src/lib-storage/index/maildir

Modified Files:
	maildir-list.c maildir-storage.c 
Log Message:
Added support for CHILDREN and LISTEXT extensions.



Index: maildir-list.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/maildir/maildir-list.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- maildir-list.c	20 Feb 2003 16:41:16 -0000	1.16
+++ maildir-list.c	24 Feb 2003 17:39:32 -0000	1.17
@@ -147,9 +147,6 @@
 	ctx->list.flags = 0;
 	ctx->list.name = name;
 
-	if ((ctx->flags & MAILBOX_LIST_NO_FLAGS) != 0)
-		return &ctx->list;
-
 	if (match == IMAP_MATCH_PARENT) {
 		/* placeholder */
 		ctx->list.flags = MAILBOX_PLACEHOLDER;
@@ -163,6 +160,9 @@
 		i_unreached();
 	}
 
+	if ((ctx->flags & MAILBOX_LIST_FAST_FLAGS) != 0)
+		return &ctx->list;
+
 	t_push();
 	path = maildir_get_path(ctx->storage, ctx->list.name);
 	if (stat(path, &st) == 0 && S_ISDIR(st.st_mode))
@@ -171,7 +171,7 @@
 		if (strcasecmp(ctx->list.name, "INBOX") == 0)
 			ctx->list.flags = 0;
 		else
-			ctx->list.flags = MAILBOX_NOSELECT;
+			ctx->list.flags = MAILBOX_NONEXISTENT;
 	}
 	t_pop();
 	return &ctx->list;
@@ -253,8 +253,8 @@
 		}
 
 		p_clear(ctx->list_pool);
-		if ((ctx->flags & MAILBOX_LIST_NO_FLAGS) == 0)
-			ctx->list.flags = maildir_get_marked_flags(path);
+                ctx->list.flags = (ctx->flags & MAILBOX_LIST_FAST_FLAGS) == 0 ?
+			maildir_get_marked_flags(path) : 0;
 		ctx->list.name = p_strconcat(ctx->list_pool,
 					     ctx->prefix, fname, NULL);
 		return &ctx->list;
@@ -270,7 +270,8 @@
 	if (imap_match(ctx->glob, "INBOX") > 0) {
 		const char *path = maildir_get_path(ctx->storage, "INBOX");
 
-		ctx->list.flags = maildir_get_marked_flags(path);
+		ctx->list.flags = (ctx->flags & MAILBOX_LIST_FAST_FLAGS) == 0 ?
+			maildir_get_marked_flags(path) : 0;
 		ctx->list.name = "INBOX";
 		return &ctx->list;
 	}

Index: maildir-storage.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/maildir/maildir-storage.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- maildir-storage.c	23 Feb 2003 21:14:50 -0000	1.32
+++ maildir-storage.c	24 Feb 2003 17:39:32 -0000	1.33
@@ -416,7 +416,7 @@
 
 	ctx = storage->list_mailbox_init(storage,
 					 t_strconcat(oldname, ".*", NULL),
-					 MAILBOX_LIST_NO_FLAGS, &sorted);
+					 MAILBOX_LIST_FAST_FLAGS, &sorted);
 	while ((list = maildir_list_mailbox_next(ctx)) != NULL) {
 		i_assert(oldnamelen <= strlen(list->name));
 




More information about the dovecot-cvs mailing list