diff options
Diffstat (limited to '')
| -rw-r--r-- | src/ft_m_loop.c | 33 | ||||
| -rw-r--r-- | src/ft_m_loop.h | 21 | ||||
| -rw-r--r-- | src/ft_s_destroy.c | 1 | ||||
| -rw-r--r-- | src/ft_s_init.c | 7 | ||||
| -rw-r--r-- | src/ft_s_init.h | 2 | ||||
| -rw-r--r-- | src/ft_s_struct.h | 3 | ||||
| -rw-r--r-- | src/minishell.c | 13 | 
7 files changed, 69 insertions, 11 deletions
diff --git a/src/ft_m_loop.c b/src/ft_m_loop.c new file mode 100644 index 0000000..1e2efc0 --- /dev/null +++ b/src/ft_m_loop.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/*                                                                            */ +/*                                                        :::      ::::::::   */ +/*   ft_m_loop.c                                        :+:      :+:    :+:   */ +/*                                                    +:+ +:+         +:+     */ +/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */ +/*                                                +#+#+#+#+#+   +#+           */ +/*   Created: 2020/02/14 17:19:27 by rbousset          #+#    #+#             */ +/*   Updated: 2020/02/14 17:19:29 by rbousset         ###   ########lyon.fr   */ +/*                                                                            */ +/* ************************************************************************** */ + +#include <libft.h> +#include <stdint.h> +#include <unistd.h> +#include "ft_d_enum.h" +#include "ft_m_loop.h" +#include "ft_m_prompt.h" + +int32_t +	ft_m_loop(t_msh *msh) +{ +	int8_t	gnl; +	char	*line; + +	gnl = 1; +	while (gnl > 0) +	{ +		ft_m_prompt(msh); +		gnl = get_next_line(STDIN_FILENO, &line); +	} +	return (FT_RET_FINE); +} diff --git a/src/ft_m_loop.h b/src/ft_m_loop.h new file mode 100644 index 0000000..564d447 --- /dev/null +++ b/src/ft_m_loop.h @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/*                                                                            */ +/*                                                        :::      ::::::::   */ +/*   ft_m_loop.h                                        :+:      :+:    :+:   */ +/*                                                    +:+ +:+         +:+     */ +/*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */ +/*                                                +#+#+#+#+#+   +#+           */ +/*   Created: 2020/02/14 17:19:27 by rbousset          #+#    #+#             */ +/*   Updated: 2020/02/14 17:19:29 by rbousset         ###   ########lyon.fr   */ +/*                                                                            */ +/* ************************************************************************** */ + +#ifndef FT_M_LOOP +#define FT_M_LOOP + +#include <stdint.h> +#include "ft_s_struct.h" + +int32_t	ft_m_loop(t_msh *msh); + +#endif diff --git a/src/ft_s_destroy.c b/src/ft_s_destroy.c index ef132ce..23e0737 100644 --- a/src/ft_s_destroy.c +++ b/src/ft_s_destroy.c @@ -16,5 +16,6 @@  void  ft_s_destroy(t_msh *msh)  { +	ft_memdel((void*)&msh->ps_one);  	ft_memdel((void*)&msh);  } diff --git a/src/ft_s_init.c b/src/ft_s_init.c index 0d27aa7..c4b2667 100644 --- a/src/ft_s_init.c +++ b/src/ft_s_init.c @@ -15,7 +15,7 @@  #include "ft_s_init.h"  t_msh -	*ft_init_msh(void) +	*ft_init_msh(char *envp[])  {  	t_msh	*msh; @@ -28,8 +28,9 @@ t_msh  	{  		return (NULL);  	} -	ft_strlcpy(msh->ps_one, FT_PS_ONE, ft_strlen(FT_PS_ONE)); -	msh->envp = NULL; +	ft_strlcpy(msh->ps_one, FT_PS_ONE, ft_strlen(FT_PS_ONE) + 1); +	msh->envp = envp; +	msh->ret = 0;  	msh->lcom = NULL;  	return (msh);  } diff --git a/src/ft_s_init.h b/src/ft_s_init.h index ea28b24..c5ce54a 100644 --- a/src/ft_s_init.h +++ b/src/ft_s_init.h @@ -16,6 +16,6 @@  #include <stdlib.h>  #include "ft_s_struct.h" -t_msh	*ft_init_msh(void); +t_msh	*ft_init_msh(char *envp[]);  #endif diff --git a/src/ft_s_struct.h b/src/ft_s_struct.h index 3bfa76b..8234449 100644 --- a/src/ft_s_struct.h +++ b/src/ft_s_struct.h @@ -22,9 +22,10 @@ typedef struct		s_com  typedef struct		s_msh  { -	struct s_com	*lcom;  	char			*ps_one;  	char			**envp; +	int32_t			ret; +	struct s_com	*lcom;  }					t_msh;  #endif diff --git a/src/minishell.c b/src/minishell.c index 5d97ed6..a3b0354 100644 --- a/src/minishell.c +++ b/src/minishell.c @@ -11,9 +11,10 @@  /* ************************************************************************** */  #include <libft.h> +#include <stdint.h>  #include "minishell.h"  #include "ft_d_enum.h" -#include "ft_m_prompt.h" +#include "ft_m_loop.h"  #include "ft_s_struct.h"  #include "ft_s_init.h"  #include "ft_s_destroy.h" @@ -24,23 +25,23 @@ main(int argc,  	char *envp[])  {  	t_msh	*msh; +	int32_t	ret;  	(void)argc;  	(void)argv; -	(void)envp; -	if (!(msh = ft_init_msh())) +	if (!(msh = ft_init_msh(envp)))  	{  		return (FT_RET_ALLOC);  	} -	msh->envp = envp; -	ft_m_prompt(msh); +	msh->ret = ft_m_loop(msh); +	ret = msh->ret;  	/* while (*msh->envp) */  	/* { */  	/* 	ft_printf("%s\n", *msh->envp); */  	/* 	msh->envp++; */  	/* } */  	ft_s_destroy(msh); -	return (FT_RET_FINE); +	return (ret);  }  /*  | 
