diff options
author | WormHeamer | 2025-02-05 07:14:33 -0500 |
---|---|---|
committer | WormHeamer | 2025-02-05 07:14:33 -0500 |
commit | 504d086994631a55083e05b28b904f9194b1ff8f (patch) | |
tree | 61d49963f0bc1cb3e51aac9ce693d62a88609e70 | |
parent | e90840a50e9c1dce4485c0dc0be2de277d80192c (diff) |
add DA_PUSH_MULT
-rw-r--r-- | dynarr.h | 7 |
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++) |