ft_vec_find.c \
ft_vec_find_index.c \
ft_vec_copy.c \
+ ft_vec_insert_empty.c \
+ ft_vec_append_empty.c \
\
ft_vec_is_equal.c \
\
--- /dev/null
+#include "ft_arr.h"
+
+t_arr_stat ft_vec_append_empty(t_vec *vec)
+{
+ return (ft_vec_append_empty_range(vec, 1));
+}
+
+t_arr_stat ft_vec_append_empty_range(t_vec *vec, size_t count)
+{
+ return (ft_vec_insert_empty_range(vec, count, vec->size));
+}
--- /dev/null
+#include "ft_arr.h"
+#include "libft.h"
+
+t_arr_stat ft_vec_insert_empty(t_vec *vec, size_t index)
+{
+ return (ft_vec_insert_empty_range(vec, 1, index));
+}
+
+t_arr_stat ft_vec_insert_empty_range(t_vec *vec,
+ size_t count, size_t index)
+{
+ if (count == 0)
+ return (success);
+ if (!vec || index > SIZE_MAX - count)
+ return (invalid_input);
+ while (vec->size == vec->capacity || index + count > vec->capacity)
+ {
+ if (ft_vec_enlarge(vec))
+ return (alloc_fail);
+ }
+ if (index < vec->size)
+ ft_memmove((char *)vec->vec + vec->el_size * (index + count),
+ (char *)vec->vec + vec->el_size * index,
+ vec->el_size * (vec->size - index));
+ ft_bzero((char *)vec->vec + vec->el_size * index,
+ vec->el_size * count);
+ if (index > vec->size)
+ vec->size = index;
+ vec->size += count;
+ return (success);
+}
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 13:58:15 by ljiriste #+# #+# */
-/* Updated: 2025/03/26 20:34:00 by ljiriste ### ########.fr */
+/* Updated: 2025/07/31 07:21:49 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index,
void (*free_el)(void *));
+t_arr_stat ft_vec_insert_empty(t_vec *vec, size_t i);
+t_arr_stat ft_vec_insert_empty_range(t_vec *vec, size_t count, size_t i);
+t_arr_stat ft_vec_append_empty(t_vec *vec);
+t_arr_stat ft_vec_append_empty_range(t_vec *vec, size_t count);
+
// This macro should have been used for static t_vec initialization
// as I see no other way.
// But the Norm forbids macro functions, so just use the literal itself