diff --git a/get_next_line.c b/get_next_line.c index 7217708..39d8ae3 100644 --- a/get_next_line.c +++ b/get_next_line.c @@ -1,60 +1,56 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* get_next_line.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: hulamy +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2019/12/11 00:27:09 by hulamy #+# #+# */ -/* Updated: 2019/12/16 14:21:00 by hulamy ### ########.fr */ -/* */ -/* ************************************************************************** */ +//-g -fsanitize=address +//https://github.com/charMstr/GNL_lover +//https://github.com/mrjvs/42cursus_gnl_tests +//https://github.com/Sherchryst/gnlkiller +//https://github.com/Hellio404/Get_Next_Line_Tester +//https://github.com/TinfoilPancakes/get-next-line-testing-tools #include "get_next_line.h" -/* -** #include //for printf -** #include //for open -** -** int main(int ac, char **av) -** { -** int *fd; -** int i; -** int j; -** char *line; -** -** if (ac < 2) -** return (0); -** line = NULL; -** i = 0; -** if (!(fd = (int *)malloc(sizeof(int) * ac))) -** return (0); -** while (++i <= ac - 1) -** fd[i - 1] = open(av[i], O_RDONLY); -** i = 0; -** j = 0; -** while (j < ac - 1) -** { -** if (get_next_line(fd[i], &line) > 0) -** { -** printf("fd%i| %s\n", fd[i], line); -** free(line); -** j = 0; -** } -** else -** { -** printf("fd%i|*FINI*\n", fd[i]); -** j++; -** } -** i++; -** if (i >= ac - 1) -** i = 0; -** } -** free (fd); -** // while (1); -** return (0); -** } -*/ + + #include //for printf + #include //for open + + int main(int ac, char **av) + { + int *fd; + int i; + int j; + int ret; + char *line; + + if (ac < 2) + return (0); + line = NULL; + i = 0; + if (!(fd = (int *)malloc(sizeof(int) * ac))) + return (0); + while (++i <= ac - 1) + fd[i - 1] = open(av[i], O_RDONLY); + i = 0; + j = 0; + while (j < ac - 1) + { + if ((ret = get_next_line(fd[i], &line)) > 0) + { + printf("[fd%i-%i] %s\n", fd[i], ret, line); + free(line); + j = 0; + } + else + { + printf("[fd%i-%i]*FINI*\n", fd[i], ret); + j++; + } + i++; + if (i >= ac - 1) + i = 0; + } + free (fd); + while (1); + return (0); + } + int multi_fd(int fd, t_gnlist **lst) { @@ -114,16 +110,23 @@ int hasnewline(char *str, t_gnlist *lst, char **line) return (1); } -void free_lst(t_gnlist **lst, const int fd) +//void free_lst(t_gnlist **lst, const int fd) +void free_lst(t_gnlist **lst) { t_gnlist *tmp; - tmp = *lst; - while ((*lst)->next && (*lst)->next->lfd != fd) - (*lst) = (*lst)->next; - free(tmp->string); - free(tmp); - (*lst)->next = (*lst)->next->next; + tmp = (*lst)->next->next; + (*lst)->lfd = (*lst)->next->lfd; + free((*lst)->string); + (*lst)->string = (*lst)->next->string; + free((*lst)->next); + (*lst)->next = tmp; +// tmp = *lst; +// while ((*lst)->next && (*lst)->next->lfd != fd) +// (*lst) = (*lst)->next; +// free(tmp->string); +// free(tmp); +// (*lst)->next = (*lst)->next->next; } int get_next_line(const int fd, char **line) @@ -133,7 +136,8 @@ int get_next_line(const int fd, char **line) static t_gnlist *lst = NULL; char *str; - if (!(multi_fd(fd, &lst)) || !(ret = 1) || !line || fd < 0) + ret = 1; + if (!(multi_fd(fd, &lst)) || !line || fd < 0 || BUFFER_SIZE < 1) return (-1); while (ret > 0) { @@ -149,6 +153,7 @@ int get_next_line(const int fd, char **line) return (-1); if (*(lst->string) && ++ret == 1) (lst->string)[0] = '\0'; - free_lst(&lst, fd); + //free_lst(&lst, fd); + //free_lst(&lst); return (ret); } diff --git a/get_next_line.h b/get_next_line.h index 1c34212..ffbddda 100644 --- a/get_next_line.h +++ b/get_next_line.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/01/29 10:19:37 by hulamy #+# #+# */ -/* Updated: 2019/12/16 14:07:14 by hulamy ### ########.fr */ +/* Updated: 2019/12/19 19:38:39 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,8 @@ int get_next_line(const int fd, char **line); int multi_fd(int fd, t_gnlist **lst); char *ft_strjoinfree(char const *s1, char const *s2); int hasnewline(char *str, t_gnlist *lst, char **line); -void free_lst(t_gnlist **lst, const int fd); +//void free_lst(t_gnlist **lst, const int fd); +void free_lst(t_gnlist **lst); size_t ft_strlen(const char *str); void *ft_memmove(void *dst, const void *src, size_t len); diff --git a/get_next_line_bonus.h b/get_next_line_bonus.h index 083b606..e3b6950 100644 --- a/get_next_line_bonus.h +++ b/get_next_line_bonus.h @@ -6,7 +6,7 @@ /* By: hulamy +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/12/16 14:07:51 by hulamy #+# #+# */ -/* Updated: 2019/12/16 14:11:18 by hulamy ### ########.fr */ +/* Updated: 2019/12/19 19:38:21 by hulamy ### ########.fr */ /* */ /* ************************************************************************** */