X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/a395a8839181b9895fdd0cafdb40be35675ced48..2bb06ba12985ae91b641c0006ef0c30cd9d438a7:/sbr/folder_read.c diff --git a/sbr/folder_read.c b/sbr/folder_read.c index 29204484..170946b4 100644 --- a/sbr/folder_read.c +++ b/sbr/folder_read.c @@ -23,13 +23,15 @@ */ 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))) { @@ -54,6 +56,8 @@ folder_read (char *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); @@ -129,7 +133,13 @@ folder_read (char *name) /* * 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 @@ -151,7 +161,7 @@ folder_read (char *name) /* * Read and initialize the sequence information. */ - seq_read (mp); + seq_read (mp, lockflag); return mp; }