]> diplodocus.org Git - nmh/commitdiff
vector.c: Move interface to own file.
authorRalph Corderoy <ralph@inputplus.co.uk>
Sun, 5 Nov 2017 13:10:17 +0000 (13:10 +0000)
committerRalph Corderoy <ralph@inputplus.co.uk>
Sun, 12 Nov 2017 12:25:26 +0000 (12:25 +0000)
Don't #include it in all its users yet as it's too tangled with mh.h's
other content, so just #include it in mh.h instead.

Makefile.am
h/mh.h
sbr/vector.h [new file with mode: 0644]

index 2497060..e6cc4dc 100644 (file)
@@ -390,6 +390,7 @@ noinst_HEADERS = \
     sbr/seq_print.h \
     sbr/terminal.h \
     sbr/unquote.h \
+    sbr/vector.h \
     thirdparty/jsmn/jsmn.h \
     uip/forwsbr.h \
     uip/mhfree.h \
diff --git a/h/mh.h b/h/mh.h
index bf746f1..bc3766e 100644 (file)
--- a/h/mh.h
+++ b/h/mh.h
@@ -267,45 +267,7 @@ extern struct swit anoyes[];       /* standard yes/no switches */
 
 #define        MBITS "\020\01EXISTS\02SELECTED\03NEW\04UNSEEN"
 
-/* A vector of bits for tracking the sequence membership of a single
- * message.  Do not access the struct members; use vector.c.
- * Do not move or copy this struct as it may contain a pointer to
- * itself;  use bvector_copy(). */
-struct bvector {
-    unsigned long *bits;
-    size_t maxsize;
-    unsigned long tiny[2];   /* Default fixed-size storage for bits. */
-};
-typedef struct bvector *bvector_t;
-
-bvector_t bvector_create (void);
-void bvector_init(struct bvector *bv) NONNULL(1);
-void bvector_copy (bvector_t, bvector_t) NONNULL(1, 2);
-void bvector_free (bvector_t) NONNULL(1);
-void bvector_fini(struct bvector *bv) NONNULL(1);
-void bvector_clear (bvector_t, size_t) NONNULL(1);
-void bvector_clear_all (bvector_t) NONNULL(1);
-void bvector_set (bvector_t, size_t) NONNULL(1);
-unsigned int bvector_at (bvector_t, size_t) NONNULL(1) PURE;
-unsigned long bvector_first_bits (bvector_t) NONNULL(1) PURE;
-
-typedef struct svector *svector_t;
-
-svector_t svector_create (size_t);
-void svector_free (svector_t) NONNULL(1);
-char *svector_push_back (svector_t, char *) NONNULL(1);
-char *svector_at (svector_t, size_t) NONNULL(1);
-char **svector_find(svector_t, const char *) NONNULL(1) PURE;
-char **svector_strs (svector_t) NONNULL(1) PURE;
-size_t svector_size (svector_t) NONNULL(1) PURE;
-
-typedef struct ivector *ivector_t;
-
-ivector_t ivector_create (size_t);
-void ivector_free (ivector_t) NONNULL(1);
-int ivector_push_back (ivector_t, int) NONNULL(1);
-int ivector_at (ivector_t, size_t) NONNULL(1);
-int *ivector_atp (ivector_t, size_t) NONNULL(1);
+#include "sbr/vector.h"
 
 /*
  * Primary structure of folder/message information
diff --git a/sbr/vector.h b/sbr/vector.h
new file mode 100644 (file)
index 0000000..fc03a2d
--- /dev/null
@@ -0,0 +1,45 @@
+/* vector.h -- dynamically sized vectors
+ *
+ * This code is Copyright (c) 2017, by the authors of nmh.  See the
+ * COPYRIGHT file in the root directory of the nmh distribution for
+ * complete copyright information. */
+
+/* A vector of bits for tracking the sequence membership of a single
+ * message.  Do not access the struct members; use vector.c.
+ * Do not move or copy this struct as it may contain a pointer to
+ * itself;  use bvector_copy(). */
+struct bvector {
+    unsigned long *bits;
+    size_t maxsize;
+    unsigned long tiny[2];   /* Default fixed-size storage for bits. */
+};
+typedef struct bvector *bvector_t;
+
+bvector_t bvector_create(void);
+void bvector_init(struct bvector *) NONNULL(1);
+void bvector_copy(bvector_t, bvector_t) NONNULL(1, 2);
+void bvector_free(bvector_t) NONNULL(1);
+void bvector_fini(struct bvector *) NONNULL(1);
+void bvector_clear(bvector_t, size_t) NONNULL(1);
+void bvector_clear_all(bvector_t) NONNULL(1);
+void bvector_set(bvector_t, size_t) NONNULL(1);
+unsigned int bvector_at(bvector_t, size_t) NONNULL(1) PURE;
+unsigned long bvector_first_bits(bvector_t) NONNULL(1) PURE;
+
+typedef struct svector *svector_t;
+
+svector_t svector_create(size_t);
+void svector_free(svector_t) NONNULL(1);
+char *svector_push_back(svector_t, char *) NONNULL(1);
+char *svector_at(svector_t, size_t) NONNULL(1);
+char **svector_find(svector_t, const char *) NONNULL(1) PURE;
+char **svector_strs(svector_t) NONNULL(1) PURE;
+size_t svector_size(svector_t) NONNULL(1) PURE;
+
+typedef struct ivector *ivector_t;
+
+ivector_t ivector_create(size_t);
+void ivector_free(ivector_t) NONNULL(1);
+int ivector_push_back(ivector_t, int) NONNULL(1);
+int ivector_at(ivector_t, size_t) NONNULL(1);
+int *ivector_atp(ivector_t, size_t) NONNULL(1);