X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6b4bc4a25eaac2eddd1bef51e3f00c21f98ed32d..44fe0f6d35751a9b6ce98a83c21cfe09189a0d67:/sbr/folder_read.c diff --git a/sbr/folder_read.c b/sbr/folder_read.c index 02271bc6..4a9f7fba 100644 --- a/sbr/folder_read.c +++ b/sbr/folder_read.c @@ -27,9 +27,10 @@ folder_read (char *name, int lockflag) { int msgnum, prefix_len, len, *mi; struct msgs *mp; - struct stat st; struct dirent *dp; DIR *dd; + bvector_t *v; + size_t i; name = m_mailpath (name); if (!(dd = opendir (name))) { @@ -37,11 +38,6 @@ folder_read (char *name, int lockflag) return NULL; } - if (stat (name, &st) == -1) { - free (name); - return NULL; - } - /* Allocate the main structure for folder information */ mp = (struct msgs *) mh_xmalloc ((size_t) sizeof(*mp)); @@ -131,7 +127,13 @@ folder_read (char *name, int lockflag) /* * Allocate space for status of each message. */ - mp->msgstats = mh_xmalloc (MSGSTATSIZE(mp, mp->lowoff, mp->hghoff)); + mp->num_msgstats = MSGSTATNUM (mp->lowoff, mp->hghoff); + mp->msgstats = mh_xmalloc (MSGSTATSIZE(mp)); + for (i = 0, v = mp->msgstats; i < mp->num_msgstats; ++i, ++v) { + *v = bvector_create (0); + } + + mp->msgattrs = svector_create (0); /* * Clear all the flag bits for all the message