diff --git a/libftasm/includes/libft.h b/libftasm/includes/libft.h index bbebfb96..e4338d1d 100644 --- a/libftasm/includes/libft.h +++ b/libftasm/includes/libft.h @@ -104,6 +104,8 @@ char **ft_split_whitespaces(char *str); char *ft_convert_base( char *str, char *base_from, char *base_to, char *flags); char *ft_strcatf(char *s1, const char *s2); +char *ft_strinsert(char *str, char c, int n); +void ft_strsqueeze(char *str, int n); char *ft_itoa_base(int nbr, char *base, char *flags); char *ft_lltoa_base(long long nbr, char *base, char *flags); diff --git a/libftasm/src/dlst/ft_dlstadd_after.c b/libftasm/src/dlst/ft_dlstadd_after.c index caec607d..19dc852a 100644 --- a/libftasm/src/dlst/ft_dlstadd_after.c +++ b/libftasm/src/dlst/ft_dlstadd_after.c @@ -19,6 +19,8 @@ void ft_dlstadd_after(t_dlist **alst, t_dlist *new) new->prev = (*alst); if (*alst) new->next = (*alst)->next; + else + new->next = NULL; if (new->next) new->next->prev = new; if (new->prev) diff --git a/libftasm/src/str/ft_strinsert.c b/libftasm/src/str/ft_strinsert.c new file mode 100644 index 00000000..685d0834 --- /dev/null +++ b/libftasm/src/str/ft_strinsert.c @@ -0,0 +1,12 @@ +#include "libft.h" + +char *ft_strinsert(char *str, char c, int n) +{ + char tmp[ft_strlen(str)]; + char *out; + + ft_strcpy(tmp, str + n); + str[n] = 0; + out = ft_str3join(str, (char []){c, 0}, tmp); + return (out); +} diff --git a/libftasm/src/str/ft_strsqueeze.c b/libftasm/src/str/ft_strsqueeze.c new file mode 100644 index 00000000..f94d800c --- /dev/null +++ b/libftasm/src/str/ft_strsqueeze.c @@ -0,0 +1,11 @@ +#include "libft.h" + +void ft_strsqueeze(char *str, int n) +{ + int i; + + i = 0; + while (str[i] && i < n) + i++; + ft_strcpy(str, str + 1); +}