From 187e68e1aa804631a26fe0ab6185268dc0544d6b Mon Sep 17 00:00:00 2001 From: David Gailleton Date: Wed, 12 Nov 2025 16:45:04 +0100 Subject: [PATCH] makefile fix and other fixes --- Makefile | 22 ++++++++------------ ft_atoi.c | 46 ++++++++++++++++++++++++++++++++--------- ft_bzero.c | 2 +- ft_calloc.c | 5 ++++- ft_itoa.c | 2 +- ft_lstadd_back_bonus.c | 4 +++- ft_lstadd_front_bonus.c | 13 +----------- ft_lstclear_bonus.c | 4 ++-- ft_lstiter_bonus.c | 4 +++- ft_memchr.c | 2 +- ft_memcmp.c | 2 +- ft_memcpy.c | 2 +- ft_memset.c | 2 +- ft_split.c | 7 ++++--- ft_strchr.c | 2 +- ft_strdup.c | 2 +- ft_striteri.c | 4 +++- ft_strjoin.c | 2 +- ft_strlcat.c | 2 +- ft_strlen.c | 2 +- ft_strmapi.c | 4 +++- ft_strncmp.c | 2 +- ft_strnstr.c | 2 +- ft_strrchr.c | 2 +- ft_strtrim.c | 4 +++- ft_substr.c | 4 +++- 26 files changed, 88 insertions(+), 61 deletions(-) diff --git a/Makefile b/Makefile index 9abd5b2..45037cf 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CC= cc AR= ar -ARFLAGS= rc +ARFLAGS= rcs HEADER= libft.h @@ -65,25 +65,21 @@ DEP= $(SRC:.c=.d) BONUS_DEP= $(BONUS_SRC:.c=.d) -ALL_SRC= $(SRC) $(BONUS_SRC) - ALL_OBJ= $(OBJ) $(BONUS_OBJ) ALL_DEP= $(DEP) $(BONUS_DEP) -%.o: %.c + +%.o: %.c $(CC) -MMD -MP -o $@ -c $< $(CFLAGS) -I$(HEADER) - -$(NAME): $(OBJ) - $(AR) $(ARFLAGS) $(NAME) $(OBJ) - ranlib $(NAME) - all: $(NAME) -bonus: $(ALL_OBJ) - $(AR) $(ARFLAGS) $(NAME) $(ALL_OBJ) - ranlib $(NAME) +$(NAME): $(OBJ) + $(AR) $(ARFLAGS) $(NAME) $(OBJ) + +bonus: + $(MAKE) $(NAME) SRC="$(SRC) $(BONUS_SRC)" clean: rm -f $(ALL_OBJ) $(ALL_DEP) @@ -93,6 +89,6 @@ fclean: clean re: fclean all --include $(ALL_DEP) +-include $(DEP) .PHONY: all clean fclean re bonus diff --git a/ft_atoi.c b/ft_atoi.c index 08d4416..4006e3d 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -6,16 +6,33 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 19:07:51 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:48:35 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 14:17:18 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include "libft.h" -int ft_atoi(const char *nptr) +static long long int str_to_ll(const char *nptr) { - int i; - int res; + int i; + long long int res; + + i = 0; + res = 0; + while (ft_isdigit(nptr[i])) + { + if (res * 10 < res && res > 0) + return (-1); + res = (10 * res) + nptr[i] - 48; + i++; + } + return (res); +} + +static long long int ft_atoll(const char *nptr) +{ + int i; + long long int res; i = 0; res = 0; @@ -24,13 +41,22 @@ int ft_atoi(const char *nptr) while ((nptr[i] >= 9 && nptr[i] <= 13) || nptr[i] == ' ') i++; if (nptr[i] == '-' && ft_isdigit(nptr[i + 1])) - return (-1 * ft_atoi(&nptr[i] + 1)); + { + res = -1 * ft_atoll(&nptr[i] + 1); + if ((nptr[i + 1] != '1' && res == 1) + || (nptr[i + 1] == '1' && ft_isdigit(nptr[i + 2]) && res == 1)) + return (0); + return (res); + } else if (nptr[i] == '+' && ft_isdigit(nptr[i + 1])) i++; - while (ft_isdigit(nptr[i])) - { - res = (10 * res) + nptr[i] - 48; - i++; - } + return (str_to_ll(&nptr[i])); +} + +int ft_atoi(const char *nptr) +{ + int res; + + res = (int) ft_atoll(nptr); return (res); } diff --git a/ft_bzero.c b/ft_bzero.c index fb3c95a..a88ff36 100644 --- a/ft_bzero.c +++ b/ft_bzero.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 11:41:08 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 11:41:35 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:54:13 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_calloc.c b/ft_calloc.c index bd9565c..93fd9b3 100644 --- a/ft_calloc.c +++ b/ft_calloc.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 19:26:10 by dgaillet #+# #+# */ -/* Updated: 2025/11/05 21:18:14 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 15:51:55 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,9 @@ void *ft_calloc(size_t nmemb, size_t size) { void *all_mem; + if ((nmemb * size < nmemb || nmemb * size < size) + && size > 0 && nmemb > 0) + return (NULL); all_mem = malloc(size * nmemb); if (!all_mem) return (NULL); diff --git a/ft_itoa.c b/ft_itoa.c index 7f4ebf2..2f737f3 100644 --- a/ft_itoa.c +++ b/ft_itoa.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/07 13:06:35 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:48:49 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 14:20:16 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_lstadd_back_bonus.c b/ft_lstadd_back_bonus.c index 612037e..c20b5da 100644 --- a/ft_lstadd_back_bonus.c +++ b/ft_lstadd_back_bonus.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/09 15:06:49 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 15:20:02 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:11:12 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,8 @@ void ft_lstadd_back(t_list **lst, t_list *new) { t_list *temp; + if (!lst) + return ; if (!(*lst)) { *lst = new; diff --git a/ft_lstadd_front_bonus.c b/ft_lstadd_front_bonus.c index 930eed9..5392666 100644 --- a/ft_lstadd_front_bonus.c +++ b/ft_lstadd_front_bonus.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/09 14:36:17 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 15:26:21 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:14:35 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -19,14 +19,3 @@ void ft_lstadd_front(t_list **lst, t_list *new) new->next = *lst; *lst = new; } - -int main(void) -{ - t_list *ptr; - t_list *lst[1]; - - ptr = ft_lstnew(NULL); - lst[0] = NULL; - ft_lstadd_front(lst, ptr); - free(ptr); -} diff --git a/ft_lstclear_bonus.c b/ft_lstclear_bonus.c index f6815a1..aab914a 100644 --- a/ft_lstclear_bonus.c +++ b/ft_lstclear_bonus.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/09 15:31:17 by dgaillet #+# #+# */ -/* Updated: 2025/11/10 18:18:56 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:15:37 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ void ft_lstclear(t_list **lst, void (*del)(void *)) t_list *temp; t_list *next; - if (!*lst) + if (!lst ||!*lst) return ; temp = *lst; next = temp->next; diff --git a/ft_lstiter_bonus.c b/ft_lstiter_bonus.c index 9a4a939..2f85618 100644 --- a/ft_lstiter_bonus.c +++ b/ft_lstiter_bonus.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/09 15:51:31 by dgaillet #+# #+# */ -/* Updated: 2025/11/10 18:19:08 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 15:54:18 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,8 @@ void ft_lstiter(t_list *lst, void (*f)(void *)) { + if (!f) + return ; while (lst) { f(lst->content); diff --git a/ft_memchr.c b/ft_memchr.c index d2d59d5..ad27469 100644 --- a/ft_memchr.c +++ b/ft_memchr.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 17:54:17 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 11:53:16 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:56:15 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_memcmp.c b/ft_memcmp.c index 2e43e78..6212723 100644 --- a/ft_memcmp.c +++ b/ft_memcmp.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 18:00:38 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 11:59:58 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:54:27 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_memcpy.c b/ft_memcpy.c index 17897c7..09ce6e0 100644 --- a/ft_memcpy.c +++ b/ft_memcpy.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 11:46:16 by dgaillet #+# #+# */ -/* Updated: 2025/11/09 20:00:45 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 14:24:38 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_memset.c b/ft_memset.c index b433690..aaf7146 100644 --- a/ft_memset.c +++ b/ft_memset.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 11:20:47 by dgaillet #+# #+# */ -/* Updated: 2025/11/09 19:08:42 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:54:07 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_split.c b/ft_split.c index b963e8c..8c5b7ad 100644 --- a/ft_split.c +++ b/ft_split.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/06 17:02:58 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:49:21 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:30:49 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -57,6 +57,8 @@ char **ft_split(char const *s, char c) int i; int j; + if (!s) + return (NULL); strs = ft_calloc(sizeof(char *), strs_size(s, c) + 1); if (!strs) return (NULL); @@ -67,12 +69,11 @@ char **ft_split(char const *s, char c) if ((s[j] != c && j == 0) || (s[j] != c && s[j - 1] == c)) { strs[i] = ft_substr(&s[j], 0, next_match((char *) &s[j], c)); - if (!strs[i]) + if (!strs[i++]) { clear_strs(strs); return (NULL); } - i++; } j++; } diff --git a/ft_strchr.c b/ft_strchr.c index 620285d..8c86301 100644 --- a/ft_strchr.c +++ b/ft_strchr.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 17:24:37 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 12:36:25 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:54:20 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strdup.c b/ft_strdup.c index 44edb8b..51ae3b5 100644 --- a/ft_strdup.c +++ b/ft_strdup.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 19:31:29 by dgaillet #+# #+# */ -/* Updated: 2025/11/06 10:07:22 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:54:36 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_striteri.c b/ft_striteri.c index 7338aff..9ea3f65 100644 --- a/ft_striteri.c +++ b/ft_striteri.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/08 17:36:38 by dgaillet #+# #+# */ -/* Updated: 2025/11/08 17:40:42 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:32:30 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,8 @@ void ft_striteri(char *s, void (*f)(unsigned int, char*)) { unsigned int i; + if (!s) + return ; i = 0; while (s[i]) { diff --git a/ft_strjoin.c b/ft_strjoin.c index 6e85acd..df7fef8 100644 --- a/ft_strjoin.c +++ b/ft_strjoin.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/06 13:52:21 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 12:39:10 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:36:32 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strlcat.c b/ft_strlcat.c index 302c44e..12f66c2 100644 --- a/ft_strlcat.c +++ b/ft_strlcat.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 17:11:43 by dgaillet #+# #+# */ -/* Updated: 2025/11/06 12:26:04 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:38:24 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strlen.c b/ft_strlen.c index 04d9aac..73593d5 100644 --- a/ft_strlen.c +++ b/ft_strlen.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 11:17:31 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:29:00 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:36:18 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strmapi.c b/ft_strmapi.c index fb1c219..09c7c9a 100644 --- a/ft_strmapi.c +++ b/ft_strmapi.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/08 17:30:25 by dgaillet #+# #+# */ -/* Updated: 2025/11/08 17:34:12 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:39:16 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,8 @@ char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) char *str; unsigned int i; + if (!s) + return (NULL); i = 0; str = malloc(sizeof(char) * (ft_strlen(s) + 1)); if (!str) diff --git a/ft_strncmp.c b/ft_strncmp.c index 6307c68..2a4fbeb 100644 --- a/ft_strncmp.c +++ b/ft_strncmp.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 17:34:15 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:47:04 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:41:15 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strnstr.c b/ft_strnstr.c index c5a603c..5a9b93d 100644 --- a/ft_strnstr.c +++ b/ft_strnstr.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 18:05:52 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:47:25 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:42:42 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strrchr.c b/ft_strrchr.c index 8780904..1af80ef 100644 --- a/ft_strrchr.c +++ b/ft_strrchr.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/05 17:28:39 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:47:40 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:43:49 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ diff --git a/ft_strtrim.c b/ft_strtrim.c index 0d6cd23..4c0dbcd 100644 --- a/ft_strtrim.c +++ b/ft_strtrim.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/06 16:31:38 by dgaillet #+# #+# */ -/* Updated: 2025/11/11 13:48:05 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:50:53 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -67,6 +67,8 @@ char *ft_strtrim(char const *s1, char const *set) size_t i; char *str; + if (!s1 || !set) + return (NULL); i = 0; if (is_empty(s1, set)) return (ft_calloc(1, sizeof(char))); diff --git a/ft_substr.c b/ft_substr.c index e4bf1db..bd63e9a 100644 --- a/ft_substr.c +++ b/ft_substr.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/11/06 13:20:55 by dgaillet #+# #+# */ -/* Updated: 2025/11/06 13:58:18 by dgaillet ### ########lyon.fr */ +/* Updated: 2025/11/12 13:51:23 by dgaillet ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -18,6 +18,8 @@ char *ft_substr(char const *s, unsigned int start, size_t len) char *sub_str; size_t s_len; + if (!s) + return (NULL); s_len = ft_strlen(s); if (start > s_len) len = 0;