aboutsummaryrefslogtreecommitdiff
path: root/array.h
diff options
context:
space:
mode:
authorRiley Beckett <rbeckettvt@gmail.com>2025-10-23 00:07:26 -0400
committerRiley Beckett <rbeckettvt@gmail.com>2025-10-23 00:07:26 -0400
commit9d8db4146d025e3a967700414a9fc68fa186045e (patch)
tree9d0e0d6dd46a2f580f4b2fb4e1fbba2b0c6fb11e /array.h
parent90d6b2a866c6da29921dfae3d684203fd232ea74 (diff)
add basic cursor movement
Diffstat (limited to 'array.h')
-rw-r--r--array.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/array.h b/array.h
index 1672ac6..b82e1e3 100644
--- a/array.h
+++ b/array.h
@@ -27,6 +27,23 @@ void* array_add_(void* array, size_t item_size);
(array) = NULL; \
} while (0)
+#define array_erase(array, index) do { \
+ if ((index)) {\
+ for (int __i = (index) - 1; __i < array_size((array)) - 1; __i++) \
+ (array)[__i] = (array)[__i + 1]; \
+ ((array_info*)(array))[-1].size--; \
+ } \
+} while(0)
+
+#define array_insert(array, index, value) do { \
+ void* __temp = array_add_((array), sizeof(*(array))); \
+ (array) = __temp; \
+ for (int __i = array_size((array)) - 1; __i > (index); __i--) \
+ (array)[__i] = (array)[__i - 1]; \
+ (array)[(index)] = value; \
+} while(0) \
+
+
#define array_add(array, value) do { \
void* __temp = array_add_((array), sizeof(*(array))); \
(array) = __temp; \