From f286a8aa54a1fc321317c62a9ebce0985da6e044 Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Fri, 15 Dec 2023 05:51:46 +0100 Subject: [PATCH] last one i hope :sob: --- get_next_line.c | 37 ++++++++++--------------------------- get_next_line.h | 3 +-- get_next_line_bonus.c | 16 ++++++++-------- get_next_line_bonus.h | 3 +-- get_next_line_utils.c | 18 +----------------- get_next_line_utils_bonus.c | 18 +----------------- 6 files changed, 22 insertions(+), 73 deletions(-) diff --git a/get_next_line.c b/get_next_line.c index 851ad10..0da06de 100644 --- a/get_next_line.c +++ b/get_next_line.c @@ -6,11 +6,12 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:11:59 by adjoly #+# #+# */ -/* Updated: 2023/12/14 13:27:41 by adjoly ### ########.fr */ +/* Updated: 2023/12/15 05:50:47 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "get_next_line.h" +#include char check_line(char *res, char *buf) { @@ -37,8 +38,10 @@ char check_line(char *res, char *buf) return (0); } -char *gnl_end_file(char *res) +char *ft_read_error(char **buf, char *res) { + free(*buf); + *buf = NULL; if (res[0] != 0) return (res); free(res); @@ -53,40 +56,20 @@ char *get_next_line(int fd) if (BUFFER_SIZE <= 0 || fd < 0 || fd > 1023) return (NULL); - res = ft_calloc(1, 1); if (!buf) buf = ft_calloc(sizeof(char), BUFFER_SIZE + 1); - while (buf && res) + res = ft_calloc(1, 1); + while (buf) { res = ft_strjoin(res, buf); + if (!res) + return (NULL); if (check_line(res, buf)) return (res); bytes_read = read(fd, buf, BUFFER_SIZE); if (bytes_read < 1) - { - free(buf); - buf = NULL; - return (gnl_end_file(res)); - } + return (ft_read_error(&buf, res)); buf[bytes_read] = 0; } return (NULL); } - -/*#include -void ft_putstr(char *str){if (str == NULL){return ;}int i = 0;while(str[i]){write(1, &str[i], 1);i++;}} -#include -#include -int main(void) -{ - char *ln; - int fd; - fd = open("test.txt", O_RDONLY); - while (ln) - { - ln = get_next_line(fd); - ft_putstr(ln); - free(ln); - } - close(fd); -}*/ diff --git a/get_next_line.h b/get_next_line.h index d72585d..3350ad4 100644 --- a/get_next_line.h +++ b/get_next_line.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:12:00 by adjoly #+# #+# */ -/* Updated: 2023/12/08 18:01:49 by adjoly ### ########.fr */ +/* Updated: 2023/12/15 05:43:13 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,5 @@ char *get_next_line(int fd); char *ft_strjoin(char *s1, char *s2); size_t ft_strlen(char *s); void *ft_calloc(size_t nmemb, size_t size); -size_t ft_strlen_nl(char *s); #endif \ No newline at end of file diff --git a/get_next_line_bonus.c b/get_next_line_bonus.c index 4c4000a..90bc46a 100644 --- a/get_next_line_bonus.c +++ b/get_next_line_bonus.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:11:59 by adjoly #+# #+# */ -/* Updated: 2023/12/14 13:27:45 by adjoly ### ########.fr */ +/* Updated: 2023/12/15 05:51:22 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,8 +37,10 @@ char check_line(char *res, char *buf) return (0); } -char *gnl_end_line(char *res) +char *ft_read_error(char **buf, char *res) { + free(*buf); + *buf = NULL; if (res[0] != 0) return (res); free(res); @@ -53,21 +55,19 @@ char *get_next_line(int fd) if (BUFFER_SIZE <= 0 || fd < 0 || fd > 1023) return (NULL); - res = ft_calloc(1, 1); if (!buf[fd]) buf[fd] = ft_calloc(sizeof(char), BUFFER_SIZE + 1); + res = ft_calloc(1, 1); while (buf[fd] && res) { res = ft_strjoin(res, buf[fd]); + if (!res) + return (NULL); if (check_line(res, buf[fd])) return (res); bytes_read = read(fd, buf[fd], BUFFER_SIZE); if (bytes_read < 1) - { - free(buf[fd]); - buf[fd] = NULL; - return (gnl_end_line(res)); - } + return (ft_read_error(&buf[fd], res)); buf[fd][bytes_read] = 0; } return (NULL); diff --git a/get_next_line_bonus.h b/get_next_line_bonus.h index 9fa539a..51716d0 100644 --- a/get_next_line_bonus.h +++ b/get_next_line_bonus.h @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:12:00 by adjoly #+# #+# */ -/* Updated: 2023/12/08 18:01:40 by adjoly ### ########.fr */ +/* Updated: 2023/12/15 05:43:09 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,6 +24,5 @@ char *get_next_line(int fd); char *ft_strjoin(char *s1, char *s2); size_t ft_strlen(char *s); void *ft_calloc(size_t nmemb, size_t size); -size_t ft_strlen_nl(char *s); #endif \ No newline at end of file diff --git a/get_next_line_utils.c b/get_next_line_utils.c index ce5d005..4441c87 100644 --- a/get_next_line_utils.c +++ b/get_next_line_utils.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:12:02 by adjoly #+# #+# */ -/* Updated: 2023/12/14 05:34:46 by adjoly ### ########.fr */ +/* Updated: 2023/12/15 05:38:33 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,22 +51,6 @@ char *ft_strjoin(char *s1, char *s2) return (result); } -size_t ft_strlcpy(char *dst, char *src, size_t size) -{ - size_t i; - - i = 0; - if (size == 0) - return (ft_strlen(src)); - while (i < size && src[i]) - { - dst[i] = src[i]; - i++; - } - dst[size] = '\0'; - return (ft_strlen(src)); -} - void *ft_calloc(size_t nmemb, size_t size) { char *result; diff --git a/get_next_line_utils_bonus.c b/get_next_line_utils_bonus.c index 2deef0f..0710d74 100644 --- a/get_next_line_utils_bonus.c +++ b/get_next_line_utils_bonus.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/01 17:12:02 by adjoly #+# #+# */ -/* Updated: 2023/12/14 05:59:38 by adjoly ### ########.fr */ +/* Updated: 2023/12/15 05:42:57 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,22 +51,6 @@ char *ft_strjoin(char *s1, char *s2) return (result); } -size_t ft_strlcpy(char *dst, char *src, size_t size) -{ - size_t i; - - i = 0; - if (size == 0) - return (ft_strlen(src)); - while (i < size && src[i]) - { - dst[i] = src[i]; - i++; - } - dst[size] = '\0'; - return (ft_strlen(src)); -} - void *ft_calloc(size_t nmemb, size_t size) { char *result;