/*
* folder_read.c -- initialize folder structure and read folder
*
- * $Id$
- *
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
*/
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))) {
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));
mp->hghsel = 0;
mp->numsel = 0;
mp->nummsg = 0;
+ mp->seqhandle = NULL;
+ mp->seqname = NULL;
if (access (name, W_OK) == -1)
set_readonly (mp);
switch (dp->d_name[0]) {
case '.':
case ',':
-#ifdef MHE
- case '+':
-#endif /* MHE */
continue;
default:
/*
* 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;
}