From 487a66394061f2d14a2fa421302966b5442d643f Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Mon, 27 Jul 2020 18:55:07 +0200 Subject: I couldn't see shit --- src/ft_e_builtins.c | 89 ----------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 src/ft_e_builtins.c (limited to 'src/ft_e_builtins.c') diff --git a/src/ft_e_builtins.c b/src/ft_e_builtins.c deleted file mode 100644 index 382f85d..0000000 --- a/src/ft_e_builtins.c +++ /dev/null @@ -1,89 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_e_builtins.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 -#include - -#include "ft_m_redirs.h" -#include "ft_s_destroy.h" -#include "ft_s_lcom.h" -#include "ft_s_struct.h" - -static void - ft_e_builtin_child(const t_lcom *ptr, - uint8_t bu_id, - t_msh *msh) -{ - int32_t ret; - - ft_dup_redirs(ptr, msh); - ret = msh->bu_ptr[bu_id](ptr->argv + 1, msh); - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - exit(ret); -} - -static void - ft_e_builtin_parent(pid_t pid, - const t_lcom *ptr, - uint8_t bu_id, - t_msh *msh) -{ - int32_t status; - int32_t ret; - - while (wait(&status) != pid) - ; - ret = WEXITSTATUS(status); - if (bu_id != 6) - msh->ret = ret; - if (bu_id == 1 && msh->ret == 0) - { - msh->bu_ptr[bu_id](ptr->argv + 1, msh); - /* TODO: export $PWD */ - } - else if (bu_id == 6 && ret == 0) - { - if (ptr->argv[1]) - ret = ft_atoi(ptr->argv[1]); - else - ret = msh->ret; - ft_lcom_clear(&msh->curr); - ft_s_destroy(msh); - exit(ret); - } -} - -void - ft_e_builtin(const t_lcom *ptr, - uint8_t bu_id, - t_msh *msh) -{ - pid_t pid; - - /* TODO: find a way to handle exit | bu_id = 6 */ - if ((pid = fork()) == 0) - { - ft_e_builtin_child(ptr, bu_id, msh); - } - else if (pid < 0) - { - /* TODO: handle fork failed */ - } - else - { - ft_e_builtin_parent(pid, ptr, bu_id, msh); - } -} -- cgit v1.2.3