@ -243,15 +243,6 @@ maildir_list_recurse( store_t *gctx, int isBox, int flags,
struct dirent * de ;
struct dirent * de ;
struct stat st ;
struct stat st ;
if ( isBox ) {
path [ pathLen + + ] = ' / ' ;
if ( isBox > 1 | |
( nfsnprintf ( path + pathLen , _POSIX_PATH_MAX - pathLen , " cur " ) ,
! stat ( path , & st ) & & S_ISDIR ( st . st_mode ) ) )
add_string_list ( & gctx - > boxes , name ) ;
path [ pathLen ] = 0 ;
name [ nameLen + + ] = ' / ' ;
}
if ( ! ( dir = opendir ( path ) ) ) {
if ( ! ( dir = opendir ( path ) ) ) {
if ( isBox & & ( errno = = ENOENT | | errno = = ENOTDIR ) )
if ( isBox & & ( errno = = ENOENT | | errno = = ENOTDIR ) )
return 0 ;
return 0 ;
@ -290,6 +281,12 @@ maildir_list_recurse( store_t *gctx, int isBox, int flags,
}
}
}
}
nl = nameLen + nfsnprintf ( name + nameLen , _POSIX_PATH_MAX - nameLen , " %s " , ent ) ;
nl = nameLen + nfsnprintf ( name + nameLen , _POSIX_PATH_MAX - nameLen , " %s " , ent ) ;
path [ pl + + ] = ' / ' ;
nfsnprintf ( path + pl , _POSIX_PATH_MAX - pl , " cur " ) ;
if ( ! stat ( path , & st ) & & S_ISDIR ( st . st_mode ) )
add_string_list ( & gctx - > boxes , name ) ;
path [ pl ] = 0 ;
name [ nl + + ] = ' / ' ;
if ( maildir_list_recurse ( gctx , 1 , flags , inbox , inboxLen , basePath , basePathLen , path , pl , name , nl ) < 0 ) {
if ( maildir_list_recurse ( gctx , 1 , flags , inbox , inboxLen , basePath , basePathLen , path , pl , name , nl ) < 0 ) {
closedir ( dir ) ;
closedir ( dir ) ;
return - 1 ;
return - 1 ;
@ -305,10 +302,11 @@ maildir_list_inbox( store_t *gctx, int flags, const char *basePath )
{
{
char path [ _POSIX_PATH_MAX ] , name [ _POSIX_PATH_MAX ] ;
char path [ _POSIX_PATH_MAX ] , name [ _POSIX_PATH_MAX ] ;
add_string_list ( & gctx - > boxes , " INBOX " ) ;
return maildir_list_recurse (
return maildir_list_recurse (
gctx , 2 , flags , 0 , 0 , basePath , basePath ? strlen ( basePath ) - 1 : 0 ,
gctx , 1 , flags , 0 , 0 , basePath , basePath ? strlen ( basePath ) - 1 : 0 ,
path , nfsnprintf ( path , _POSIX_PATH_MAX , " %s " , ( ( maildir_store_conf_t * ) gctx - > conf ) - > inbox ) ,
path , nfsnprintf ( path , _POSIX_PATH_MAX , " %s/ " , ( ( maildir_store_conf_t * ) gctx - > conf ) - > inbox ) ,
name , nfsnprintf ( name , _POSIX_PATH_MAX , " INBOX " ) ) ;
name , nfsnprintf ( name , _POSIX_PATH_MAX , " INBOX/ " ) ) ;
}
}
static int
static int