fixed builtins in piiiiiiiiiiiiiiiiiiiiipes

This commit is contained in:
mdev9
2024-04-22 13:38:56 +02:00
parent 30fafc49b0
commit 901ff34b7c
4 changed files with 21 additions and 26 deletions

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 18:20:21 by marde-vr #+# #+# */
/* Updated: 2024/04/22 12:33:58 by marde-vr ### ########.fr */
/* Updated: 2024/04/22 13:38:41 by marde-vr ### ########.fr */
/* */
/* ************************************************************************** */
@ -16,7 +16,8 @@ int cmd_is_forkable_builtin(char *cmd_token)
{
if (!ft_strcmp(cmd_token, "echo") || !ft_strcmp(cmd_token, "ret")
|| !ft_strcmp(cmd_token, "env") || !ft_strcmp(cmd_token, "exit")
|| !ft_strcmp(cmd_token, "pwd"))
|| !ft_strcmp(cmd_token, "pwd") || !ft_strcmp(cmd_token, "cd")
|| !ft_strcmp(cmd_token, "export") || !ft_strcmp(cmd_token, "unset"))
return (1);
return (0);
}
@ -25,29 +26,20 @@ int cmd_is_builtin(t_msh *msh, char *cmd_token)
{
if (!cmd_token)
return (0);
//else if (msh->in_type == PIPE || msh->out_type == PIPE)
// return (1);
else if ((msh->in_type == PIPE || msh->out_type == PIPE)
&& cmd_is_forkable_builtin(cmd_token))
return (1);
else if (!ft_strcmp(cmd_token, "cd"))
{
cd(msh->tokens);
return (1);
}
g_return_code = cd(msh->tokens);
else if (!ft_strcmp(cmd_token, "exit"))
{
g_return_code = exit_bt(msh);
return (1);
}
else if (!ft_strcmp(cmd_token, "export"))
{
g_return_code = ft_export(msh->tokens, msh->env);
return (1);
}
else if (!ft_strcmp(cmd_token, "unset"))
{
ft_unset(msh);
return (1);
}
return (cmd_is_forkable_builtin(cmd_token));
g_return_code = ft_unset(msh);
else
return (cmd_is_forkable_builtin(cmd_token));
return (1);
}
int exec_builtin(t_msh *msh)
@ -61,11 +53,13 @@ int exec_builtin(t_msh *msh)
else if (!ft_strcmp(msh->tokens->value, "env"))
g_return_code = print_env(msh->env);
else if (!ft_strcmp(msh->tokens->value, "exit"))
exit_bt(msh);
return (1);
else if (!ft_strcmp(msh->tokens->value, "pwd"))
g_return_code = pwd();
else if (!ft_strcmp(msh->tokens->value, "cd"))
g_return_code = cd(msh->tokens);
return (1);
else if (!ft_strcmp(msh->tokens->value, "export"))
return (1);
else
return (0);
return (1);