Untitled
unknown
diff
2 years ago
2.3 kB
3
Indexable
index 78eb6b5..ffacf03 100644 --- a/foo.txt +++ b/foo.txt @@ -1,2 +1,2 @@ -abcdefg -0123456 +a +0 diff --git a/get_next_line.c b/get_next_line.c index 7b90587..b9fe8c5 100644 --- a/get_next_line.c +++ b/get_next_line.c @@ -3,14 +3,13 @@ char *get_next_line(int fd) { - static char *reminder = "" ; + static char *reminder = NULL; char buf[BUFFER_SIZE + 1]; int nbytes; char *ptr = malloc( BUFFER_SIZE + 1 ); - if (!ptr || reminder == NULL) - { + char *temp; + if (!ptr) return NULL; - } if (fd < 0 ||fd > 999 ) { @@ -21,17 +20,19 @@ char *get_next_line(int fd) while ( (nbytes = read(fd, buf, BUFFER_SIZE)) > 0) { buf[nbytes] = '\0'; - reminder =ft_strjoin(reminder, buf); + reminder = ft_strjoin(reminder, buf); if (ft_strchr(reminder, '\n')) { // ft_strcpy(reminder,ft_strchr(temp, '\n')); - ptr = ft_substr(reminder,0,'\n'); - reminder = ft_strchr(reminder, '\n'); + temp = ptr; + ptr = ft_substr(reminder, 0 ,'\n'); + free(temp); + reminder = ft_strchr(reminder, '\n'); return ptr; } - } - if (ft_strcmp(reminder, "") == 0 || nbytes < 0 || reminder == NULL) + } + if (!reminder || !ft_strlen(reminder) || nbytes < 0) { free(ptr); return NULL; diff --git a/get_next_line_utils.c b/get_next_line_utils.c index 45bd2d0..4cc6650 100644 --- a/get_next_line_utils.c +++ b/get_next_line_utils.c @@ -24,7 +24,7 @@ char *ft_strcpy(char *dest, char *src) int i; i = 0; - while (src[i] != '\0') + while (src && src[i] != '\0') { dest[i] = src[i]; i++; @@ -37,6 +37,8 @@ int ft_strlen(char *str) { int i; + if (!str) + return (0); i = 0; while (str[i] != '\0') { @@ -99,8 +101,8 @@ char *ft_strjoin(char *s1, char *s2) return (NULL); ft_strcpy(strjoin, s1); ft_strcat(strjoin, s2); - if(!(ft_strcmp(s1, "") == 0)) - free(s1); + if (s1 && !(ft_strcmp(s1, "") == 0)) + free(s1); return (strjoin); }
Editor is loading...