[dovecot-cvs] dovecot/src/imap cmd-list.c,1.28,1.29
cras at procontrol.fi
cras at procontrol.fi
Sun Jul 27 09:52:03 EEST 2003
Update of /home/cvs/dovecot/src/imap
In directory danu:/tmp/cvs-serv26911
Modified Files:
cmd-list.c
Log Message:
A bit more temporary kludging
Index: cmd-list.c
===================================================================
RCS file: /home/cvs/dovecot/src/imap/cmd-list.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- cmd-list.c 27 Jul 2003 05:37:13 -0000 1.28
+++ cmd-list.c 27 Jul 2003 05:52:01 -0000 1.29
@@ -93,6 +93,7 @@
int _cmd_list_full(struct client *client, int lsub)
{
+ struct namespace *ns;
struct mail_storage *storage;
struct imap_arg *args;
enum mailbox_list_flags list_flags;
@@ -100,19 +101,6 @@
char sep_chr, sep[3];
int failed, listext;
- /* FIXME: really needs some work.. */
- storage = client->namespaces->storage;
-
- sep_chr = storage->hierarchy_sep;
- if (sep_chr == '"' || sep_chr == '\\') {
- sep[0] = '\\';
- sep[1] = sep_chr;
- sep[2] = '\0';
- } else {
- sep[0] = sep_chr;
- sep[1] = '\0';
- }
-
/* [(<options>)] <reference> <mailbox wildcards> */
if (!client_read_args(client, 0, 0, &args))
return FALSE;
@@ -138,6 +126,23 @@
if (ref == NULL || mask == NULL) {
client_send_command_error(client, "Invalid arguments.");
return TRUE;
+ }
+
+ /* FIXME: really needs some work.. */
+ ns = namespace_find(client->namespaces, mask);
+ if (ns != NULL)
+ storage = ns->storage;
+ else
+ storage = client->namespaces->storage;
+
+ sep_chr = storage->hierarchy_sep;
+ if (sep_chr == '"' || sep_chr == '\\') {
+ sep[0] = '\\';
+ sep[1] = sep_chr;
+ sep[2] = '\0';
+ } else {
+ sep[0] = sep_chr;
+ sep[1] = '\0';
}
if (*mask == '\0' && !lsub) {
More information about the dovecot-cvs
mailing list