diff --git a/Makefile b/Makefile index 092636c..a77d2ed 100644 --- a/Makefile +++ b/Makefile @@ -24,41 +24,43 @@ SRCS = ft_memset.c \ ft_calloc.c \ ft_strdup.c \ ft_substr.c \ - ft_strjoin.c \ ft_strtrim.c \ ft_split.c \ + ft_strjoin.c \ ft_itoa.c \ ft_strmapi.c \ ft_putchar_fd.c \ ft_putstr_fd.c \ ft_putendl_fd.c \ - ft_putnbr_fd.c + ft_putnbr_fd.c \ + get_next_line.c \ + get_next_line_utils.c OBJS = ${SRCS:.c=.o} BONUS_C = ft_lstnew.c ft_lstadd_front.c ft_lstsize.c ft_lstlast.c ft_lstadd_back.c \ - ft_lstdelone.c ft_lstclear.c ft_lstiter.c ft_lstmap.c + ft_lstdelone.c ft_lstclear.c ft_lstiter.c ft_lstmap.c ft_lstbeforelast.c BONUS_O = ${BONUS_C:.c=.o} CC = gcc -CFLAGS = -Wall -Wextra -Werror +CFLAGS = -Wall -Wextra RM = rm -rf .c.o: - ${CC} ${CFLAGS} -c $< -o ${<:.c=.o} + @${CC} ${CFLAGS} -c $< -o ${<:.c=.o} ${NAME}:${OBJS} - ar -rcs ${NAME} ${OBJS} + @ar -rcs ${NAME} ${OBJS} all: ${NAME} bonus: all - ${CC} ${CFLAGS} -c ${BONUS_C} - ar -rcs ${NAME} ${BONUS_O} + @${CC} ${CFLAGS} -c ${BONUS_C} + @ar -rcs ${NAME} ${BONUS_O} clean: - ${RM} ${OBJS} - ${RM} ${BONUS_O} + @${RM} ${OBJS} + @${RM} ${BONUS_O} fclean: clean - ${RM} ${NAME} + @${RM} ${NAME} re: fclean all diff --git a/ft_atoi.c b/ft_atoi.c index a9db23e..0073b7e 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -6,17 +6,17 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:09:17 by apommier #+# #+# */ -/* Updated: 2020/12/12 12:05:13 by apommier ### ########.fr */ +/* Updated: 2022/01/18 06:50:22 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -int ft_atoi(const char *nptr) +long ft_atoi(const char *nptr) { - int i; - int nbr; - int minus; + int i; + long nbr; + long minus; minus = 1; nbr = 0; diff --git a/ft_bzero.c b/ft_bzero.c index 6480413..5baa4fe 100644 --- a/ft_bzero.c +++ b/ft_bzero.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:09:48 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:02:33 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:26:30 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ void ft_bzero(void *s, size_t n) char *p; int i; - p = (char*)s; + p = (char *)s; i = 0; while (n != 0) { diff --git a/ft_calloc.c b/ft_calloc.c index 08404eb..e4cea33 100644 --- a/ft_calloc.c +++ b/ft_calloc.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:09:57 by apommier #+# #+# */ -/* Updated: 2020/12/16 16:13:27 by apommier ### ########.fr */ +/* Updated: 2022/01/17 21:18:04 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,5 +27,5 @@ void *ft_calloc(size_t nmemb, size_t size) i++; } } - return ((void*)new); + return ((void *)new); } diff --git a/ft_itoa.c b/ft_itoa.c index 7de7203..70f2fd0 100644 --- a/ft_itoa.c +++ b/ft_itoa.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_itoa.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/08 18:20:19 by apommier #+# #+# */ -/* Updated: 2020/12/20 11:52:40 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:28:01 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ static char *fill(long n, int j, int minus) char *dest; j += minus; - dest = (char*)malloc(sizeof(char) * (j + 1)); + dest = (char *)malloc(sizeof(char) * (j + 1)); if (dest == 0) return (0); dest[j] = 0; @@ -34,7 +34,7 @@ static char *fill(long n, int j, int minus) return (dest); } -char *ft_itoa(int n) +char *ft_itoa(int n) { long i; long k; diff --git a/ft_lstbeforelast.c b/ft_lstbeforelast.c new file mode 100644 index 0000000..535dd53 --- /dev/null +++ b/ft_lstbeforelast.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstbeforelast.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/12/09 19:16:55 by apommier #+# #+# */ +/* Updated: 2022/01/17 11:28:22 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +t_list *ft_lstbeforelast(t_list *lst) +{ + t_list *save; + + save = 0; + if (!lst) + return (0); + while (lst->next) + { + save = lst; + lst = lst->next; + } + return (save); +} diff --git a/ft_lstclear.c b/ft_lstclear.c index d768b5a..152fb31 100644 --- a/ft_lstclear.c +++ b/ft_lstclear.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_lstclear.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/09 19:58:04 by apommier #+# #+# */ -/* Updated: 2020/12/12 09:15:23 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:28:39 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,13 +14,13 @@ void ft_lstclear(t_list **lst, void (*del)(void*)) { - t_list *chr; + t_list *chr; chr = *lst; while (*lst) { chr = (*lst)->next; - del((*lst)->content); + del((*lst)->nbr); free(*lst); *lst = chr; } diff --git a/ft_lstdelone.c b/ft_lstdelone.c index d932649..f0dea04 100644 --- a/ft_lstdelone.c +++ b/ft_lstdelone.c @@ -16,6 +16,6 @@ void ft_lstdelone(t_list *lst, void (*del)(void*)) { if (!lst) return ; - del(lst->content); + del(lst->nbr); free(lst); } diff --git a/ft_lstiter.c b/ft_lstiter.c index e3ac84f..0e9ea7a 100644 --- a/ft_lstiter.c +++ b/ft_lstiter.c @@ -16,7 +16,7 @@ void ft_lstiter(t_list *lst, void (*f)(void *)) { while (lst) { - f(lst->content); + f(lst->nbr); lst = lst->next; } } diff --git a/ft_lstlast.c b/ft_lstlast.c index 86780c3..2bf317b 100644 --- a/ft_lstlast.c +++ b/ft_lstlast.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_lstlast.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/09 19:16:55 by apommier #+# #+# */ -/* Updated: 2020/12/09 19:21:54 by apommier ### ########.fr */ +/* Updated: 2021/11/26 01:21:39 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_lstmap.c b/ft_lstmap.c index d53c442..252c0c6 100644 --- a/ft_lstmap.c +++ b/ft_lstmap.c @@ -20,7 +20,7 @@ t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) begin = 0; while (lst) { - new = ft_lstnew(f(lst->content)); + new = ft_lstnew(f(lst->nbr)); if (!new) { ft_lstclear(&begin, *del); diff --git a/ft_lstnew.c b/ft_lstnew.c index 9a162bd..e108f42 100644 --- a/ft_lstnew.c +++ b/ft_lstnew.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_lstnew.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/09 01:06:20 by apommier #+# #+# */ -/* Updated: 2020/12/11 17:46:20 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:29:09 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,12 +14,13 @@ t_list *ft_lstnew(void *content) { - t_list *new; + t_list *new; - new = (t_list*)malloc(sizeof(t_list)); + new = (t_list *)malloc(sizeof(t_list)); if (!new) return (0); - new->content = content; + new->swap = 0; + new->nbr = content; new->next = 0; return (new); } diff --git a/ft_memccpy.c b/ft_memccpy.c index c305fc1..0b1644c 100644 --- a/ft_memccpy.c +++ b/ft_memccpy.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:11:04 by apommier #+# #+# */ -/* Updated: 2020/12/12 14:07:04 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:29:38 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,8 +19,8 @@ void *ft_memccpy(void *dest, const void *src, int c, size_t n) size_t i; i = 0; - p = (char*)dest; - p1 = (const char*)src; + p = (char *)dest; + p1 = (const char *)src; while (i < n) { p[i] = p1[i]; diff --git a/ft_memchr.c b/ft_memchr.c index 6a0fb37..ce8f294 100644 --- a/ft_memchr.c +++ b/ft_memchr.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:11:39 by apommier #+# #+# */ -/* Updated: 2020/12/12 13:53:45 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:29:51 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,9 +14,9 @@ void *ft_memchr(const void *s, int c, size_t n) { - unsigned char *str; + unsigned char *str; - str = (unsigned char*)s; + str = (unsigned char *)s; while (n) { if ((unsigned char)c == *str) diff --git a/ft_memcmp.c b/ft_memcmp.c index 58a837c..f9af3ee 100644 --- a/ft_memcmp.c +++ b/ft_memcmp.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:11:51 by apommier #+# #+# */ -/* Updated: 2020/12/12 14:14:51 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:30:32 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,8 +19,8 @@ int ft_memcmp(const void *s1, const void *s2, size_t n) i = 0; while (n) { - if (((unsigned char*)s1)[i] != ((unsigned char*)s2)[i]) - return (((unsigned char*)s1)[i] - ((unsigned char*)s2)[i]); + if (((unsigned char *)s1)[i] != ((unsigned char *)s2)[i]) + return (((unsigned char *)s1)[i] - ((unsigned char *)s2)[i]); n--; i++; } diff --git a/ft_memcpy.c b/ft_memcpy.c index a5abdd8..92c0480 100644 --- a/ft_memcpy.c +++ b/ft_memcpy.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:12:03 by apommier #+# #+# */ -/* Updated: 2020/12/16 16:14:24 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:30:43 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,8 +20,8 @@ void *ft_memcpy(void *dest, const void *src, size_t n) if (!dest && !src) return (dest); - p = (char*)dest; - p1 = (const char*)src; + p = (char *)dest; + p1 = (const char *)src; i = 0; while (i < n) { diff --git a/ft_memmove.c b/ft_memmove.c index 829c13f..0a8a6db 100644 --- a/ft_memmove.c +++ b/ft_memmove.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:12:14 by apommier #+# #+# */ -/* Updated: 2020/12/13 21:15:13 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:31:05 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ void *ft_memmove(void *dest, const void *src, size_t n) { - size_t i; + size_t i; i = 0; if (!dest && !src) @@ -23,7 +23,7 @@ void *ft_memmove(void *dest, const void *src, size_t n) { while (n) { - ((unsigned char*)dest)[n - 1] = ((unsigned char*)src)[n - 1]; + ((unsigned char *)dest)[n - 1] = ((unsigned char *)src)[n - 1]; n--; } } @@ -31,7 +31,7 @@ void *ft_memmove(void *dest, const void *src, size_t n) { while (i < n) { - ((unsigned char*)dest)[i] = ((unsigned char*)src)[i]; + ((unsigned char *)dest)[i] = ((unsigned char *)src)[i]; i++; } } diff --git a/ft_memset.c b/ft_memset.c index da16346..58dacd9 100644 --- a/ft_memset.c +++ b/ft_memset.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:12:24 by apommier #+# #+# */ -/* Updated: 2020/12/11 15:48:06 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:31:28 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,7 @@ void *ft_memset(void *s, int c, size_t n) unsigned char *p; i = 0; - p = (unsigned char*)s; + p = (unsigned char *)s; while (n > 0) { p[i] = (unsigned char)c; diff --git a/ft_putnbr_fd.c b/ft_putnbr_fd.c index faa08fd..eb6aebd 100644 --- a/ft_putnbr_fd.c +++ b/ft_putnbr_fd.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_putnbr_fd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/08 23:25:57 by apommier #+# #+# */ -/* Updated: 2020/12/12 09:42:09 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:31:56 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ void ft_putnbr_fd(int n, int fd) { - long nbr; + long nbr; nbr = n; if (nbr < 0) diff --git a/ft_split.c b/ft_split.c index 3c39bc6..8302b45 100644 --- a/ft_split.c +++ b/ft_split.c @@ -3,23 +3,23 @@ /* ::: :::::::: */ /* ft_split.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/07 00:54:12 by apommier #+# #+# */ -/* Updated: 2020/12/13 23:07:09 by apommier ### ########.fr */ +/* Updated: 2022/01/21 08:09:38 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -static int fill_tab(char *s, char c, char **dest, size_t index) +static int fill_tab(char *s, char c, char **dest, size_t index) { int i; i = 0; while (s[i] != c && s[i]) i++; - dest[index] = (char*)ft_calloc(i + 1, sizeof(char)); + dest[index] = (char *)ft_calloc(i + 1, sizeof(char)); if (dest[index] == 0) return (0); i = 0; @@ -31,7 +31,7 @@ static int fill_tab(char *s, char c, char **dest, size_t index) return (1); } -static void call(char *s, char c, char **dest, int j) +static void call(char *s, char c, char **dest, int j) { int index; int k; @@ -51,7 +51,7 @@ static void call(char *s, char c, char **dest, int j) } } -char **ft_split(char const *s, char c) +char **ft_split(char const *s, char c) { int i; int j; @@ -71,9 +71,10 @@ char **ft_split(char const *s, char c) while (s[i] == c && s[i]) i++; } - if (!(dest = (char**)malloc(sizeof(char*) * (i + j)))) + dest = (char **)ft_calloc(sizeof(char *), (i + j)); + if (!dest) return (0); dest[j] = 0; - call((char*)s, c, dest, j); + call((char *)s, c, dest, j); return (dest); } diff --git a/ft_strchr.c b/ft_strchr.c index a711097..d3699c2 100644 --- a/ft_strchr.c +++ b/ft_strchr.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_strchr.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/12 13:57:59 by apommier #+# #+# */ -/* Updated: 2020/12/12 13:58:05 by apommier ### ########.fr */ +/* Updated: 2022/01/17 21:18:59 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,13 +14,15 @@ char *ft_strchr(const char *s, int c) { - unsigned char *str; + char *str; - str = (unsigned char*)s; + if (!s) + return ("no s"); + str = (char *)s; while ((*str != c) && (*str != 0)) str++; if (*str == c) - return ((char*)str); + return ((char *)str); else return (0); } diff --git a/ft_strjoin.c b/ft_strjoin.c index 250d499..da55361 100644 --- a/ft_strjoin.c +++ b/ft_strjoin.c @@ -3,16 +3,16 @@ /* ::: :::::::: */ /* ft_strjoin.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2020/12/11 15:38:13 by apommier #+# #+# */ -/* Updated: 2020/12/16 17:00:44 by apommier ### ########.fr */ +/* Created: 2022/01/20 21:44:01 by apommier #+# #+# */ +/* Updated: 2022/01/21 08:07:04 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -char *ft_strjoin(char const *s1, char const *s2) +char *ft_strjoin(char *save, char *s2) { char *dest; int i; @@ -20,18 +20,17 @@ char *ft_strjoin(char const *s1, char const *s2) i = 0; j = 0; - if (!s1 || !s2) + if (!save && !s2) return (0); - if (!(dest = (char*)malloc(ft_strlen(s1) + ft_strlen(s2) + 1))) - return (0); - while (s1[i] && s1) + dest = malloc(ft_strlen(save) + ft_strlen(s2) + 1); + while (save && save[i]) { - dest[j] = s1[i]; + dest[j] = save[i]; j++; i++; } i = 0; - while (s2[i] && s2) + while (s2 && s2[i]) { dest[j] = s2[i]; j++; diff --git a/ft_strlcpy.c b/ft_strlcpy.c index 8d826c8..05af28a 100644 --- a/ft_strlcpy.c +++ b/ft_strlcpy.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:07 by apommier #+# #+# */ -/* Updated: 2020/12/12 16:07:05 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:38:48 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,8 +14,8 @@ size_t ft_strlcpy(char *dst, const char *src, size_t size) { - int i; - int j; + int i; + int j; j = 0; i = 0; diff --git a/ft_strlen.c b/ft_strlen.c index c4bad3d..5ac9d2b 100644 --- a/ft_strlen.c +++ b/ft_strlen.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:19 by apommier #+# #+# */ -/* Updated: 2020/11/29 17:12:23 by apommier ### ########.fr */ +/* Updated: 2022/01/17 21:12:05 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,9 +14,11 @@ size_t ft_strlen(const char *s) { - size_t i; + size_t i; i = 0; + if (!s) + return (0); while (s[i] != 0) i++; return (i); diff --git a/ft_strmapi.c b/ft_strmapi.c index 0040b83..a983137 100644 --- a/ft_strmapi.c +++ b/ft_strmapi.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_strmapi.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/08 19:03:09 by apommier #+# #+# */ -/* Updated: 2020/12/16 16:52:49 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:39:05 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) if (!s) return (0); i = 0; - dest = (char*)ft_calloc(ft_strlen(s) + 1, sizeof(char)); + dest = (char *)ft_calloc(ft_strlen(s) + 1, sizeof(char)); if (!dest) return (0); while (s[i]) diff --git a/ft_strncmp.c b/ft_strncmp.c index 91f1d0b..0951207 100644 --- a/ft_strncmp.c +++ b/ft_strncmp.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:31 by apommier #+# #+# */ -/* Updated: 2020/12/13 20:44:39 by apommier ### ########.fr */ +/* Updated: 2022/02/14 00:27:01 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ int ft_strncmp(const char *s1, const char *s2, size_t n) { - int i; + int i; i = 0; while (n && (s1[i] || s2[i])) @@ -26,3 +26,19 @@ int ft_strncmp(const char *s1, const char *s2, size_t n) } return (0); } + +int ft_strcmp(const char *s1, const char *s2) +{ + int i; + + i = 0; + if (!s1 || !s2) + return (1); + while (s1[i] || s2[i]) + { + if (s1[i] != s2[i]) + return ((unsigned char)s1[i] - (unsigned char)s2[i]); + i++; + } + return (0); +} diff --git a/ft_strnstr.c b/ft_strnstr.c index af1e057..e993e0d 100644 --- a/ft_strnstr.c +++ b/ft_strnstr.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:42 by apommier #+# #+# */ -/* Updated: 2020/12/13 22:55:27 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:39:28 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,9 +19,9 @@ char *ft_strnstr(const char *big, const char *little, size_t len) i = 0; if (!little[i]) - return ((char*)big); + return ((char *)big); if (!little[i]) - return ((char*)big); + return ((char *)big); while (big[i] && len - i) { j = 0; @@ -32,7 +32,7 @@ char *ft_strnstr(const char *big, const char *little, size_t len) while (little[j] == big[i + j] && little[j] && len - i - j) j++; if (little[j] == 0) - return ((char*)&big[i]); + return ((char *)&big[i]); else i++; } diff --git a/ft_strrchr.c b/ft_strrchr.c index 55751e8..0d11e30 100644 --- a/ft_strrchr.c +++ b/ft_strrchr.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 00:13:52 by apommier #+# #+# */ -/* Updated: 2020/12/16 16:14:41 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:39:37 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ char *ft_strrchr(const char *s, int c) char *str; char *last; - str = (char*)s; + str = (char *)s; if (c == 0) { while (*str) diff --git a/ft_strtrim.c b/ft_strtrim.c index a6cda30..3930252 100644 --- a/ft_strtrim.c +++ b/ft_strtrim.c @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/11/29 23:52:05 by apommier #+# #+# */ -/* Updated: 2020/12/16 18:06:01 by apommier ### ########.fr */ +/* Updated: 2022/01/17 11:40:17 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,7 +45,7 @@ static int len_dest(const char *s1, char const *set) return (len); } -char *ft_strtrim(char const *s1, char const *set) +char *ft_strtrim(char const *s1, char const *set) { int j; int i; @@ -57,7 +57,8 @@ char *ft_strtrim(char const *s1, char const *set) if (!s1) return (0); len = len_dest(s1, set); - if (!(dest = ft_calloc(len + 1, 1))) + dest = ft_calloc(len + 1, 1); + if (!dest) return (0); while (is_set(set, s1[i])) i++; diff --git a/get_next_line.c b/get_next_line.c new file mode 100644 index 0000000..24ca95c --- /dev/null +++ b/get_next_line.c @@ -0,0 +1,100 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kinou +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/10/23 07:55:17 by kinou #+# #+# */ +/* Updated: 2021/11/01 10:21:35 by kinou ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_free(char *save, int *end) +{ + if (!*end) + { + free(save); + free(end); + return (0); + } + free(end); + return (save); +} + +char *set_line(char *line, char *save) +{ + int i; + + i = 0; + line = ft_strjoin(save, 0); + while (line[i] && line[i] != '\n') + i++; + if (line[i] == '\n') + { + while (line[i++]) + line[i] = '\0'; + } + return (line); +} + +char *set_save(char *save) +{ + char *delete; + int i; + + i = 0; + delete = save; + while (save[i] && save[i] != '\n') + i++; + if (save[i] != '\n') + i = 0; + save = ft_strjoin((save + i + 1), 0); + free(delete); + return (save); +} + +char *next_line(char *save, int *end, int fd) +{ + char *delete; + char *dest; + + while (!ft_strchr(save, '\n') && *end > 0) + { + dest = ft_calloc(1, 1 + 1); + *end = read(fd, dest, 1); + delete = save; + save = ft_strjoin(save, dest); + free(delete); + free(dest); + } + return (save); +} + +char *get_next_line(int fd) +{ + static char *save = NULL; + int *end; + char *line; + + line = 0; + if (fd < 0) + return (0); + end = malloc(sizeof(int *)); + *end = 1; + if (save == NULL) + save = ft_calloc(1, 1); + save = next_line(save, end, fd); + line = set_line(line, save); + if (ft_strlen(line) > 0) + { + save = set_save(save); + save = ft_free(save, end); + return (line); + } + free(line); + save = ft_free(save, end); + return (0); +} diff --git a/get_next_line.h b/get_next_line.h new file mode 100644 index 0000000..35d74d6 --- /dev/null +++ b/get_next_line.h @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/14 05:58:49 by apommier #+# #+# */ +/* Updated: 2022/01/17 21:45:15 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef GET_NEXT_LINE_H +# define GET_NEXT_LINE_H + +char *get_next_line(int fd); +char *ft_strjoin(char *save, char *s2); + +#endif diff --git a/get_next_line_utils.c b/get_next_line_utils.c new file mode 100644 index 0000000..a8fde1b --- /dev/null +++ b/get_next_line_utils.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* get_next_line_utils.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/14 06:05:54 by apommier #+# #+# */ +/* Updated: 2022/01/20 21:58:39 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +char *ft_strjoin(char *save, char *s2) +{ + char *dest; + int i; + int j; + + i = 0; + j = 0; + if (!save && !s2) + return (0); + dest = malloc(ft_strlen(save) + ft_strlen(s2) + 1); + while (save && save[i]) + { + dest[j] = save[i]; + j++; + i++; + } + i = 0; + while (s2 && s2[i]) + { + dest[j] = s2[i]; + j++; + i++; + } + dest[j] = 0; + return (dest); +} diff --git a/libft.h b/libft.h index 53996da..2aa8847 100644 --- a/libft.h +++ b/libft.h @@ -3,23 +3,26 @@ /* ::: :::::::: */ /* libft.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: apommier +#+ +:+ +#+ */ +/* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/12/11 03:21:27 by apommier #+# #+# */ -/* Updated: 2020/12/11 15:43:19 by apommier ### ########.fr */ +/* Updated: 2022/02/14 00:27:42 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef LIBFT_H # define LIBFT_H -# include # include +# include +# include "get_next_line.h" -typedef struct s_list +typedef struct t_slist { - void *content; - struct s_list *next; + void *nbr; + int index; + int swap; + struct t_slist *next; } t_list; void *ft_memset(void *s, int c, size_t n); @@ -39,16 +42,17 @@ int ft_toupper(int c); int ft_tolower(int c); char *ft_strchr(const char *s, int c); char *ft_strrchr(const char *s, int c); +int ft_strcmp(const char *s1, const char *s2); int ft_strncmp(const char *s1, const char *s2, size_t n); size_t ft_strlcpy(char *dst, const char *src, size_t size); size_t ft_strlcat(char *dst, const char *src, size_t size); +char *ft_strjoin(char *save, char *s2); char *ft_strnstr(const char *big, const char *little, size_t len); -int ft_atoi(const char *nptr); +long ft_atoi(const char *nptr); void *ft_calloc(size_t nmenb, size_t size); char *ft_strdup(const char *s); char *ft_substr(char const *s, unsigned int start, size_t len); -char *ft_strjoin(char const *s1, char const *s2); char *ft_strtrim(char const *s1, char const *set); char **ft_split(char const *s, char c); char *ft_itoa(int n); @@ -68,5 +72,6 @@ void ft_lstclear(t_list **lst, void (*del)(void *)); void ft_lstiter(t_list *lst, void (*f)(void *)); t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)); +t_list *ft_lstbeforelast(t_list *lst); #endif