]> diplodocus.org Git - nmh/blobdiff - sbr/folder_read.c
cpydata.c: Move interface to own file.
[nmh] / sbr / folder_read.c
index 4e60443178fb997485783826884ba1434748eac8..044059fbb0351c4e4f7fcfa672686abd7c038dfe 100644 (file)
@@ -1,13 +1,16 @@
-/*
- * folder_read.c -- initialize folder structure and read folder
+/* folder_read.c -- initialize folder structure and read folder
  *
  * 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.
  */
 
  *
  * 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.
  */
 
-#include <h/mh.h>
-#include <h/utils.h>
+#include "h/mh.h"
+#include "m_atoi.h"
+#include "folder_read.h"
+#include "error.h"
+#include "h/utils.h"
+#include "m_maildir.h"
 
 /* We allocate the `mi' array 1024 elements at a time */
 #define        NUMMSGS  1024
 
 /* We allocate the `mi' array 1024 elements at a time */
 #define        NUMMSGS  1024
@@ -28,7 +31,7 @@ folder_read (char *name, int lockflag)
     struct msgs *mp;
     struct dirent *dp;
     DIR *dd;
     struct msgs *mp;
     struct dirent *dp;
     DIR *dd;
-    bvector_t *v;
+    struct bvector *v;
     size_t i;
 
     name = m_mailpath (name);
     size_t i;
 
     name = m_mailpath (name);
@@ -59,7 +62,7 @@ folder_read (char *name, int lockflag)
      * name of the messages in this folder.
      */
     len = NUMMSGS;
      * name of the messages in this folder.
      */
     len = NUMMSGS;
-    mi = (int *) mh_xmalloc ((size_t) (len * sizeof(*mi)));
+    mi = mh_xmalloc ((size_t) (len * sizeof(*mi)));
 
     while ((dp = readdir (dd))) {
        if ((msgnum = m_atoi (dp->d_name)) && msgnum > 0) {
 
     while ((dp = readdir (dd))) {
        if ((msgnum = m_atoi (dp->d_name)) && msgnum > 0) {
@@ -69,7 +72,7 @@ folder_read (char *name, int lockflag)
             */
            if (mp->nummsg >= len) {
                len += NUMMSGS;
             */
            if (mp->nummsg >= len) {
                len += NUMMSGS;
-               mi = (int *) mh_xrealloc (mi, (size_t) (len * sizeof(*mi)));
+               mi = mh_xrealloc (mi, (size_t) (len * sizeof(*mi)));
            }
 
            /* Check if this is the first message we've seen */
            }
 
            /* Check if this is the first message we've seen */
@@ -127,7 +130,7 @@ folder_read (char *name, int lockflag)
      */
 
     if (mp->hghoff < mp->lowoff) {
      */
 
     if (mp->hghoff < mp->lowoff) {
-       adios(NULL, "Internal failure: high message limit < low message "
+       die("Internal failure: high message limit < low message "
              "limit; possible overflow?");
     }
 
              "limit; possible overflow?");
     }
 
@@ -137,18 +140,11 @@ folder_read (char *name, int lockflag)
     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) {
     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);
+        bvector_init(v);
     }
 
     mp->msgattrs = svector_create (0);
 
     }
 
     mp->msgattrs = svector_create (0);
 
-    /*
-     * Clear all the flag bits for all the message
-     * status entries we just allocated.
-     */
-    for (msgnum = mp->lowoff; msgnum <= mp->hghoff; msgnum++)
-       clear_msg_flags (mp, msgnum);
-
     /*
      * Scan through the array of messages we've seen and
      * setup the initial flags for those messages in the
     /*
      * Scan through the array of messages we've seen and
      * setup the initial flags for those messages in the