diff options
Diffstat (limited to 'src/p_redirs_heredoc.c')
-rw-r--r-- | src/p_redirs_heredoc.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/p_redirs_heredoc.c b/src/p_redirs_heredoc.c index fd5b399..6b939fe 100644 --- a/src/p_redirs_heredoc.c +++ b/src/p_redirs_heredoc.c @@ -11,14 +11,14 @@ /* ************************************************************************** */ #include <libft.h> +#include <stdint.h> #include <unistd.h> #include "d_define.h" #include "m_prompt.h" #include "s_struct.h" -char - *p_get_heredoc(const char path[], t_msh *msh) +char *p_get_heredoc(const char path[], t_msh *msh) { char *heredoc; char *line; @@ -34,9 +34,9 @@ char if (msh->fd == STDIN_FILENO) m_prompt_psx(2, msh); gnl = get_next_line(msh->fd, &line); - if (ft_strncmp(path, line, ft_strlen(path) + 1) != 0) + if (ft_strncmp(path, line, ft_strlen(path) + 1) == 0) break ; - if ((heredoc = ft_nrealloc(heredoc, ft_strlen(heredoc), + if ((heredoc = ft_nrealloc(heredoc, ft_strlen(heredoc) + 1, ft_strlen(heredoc) + ft_strlen(line) + 2)) == NULL) break ; ft_strlcpy(heredoc + ft_strlen(heredoc), line, ft_strlen(line) + 1); @@ -45,6 +45,7 @@ char ft_memdel((void*)&line); } - ft_memdel((void*)&line); + if (gnl > 0) + ft_memdel((void*)&line); return (heredoc); } |