diff --git a/Makefile b/Makefile index 82968f2..3b2f96c 100644 --- a/Makefile +++ b/Makefile @@ -64,39 +64,39 @@ SRCB = ft_lstnew.c \ ft_lstdelone.c \ ft_lstclear.c \ ft_lstiter.c \ - ft_lstmap.c \ - \ - ft_strcat.c \ - ft_strcmp.c \ - ft_strcpy.c \ - ft_strncat.c \ - ft_strncpy.c \ - ft_strstr.c \ - ft_strjoinfree.c \ - ft_strclr.c \ - ft_strdel.c \ - ft_strequ.c \ - ft_striter.c \ - ft_striteri.c \ - ft_strmap.c \ - ft_strnequ.c \ - ft_strnew.c \ - ft_memalloc.c \ - ft_memdel.c \ - ft_putchar.c \ - ft_putendl.c \ - ft_putnbr.c \ - ft_putnbrendl.c \ - ft_putnbrendl_fd.c \ - ft_putnbrbase.c \ - ft_putstr.c \ - ft_any.c \ - ft_atoibase.c \ - ft_convertbase.c \ - ft_foreach.c \ - ft_issort.c \ - ft_arraymap.c \ - ft_strmultisplit.c + ft_lstmap.c +# \ +# ft_strcat.c \ +# ft_strcmp.c \ +# ft_strcpy.c \ +# ft_strncat.c \ +# ft_strncpy.c \ +# ft_strstr.c \ +# ft_strjoinfree.c \ +# ft_strclr.c \ +# ft_strdel.c \ +# ft_strequ.c \ +# ft_striter.c \ +# ft_striteri.c \ +# ft_strmap.c \ +# ft_strnequ.c \ +# ft_strnew.c \ +# ft_memalloc.c \ +# ft_memdel.c \ +# ft_putchar.c \ +# ft_putendl.c \ +# ft_putnbr.c \ +# ft_putnbrendl.c \ +# ft_putnbrendl_fd.c \ +# ft_putnbrbase.c \ +# ft_putstr.c \ +# ft_any.c \ +# ft_atoibase.c \ +# ft_convertbase.c \ +# ft_foreach.c \ +# ft_issort.c \ +# ft_arraymap.c \ +# ft_strmultisplit.c OBJB = $(SRCB:%.c=$(ODIR)/%.o) diff --git a/srcs/add/ft_any.c b/add/ft_any.c similarity index 100% rename from srcs/add/ft_any.c rename to add/ft_any.c diff --git a/srcs/add/ft_arraymap.c b/add/ft_arraymap.c similarity index 100% rename from srcs/add/ft_arraymap.c rename to add/ft_arraymap.c diff --git a/srcs/add/ft_atoibase.c b/add/ft_atoibase.c similarity index 100% rename from srcs/add/ft_atoibase.c rename to add/ft_atoibase.c diff --git a/srcs/add/ft_convertbase.c b/add/ft_convertbase.c similarity index 100% rename from srcs/add/ft_convertbase.c rename to add/ft_convertbase.c diff --git a/srcs/add/ft_foreach.c b/add/ft_foreach.c similarity index 100% rename from srcs/add/ft_foreach.c rename to add/ft_foreach.c diff --git a/srcs/add/ft_issort.c b/add/ft_issort.c similarity index 100% rename from srcs/add/ft_issort.c rename to add/ft_issort.c diff --git a/srcs/add/ft_memalloc.c b/add/ft_memalloc.c similarity index 100% rename from srcs/add/ft_memalloc.c rename to add/ft_memalloc.c diff --git a/srcs/add/ft_memdel.c b/add/ft_memdel.c similarity index 100% rename from srcs/add/ft_memdel.c rename to add/ft_memdel.c diff --git a/srcs/add/ft_putchar.c b/add/ft_putchar.c similarity index 100% rename from srcs/add/ft_putchar.c rename to add/ft_putchar.c diff --git a/srcs/add/ft_putendl.c b/add/ft_putendl.c similarity index 100% rename from srcs/add/ft_putendl.c rename to add/ft_putendl.c diff --git a/srcs/add/ft_putnbr.c b/add/ft_putnbr.c similarity index 100% rename from srcs/add/ft_putnbr.c rename to add/ft_putnbr.c diff --git a/srcs/add/ft_putnbrbase.c b/add/ft_putnbrbase.c similarity index 100% rename from srcs/add/ft_putnbrbase.c rename to add/ft_putnbrbase.c diff --git a/srcs/add/ft_putnbrendl.c b/add/ft_putnbrendl.c similarity index 100% rename from srcs/add/ft_putnbrendl.c rename to add/ft_putnbrendl.c diff --git a/srcs/add/ft_putnbrendl_fd.c b/add/ft_putnbrendl_fd.c similarity index 100% rename from srcs/add/ft_putnbrendl_fd.c rename to add/ft_putnbrendl_fd.c diff --git a/srcs/add/ft_putstr.c b/add/ft_putstr.c similarity index 100% rename from srcs/add/ft_putstr.c rename to add/ft_putstr.c diff --git a/srcs/add/ft_strcat.c b/add/ft_strcat.c similarity index 100% rename from srcs/add/ft_strcat.c rename to add/ft_strcat.c diff --git a/srcs/add/ft_strclr.c b/add/ft_strclr.c similarity index 100% rename from srcs/add/ft_strclr.c rename to add/ft_strclr.c diff --git a/srcs/add/ft_strcmp.c b/add/ft_strcmp.c similarity index 100% rename from srcs/add/ft_strcmp.c rename to add/ft_strcmp.c diff --git a/srcs/add/ft_strcpy.c b/add/ft_strcpy.c similarity index 100% rename from srcs/add/ft_strcpy.c rename to add/ft_strcpy.c diff --git a/srcs/add/ft_strdel.c b/add/ft_strdel.c similarity index 100% rename from srcs/add/ft_strdel.c rename to add/ft_strdel.c diff --git a/srcs/add/ft_strequ.c b/add/ft_strequ.c similarity index 100% rename from srcs/add/ft_strequ.c rename to add/ft_strequ.c diff --git a/srcs/add/ft_striter.c b/add/ft_striter.c similarity index 100% rename from srcs/add/ft_striter.c rename to add/ft_striter.c diff --git a/srcs/add/ft_striteri.c b/add/ft_striteri.c similarity index 100% rename from srcs/add/ft_striteri.c rename to add/ft_striteri.c diff --git a/srcs/add/ft_strjoinfree.c b/add/ft_strjoinfree.c similarity index 100% rename from srcs/add/ft_strjoinfree.c rename to add/ft_strjoinfree.c diff --git a/srcs/add/ft_strmap.c b/add/ft_strmap.c similarity index 100% rename from srcs/add/ft_strmap.c rename to add/ft_strmap.c diff --git a/srcs/add/ft_strmultisplit.c b/add/ft_strmultisplit.c similarity index 100% rename from srcs/add/ft_strmultisplit.c rename to add/ft_strmultisplit.c diff --git a/srcs/add/ft_strncat.c b/add/ft_strncat.c similarity index 100% rename from srcs/add/ft_strncat.c rename to add/ft_strncat.c diff --git a/srcs/add/ft_strncpy.c b/add/ft_strncpy.c similarity index 100% rename from srcs/add/ft_strncpy.c rename to add/ft_strncpy.c diff --git a/srcs/add/ft_strnequ.c b/add/ft_strnequ.c similarity index 100% rename from srcs/add/ft_strnequ.c rename to add/ft_strnequ.c diff --git a/srcs/add/ft_strnew.c b/add/ft_strnew.c similarity index 100% rename from srcs/add/ft_strnew.c rename to add/ft_strnew.c diff --git a/srcs/add/ft_strstr.c b/add/ft_strstr.c similarity index 100% rename from srcs/add/ft_strstr.c rename to add/ft_strstr.c diff --git a/srcs/part1/ft_atoi.c b/ft_atoi.c similarity index 100% rename from srcs/part1/ft_atoi.c rename to ft_atoi.c diff --git a/srcs/part1/ft_bzero.c b/ft_bzero.c similarity index 100% rename from srcs/part1/ft_bzero.c rename to ft_bzero.c diff --git a/srcs/part1/ft_calloc.c b/ft_calloc.c similarity index 100% rename from srcs/part1/ft_calloc.c rename to ft_calloc.c diff --git a/srcs/part1/ft_isalnum.c b/ft_isalnum.c similarity index 100% rename from srcs/part1/ft_isalnum.c rename to ft_isalnum.c diff --git a/srcs/part1/ft_isalpha.c b/ft_isalpha.c similarity index 100% rename from srcs/part1/ft_isalpha.c rename to ft_isalpha.c diff --git a/srcs/part1/ft_isascii.c b/ft_isascii.c similarity index 100% rename from srcs/part1/ft_isascii.c rename to ft_isascii.c diff --git a/srcs/part1/ft_isdigit.c b/ft_isdigit.c similarity index 100% rename from srcs/part1/ft_isdigit.c rename to ft_isdigit.c diff --git a/srcs/part1/ft_isprint.c b/ft_isprint.c similarity index 100% rename from srcs/part1/ft_isprint.c rename to ft_isprint.c diff --git a/srcs/part2/ft_itoa.c b/ft_itoa.c similarity index 100% rename from srcs/part2/ft_itoa.c rename to ft_itoa.c diff --git a/srcs/bonus/ft_lstadd_back.c b/ft_lstadd_back.c similarity index 100% rename from srcs/bonus/ft_lstadd_back.c rename to ft_lstadd_back.c diff --git a/srcs/bonus/ft_lstadd_front.c b/ft_lstadd_front.c similarity index 100% rename from srcs/bonus/ft_lstadd_front.c rename to ft_lstadd_front.c diff --git a/srcs/bonus/ft_lstclear.c b/ft_lstclear.c similarity index 100% rename from srcs/bonus/ft_lstclear.c rename to ft_lstclear.c diff --git a/srcs/bonus/ft_lstdelone.c b/ft_lstdelone.c similarity index 100% rename from srcs/bonus/ft_lstdelone.c rename to ft_lstdelone.c diff --git a/srcs/bonus/ft_lstiter.c b/ft_lstiter.c similarity index 100% rename from srcs/bonus/ft_lstiter.c rename to ft_lstiter.c diff --git a/srcs/bonus/ft_lstlast.c b/ft_lstlast.c similarity index 100% rename from srcs/bonus/ft_lstlast.c rename to ft_lstlast.c diff --git a/srcs/bonus/ft_lstmap.c b/ft_lstmap.c similarity index 100% rename from srcs/bonus/ft_lstmap.c rename to ft_lstmap.c diff --git a/srcs/bonus/ft_lstnew.c b/ft_lstnew.c similarity index 100% rename from srcs/bonus/ft_lstnew.c rename to ft_lstnew.c diff --git a/srcs/bonus/ft_lstsize.c b/ft_lstsize.c similarity index 100% rename from srcs/bonus/ft_lstsize.c rename to ft_lstsize.c diff --git a/srcs/part1/ft_memccpy.c b/ft_memccpy.c similarity index 100% rename from srcs/part1/ft_memccpy.c rename to ft_memccpy.c diff --git a/srcs/part1/ft_memchr.c b/ft_memchr.c similarity index 100% rename from srcs/part1/ft_memchr.c rename to ft_memchr.c diff --git a/srcs/part1/ft_memcmp.c b/ft_memcmp.c similarity index 100% rename from srcs/part1/ft_memcmp.c rename to ft_memcmp.c diff --git a/srcs/part1/ft_memcpy.c b/ft_memcpy.c similarity index 100% rename from srcs/part1/ft_memcpy.c rename to ft_memcpy.c diff --git a/srcs/part1/ft_memmove.c b/ft_memmove.c similarity index 100% rename from srcs/part1/ft_memmove.c rename to ft_memmove.c diff --git a/srcs/part1/ft_memset.c b/ft_memset.c similarity index 100% rename from srcs/part1/ft_memset.c rename to ft_memset.c diff --git a/srcs/part2/ft_putchar_fd.c b/ft_putchar_fd.c similarity index 100% rename from srcs/part2/ft_putchar_fd.c rename to ft_putchar_fd.c diff --git a/srcs/part2/ft_putendl_fd.c b/ft_putendl_fd.c similarity index 100% rename from srcs/part2/ft_putendl_fd.c rename to ft_putendl_fd.c diff --git a/srcs/part2/ft_putnbr_fd.c b/ft_putnbr_fd.c similarity index 100% rename from srcs/part2/ft_putnbr_fd.c rename to ft_putnbr_fd.c diff --git a/srcs/part2/ft_putstr_fd.c b/ft_putstr_fd.c similarity index 100% rename from srcs/part2/ft_putstr_fd.c rename to ft_putstr_fd.c diff --git a/srcs/part2/ft_split.c b/ft_split.c similarity index 87% rename from srcs/part2/ft_split.c rename to ft_split.c index f8c729d..3aa0f18 100644 --- a/srcs/part2/ft_split.c +++ b/ft_split.c @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/11/25 14:00:13 by hulamy #+# #+# */ -/* Updated: 2019/12/01 16:01:20 by hulamy ### ########.fr */ +/* Updated: 2019/12/02 17:48:50 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ @@ -92,6 +92,13 @@ static int ft_count_word(char const *s, char c) return (words); } +void *ft_free(char **array) +{ + while (array) + free(array++); + return (NULL); +} + char **ft_split(char const *s, char c) { char **array; @@ -99,12 +106,12 @@ char **ft_split(char const *s, char c) int j; int len; + i = ft_count_word(s, c); + if (!s || !c || !(array = malloc(sizeof(char *) * (i + 1)))) + return (NULL); + array[i] = 0; i = -1; j = 0; - if (!s || !c) - return (NULL); - if (!(array = (char **)malloc(sizeof(char *) * (ft_count_word(s, c) + 1)))) - return (NULL); while (s[++i]) { if (s[i] != c) @@ -112,10 +119,10 @@ char **ft_split(char const *s, char c) len = 0; while (s[i + len] && s[i + len] != c) len++; - array[j++] = ft_substr(s, i, len); + if (!(array[j++] = ft_substr(s, i, len))) + return (ft_free(array)); i = i + len - 1; } } - array[j] = 0; return (array); } diff --git a/srcs/part1/ft_strchr.c b/ft_strchr.c similarity index 100% rename from srcs/part1/ft_strchr.c rename to ft_strchr.c diff --git a/srcs/part1/ft_strdup.c b/ft_strdup.c similarity index 100% rename from srcs/part1/ft_strdup.c rename to ft_strdup.c diff --git a/srcs/part2/ft_strjoin.c b/ft_strjoin.c similarity index 100% rename from srcs/part2/ft_strjoin.c rename to ft_strjoin.c diff --git a/srcs/part1/ft_strlcat.c b/ft_strlcat.c similarity index 100% rename from srcs/part1/ft_strlcat.c rename to ft_strlcat.c diff --git a/srcs/part1/ft_strlcpy.c b/ft_strlcpy.c similarity index 100% rename from srcs/part1/ft_strlcpy.c rename to ft_strlcpy.c diff --git a/srcs/part1/ft_strlen.c b/ft_strlen.c similarity index 100% rename from srcs/part1/ft_strlen.c rename to ft_strlen.c diff --git a/srcs/part2/ft_strmapi.c b/ft_strmapi.c similarity index 100% rename from srcs/part2/ft_strmapi.c rename to ft_strmapi.c diff --git a/srcs/part1/ft_strncmp.c b/ft_strncmp.c similarity index 100% rename from srcs/part1/ft_strncmp.c rename to ft_strncmp.c diff --git a/srcs/part1/ft_strnstr.c b/ft_strnstr.c similarity index 100% rename from srcs/part1/ft_strnstr.c rename to ft_strnstr.c diff --git a/srcs/part1/ft_strrchr.c b/ft_strrchr.c similarity index 100% rename from srcs/part1/ft_strrchr.c rename to ft_strrchr.c diff --git a/srcs/part2/ft_strtrim.c b/ft_strtrim.c similarity index 100% rename from srcs/part2/ft_strtrim.c rename to ft_strtrim.c diff --git a/srcs/part2/ft_substr.c b/ft_substr.c similarity index 100% rename from srcs/part2/ft_substr.c rename to ft_substr.c diff --git a/srcs/part1/ft_tolower.c b/ft_tolower.c similarity index 100% rename from srcs/part1/ft_tolower.c rename to ft_tolower.c diff --git a/srcs/part1/ft_toupper.c b/ft_toupper.c similarity index 100% rename from srcs/part1/ft_toupper.c rename to ft_toupper.c