summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWormHeamer2025-02-05 07:14:33 -0500
committerWormHeamer2025-02-05 07:14:33 -0500
commit504d086994631a55083e05b28b904f9194b1ff8f (patch)
tree61d49963f0bc1cb3e51aac9ce693d62a88609e70
parente90840a50e9c1dce4485c0dc0be2de277d80192c (diff)
add DA_PUSH_MULT
-rw-r--r--dynarr.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/dynarr.h b/dynarr.h
index 321325b..c9ce637 100644
--- a/dynarr.h
+++ b/dynarr.h
@@ -3,6 +3,7 @@
#include <stdlib.h>
#include <stdint.h>
+#include <string.h>
#include <err.h>
typedef struct { size_t count, capacity; } DynArrHeader;
@@ -35,6 +36,12 @@ typedef struct { size_t count, capacity; } DynArrHeader;
(da)[DA_HEADER(da)->count++] = item;\
}
+#define DA_PUSH_MULT(da, buf, n) {\
+ DA_FIT(da, DA_LEN(da) + n);\
+ memcpy(&(da)[DA_HEADER(da)->count], buf, n * sizeof(*(da)));\
+ DA_HEADER(da)->count += n;\
+}
+
#define DA_FOR(da, type, name)\
for (type *name = (da); name < &(da)[DA_LEN(da)]; name++)