*/
struct msgs *
-folder_read (char *name)
+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))) {
mp->hghsel = 0;
mp->numsel = 0;
mp->nummsg = 0;
+ mp->seqhandle = NULL;
+ mp->seqname = NULL;
if (access (name, W_OK) == -1)
set_readonly (mp);
/*
* 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
/*
* Read and initialize the sequence information.
*/
- seq_read (mp);
+ seq_read (mp, lockflag);
return mp;
}