]> diplodocus.org Git - nmh/blobdiff - sbr/folder_read.c
If we're searching for commands, prefer xpg4 versions on Solaris.
[nmh] / sbr / folder_read.c
index 292044841ba529fca0bee02349f67f3fa7f529f9..170946b41ec351696a686da18bff73a2ae71869f 100644 (file)
  */
 
 struct msgs *
  */
 
 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;
 {
     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))) {
 
     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->hghsel = 0;
     mp->numsel = 0;
     mp->nummsg = 0;
+    mp->seqhandle = NULL;
+    mp->seqname = NULL;
 
     if (access (name, W_OK) == -1)
        set_readonly (mp);
 
     if (access (name, W_OK) == -1)
        set_readonly (mp);
@@ -129,7 +133,13 @@ folder_read (char *name)
     /*
      * Allocate space for status of each message.
      */
     /*
      * 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
 
     /*
      * Clear all the flag bits for all the message
@@ -151,7 +161,7 @@ folder_read (char *name)
     /*
      * Read and initialize the sequence information.
      */
     /*
      * Read and initialize the sequence information.
      */
-    seq_read (mp);
+    seq_read (mp, lockflag);
 
     return mp;
 }
 
     return mp;
 }