/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* s_line.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 #include #include "p_line.h" #include "s_com.h" #include "s_struct.h" t_line *s_line_last(t_line *line) { while (line->next != NULL) line = line->next; return (line); } void s_line_add_back(t_line **aline, t_line *new) { t_line *tmp; if (!*aline) *aline = new; else { tmp = s_line_last(*aline); tmp->next = new; } } void s_line_clear(t_line **line) { t_line *tmp; t_line *renext; if (!line) return ; tmp = *line; while (tmp != NULL) { renext = tmp->next; if (tmp->com != NULL) { s_com_destroy(&tmp->com); } /* ft_memdel((void*)&tmp->com); */ /* if (tmp->argv) */ /* ft_delwords(tmp->argv); */ /* if (tmp->redir != 0) */ /* ft_memdel((void*)&tmp->rdrpath); */ /* if (tmp->env_fork != NULL) */ /* ft_delwords(tmp->env_fork); */ ft_memdel((void*)&tmp); tmp = renext; } *line = NULL; } t_line *s_line_new(const char word[], t_msh *msh) { t_line *link; if ((link = (t_line*)malloc(sizeof(t_line))) == NULL) return (NULL); link->com = NULL; link->pipes = NULL; link->next = NULL; if (word == NULL) { link->next = NULL; return (link); } link->com = s_com_new(word, msh); /* TODO: check link->com = NULL */ return (link); }