aboutsummaryrefslogtreecommitdiff
path: root/src/dstr/ft_dstrinsert.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dstr/ft_dstrinsert.c')
-rw-r--r--src/dstr/ft_dstrinsert.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/dstr/ft_dstrinsert.c b/src/dstr/ft_dstrinsert.c
index 6a1486c..931f5d8 100644
--- a/src/dstr/ft_dstrinsert.c
+++ b/src/dstr/ft_dstrinsert.c
@@ -6,22 +6,29 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/03 14:00:44 by charles #+# #+# */
-/* Updated: 2020/04/03 15:09:52 by charles ### ########.fr */
+/* Updated: 2020/04/04 21:21:19 by charles ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft_dstr.h"
+/*
+** \brief Insert string in dynamic string
+** \param dstr Dynamic string where the string will be inserted
+** \param inserted Static string to insert
+** \param i Index where it should be inserted
+** \return Passed dynamic string or NULL on error
+*/
+
t_ftdstr *ft_dstrinsert(t_ftdstr *dstr, char *inserted, size_t i)
{
size_t inserted_len;
- if (i > dstr->capacity)
+ if (i > dstr->length)
return (NULL);
inserted_len = ft_strlen(inserted);
- if (dstr->capacity - dstr->length - 1 < inserted_len)
- if (ft_dstrgrow(dstr, dstr->capacity + inserted_len + 1) == NULL)
- return (NULL);
+ if (ft_dstrgrow(dstr, dstr->capacity + inserted_len) == NULL)
+ return (NULL);
ft_memmove(dstr->str + i + inserted_len,
dstr->str + i,
dstr->length - i + 1);