瀏覽代碼

reverse-map <Inbox> to INBOX when encountered during listing.
usually this will be a no-op (when putting INBOX in Path, people
generally call it INBOX), but better safe than sorry.

Oswald Buddenhagen 18 年之前
父節點
當前提交
e0d72cd5e3
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      src/drv_maildir.c

+ 5 - 2
src/drv_maildir.c

@@ -174,15 +174,18 @@ maildir_list( store_t *gctx,
 		return;
 	}
 	while ((de = readdir( dir ))) {
+		const char *inbox = ((maildir_store_conf_t *)gctx->conf)->inbox;
+		int bl;
 		struct stat st;
 		char buf[PATH_MAX];
 
 		if (*de->d_name == '.')
 			continue;
-		nfsnprintf( buf, sizeof(buf), "%s%s/cur", gctx->conf->path, de->d_name );
+		bl = nfsnprintf( buf, sizeof(buf), "%s%s/cur", gctx->conf->path, de->d_name );
 		if (stat( buf, &st ) || !S_ISDIR(st.st_mode))
 			continue;
-		add_string_list( &gctx->boxes, de->d_name );
+		add_string_list( &gctx->boxes,
+		                 !memcmp( buf, inbox, bl - 4 ) && !inbox[bl - 4] ? "INBOX" : de->d_name );
 	}
 	closedir (dir);
 	gctx->listed = 1;