summaryrefslogtreecommitdiffstats
path: root/src/p_redirs_heredoc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/p_redirs_heredoc.c')
-rw-r--r--src/p_redirs_heredoc.c11
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);
}