diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/m_loop.c | 20 | 
1 files changed, 17 insertions, 3 deletions
| diff --git a/src/m_loop.c b/src/m_loop.c index c7ca9cc..e658593 100644 --- a/src/m_loop.c +++ b/src/m_loop.c @@ -36,12 +36,15 @@  #include "u_utils.h"  #include "u_parse.h"  #include "u_vars.h" +#include "u_vars_next.h"  static void		m_parse_and_run_line(char line[],  									unsigned char previf,  									t_msh *msh)  {  	t_line_block	*ptr; +	size_t			i; +	t_bool			pipe;  	p_line(line, msh);  	ptr = msh->curr; @@ -50,14 +53,25 @@ static void		m_parse_and_run_line(char line[],  		if ((previf == 0) || (previf == 1 && msh->ret == 0)  				|| (previf == 2 && msh->ret != 0))  		{ -			if ((p_find_good_pipe(ptr->lblock) == TRUE -						&& (s_split_pipes(ptr->lblock, msh)) == NULL) -					|| (msh->com = s_com_new(ptr->lblock, msh)) == NULL) +			pipe = p_find_good_pipe(ptr->lblock); +			if ((pipe == TRUE && s_split_pipes(ptr->lblock, msh) == NULL) +				|| (msh->com = s_com_new(ptr->lblock, msh)) == NULL)  			{  				previf = ptr->nextif;  				ptr = ptr->next;  				continue ;  			} +			if (msh->com != NULL && pipe == FALSE) +			{ +				i = 0; +				while (msh->com->argv != NULL && msh->com->argv[i] != NULL) +					i++; +				if (msh->com->argv != NULL && msh->com->argv[0] != NULL) +					ft_dprintf(1, "\r[%s]\n", msh->com->argv[i]); +				else +					ft_dprintf(1, "\r[%s]\n", msh->com->bin); +				/* u_subst_var_value("$_", const char *newval, msh); */ +			}  			e_line_block(msh);  			s_com_destroy(&msh->com);  			s_lpipes_clear(&msh->pipes); | 
