fix: heredoc work now
This commit is contained in:
parent
1e00fee53c
commit
46fe9caded
@ -6,7 +6,7 @@
|
||||
/* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2023/02/17 15:36:26 by cchauvet #+# #+# */
|
||||
/* Updated: 2023/03/29 16:37:05 by cchauvet ### ########.fr */
|
||||
/* Updated: 2023/03/31 15:19:42 by alouis-j ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -31,8 +31,13 @@ static int ft_format_and_write(t_data *data, const char *str, int fd)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int ft_heredoc2(t_data *data, char *stop, char *line, int fds[2])
|
||||
static int ft_heredoc2(t_data *data, char *stop, int fds[2])
|
||||
{
|
||||
char *line;
|
||||
ft_printf("> ");
|
||||
line = get_next_line(*ft_get_heredoc());
|
||||
if (line == NULL)
|
||||
return (1);
|
||||
line[ft_strlen(line) - 1] = '\0';
|
||||
if (ft_strcmp(line, stop) == 0)
|
||||
{
|
||||
@ -46,30 +51,20 @@ static int ft_heredoc2(t_data *data, char *stop, char *line, int fds[2])
|
||||
return (1);
|
||||
}
|
||||
free(line);
|
||||
ft_printf("> ");
|
||||
line = get_next_line(*ft_get_heredoc());
|
||||
if (line == NULL && *ft_get_heredoc() == -1)
|
||||
{
|
||||
ft_closer(fds);
|
||||
return (1);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
int ft_heredoc(t_data *data, char *stop)
|
||||
{
|
||||
char *line;
|
||||
int fds[2];
|
||||
int return_code;
|
||||
|
||||
if (pipe(fds) == -1)
|
||||
return (-1);
|
||||
*ft_get_heredoc() = dup(0);
|
||||
ft_printf("> ");
|
||||
line = get_next_line(*ft_get_heredoc());
|
||||
while (line != NULL)
|
||||
while (true)
|
||||
{
|
||||
return_code = ft_heredoc2(data, stop, line, fds);
|
||||
return_code = ft_heredoc2(data, stop, fds);
|
||||
if (return_code == 2)
|
||||
break ;
|
||||
else if (return_code)
|
||||
|
Loading…
Reference in New Issue
Block a user