]> diplodocus.org Git - nmh/blobdiff - sbr/folder_free.c
Sort JSON output from oauth tests so that comparisons don't
[nmh] / sbr / folder_free.c
index 1c1051defb6269c745ece51fa433b777e831a87f..cad86dad42a451e56a761b918ced9fa477d30a25 100644 (file)
@@ -2,7 +2,9 @@
 /*
  * folder_free.c -- free a folder/message structure
  *
- * $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.
  */
 
 #include <h/mh.h>
@@ -11,7 +13,8 @@
 void
 folder_free (struct msgs *mp)
 {
-    int i;
+    size_t i;
+    bvector_t *v;
 
     if (!mp)
        return;
@@ -20,9 +23,23 @@ folder_free (struct msgs *mp)
        free (mp->foldpath);
 
     /* free the sequence names */
-    for (i = 0; mp->msgattrs[i]; i++)
-       free (mp->msgattrs[i]);
+    for (i = 0; i < svector_size (mp->msgattrs); i++)
+       free (svector_at (mp->msgattrs, i));
+    svector_free (mp->msgattrs);
 
-    free (mp->msgstats);       /* free message status area   */
+    for (i = 0, v = mp->msgstats; i < mp->num_msgstats; ++i, ++v) {
+       bvector_free (*v);
+    }
+    free (mp->msgstats);
+
+    /* Close/free the sequence file if it is open */
+
+    if (mp->seqhandle)
+       lkfclosedata (mp->seqhandle, mp->seqname);
+
+    if (mp->seqname)
+       free (mp->seqname);
+
+    bvector_free (mp->attrstats);
     free (mp);                 /* free main folder structure */
 }