[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