From cc3aa4907949a66187d0a91b1f7cb55b5cdb21b3 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sun, 27 Sep 2020 20:59:02 +0200 Subject: In progress --- src/p_redirs_heredoc.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/p_redirs_heredoc.c (limited to 'src/p_redirs_heredoc.c') diff --git a/src/p_redirs_heredoc.c b/src/p_redirs_heredoc.c new file mode 100644 index 0000000..03d044b --- /dev/null +++ b/src/p_redirs_heredoc.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* p_redirs_heredoc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ +/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include + +#include "d_define.h" +#include "s_struct.h" + +char + *p_get_heredoc(const char path[], t_msh *msh) +{ + char *heredoc; + char *line; + int8_t gnl; + + heredoc = NULL; + gnl = 1; + if ((heredoc = ft_strdup("")) == NULL) + return (NULL); + while (gnl > 0 && ft_strncmp(path, line, ft_strlen(path) + 1) != 0) + { + gnl = get_next_line(msh->fd, &line); + if ((heredoc = ft_nrealloc(heredoc, ft_strlen(heredoc), + ft_strlen(heredoc) + ft_strlen(line) + 2)) == NULL) + return (heredoc); + ft_strlcpy(heredoc + ft_strlen(heredoc), line, ft_strlen(line) + 1); + heredoc[ft_strlen(heredoc) + 1] = C_NUL; + heredoc[ft_strlen(heredoc)] = C_LF; + } + return (heredoc); +} -- cgit v1.2.3