summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-07-30 18:08:50 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-07-30 18:08:50 +0200
commit6dc6bf6f46b736299826bfdd63192bdee16ba875 (patch)
treec8d2cd267561655f94970e9d0a2d4b1976321fc3
parentenv vars setting is ok (diff)
download42-minishell-6dc6bf6f46b736299826bfdd63192bdee16ba875.tar.gz
42-minishell-6dc6bf6f46b736299826bfdd63192bdee16ba875.tar.bz2
42-minishell-6dc6bf6f46b736299826bfdd63192bdee16ba875.tar.xz
42-minishell-6dc6bf6f46b736299826bfdd63192bdee16ba875.tar.zst
42-minishell-6dc6bf6f46b736299826bfdd63192bdee16ba875.zip
Less retarded stuff
-rw-r--r--src/b_exit.c2
-rw-r--r--src/d_define.h1
-rw-r--r--src/d_enum.h13
-rw-r--r--src/e_builtins.c117
-rw-r--r--src/m_minishell.c1
5 files changed, 77 insertions, 57 deletions
diff --git a/src/b_exit.c b/src/b_exit.c
index 75f16bf..777bbb9 100644
--- a/src/b_exit.c
+++ b/src/b_exit.c
@@ -28,6 +28,7 @@ uint8_t
uint8_t ret;
const uint64_t argc = get_argc((const char**)args);
+ ret = 0;
if (argc > 1)
{
fail_too_many_args("exit", msh);
@@ -39,5 +40,6 @@ uint8_t
/* TODO: non numeric args[0] */
}
ft_dprintf(STDERR_FILENO, "exit\n");
+ exit(ret);
return (0);
}
diff --git a/src/d_define.h b/src/d_define.h
index 175e256..6f93751 100644
--- a/src/d_define.h
+++ b/src/d_define.h
@@ -21,7 +21,6 @@
#define FT_PS_ONE "minishell ~> "
#define FT_BUILTINS "echo|cd|pwd|export|unset|env|exit|type"
-#define FT_BUILTINS_COUNT 8
#define FT_HISTFILE "minishell_history"
/*
diff --git a/src/d_enum.h b/src/d_enum.h
index 427e0a0..ec35ca3 100644
--- a/src/d_enum.h
+++ b/src/d_enum.h
@@ -38,4 +38,17 @@ enum
FT_READ_END
};
+enum
+{
+ FT_ID_ECHO,
+ FT_ID_CD,
+ FT_ID_PWD,
+ FT_ID_EXPORT,
+ FT_ID_UNSET,
+ FT_ID_ENV,
+ FT_ID_EXIT,
+ FT_ID_TYPE,
+ FT_BUILTINS_COUNT
+};
+
#endif
diff --git a/src/e_builtins.c b/src/e_builtins.c
index e35416a..ca512a3 100644
--- a/src/e_builtins.c
+++ b/src/e_builtins.c
@@ -21,69 +21,76 @@
#include "s_lcom.h"
#include "s_struct.h"
-static void
- e_builtin_child(const t_lcom *ptr,
- uint8_t bu_id,
- t_msh *msh)
-{
- int32_t ret;
+/* static void */
+/* e_builtin_child(const t_lcom *ptr, */
+/* uint8_t bu_id, */
+/* t_msh *msh) */
+/* { */
+/* int32_t ret; */
- dup_redirs(ptr, msh);
- ret = msh->bu_ptr[bu_id](ptr->argv + 1, msh);
- lcom_clear(&msh->curr);
- s_destroy(msh);
- exit(ret);
-}
+/* dup_redirs(ptr, msh); */
+/* ret = msh->bu_ptr[bu_id](ptr->argv + 1, msh); */
+/* lcom_clear(&msh->curr); */
+/* s_destroy(msh); */
+/* exit(ret); */
+/* } */
-static void
- e_builtin_parent(pid_t pid,
- const t_lcom *ptr,
- uint8_t bu_id,
- t_msh *msh)
-{
- int32_t status;
- int32_t ret;
+/* static void */
+/* 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;
- lcom_clear(&msh->curr);
- s_destroy(msh);
- exit(ret);
- }
-}
+/* while (wait(&status) != pid) */
+/* ; */
+/* ret = WEXITSTATUS(status); */
+/* if (bu_id != FT_ID_EXIT) */
+/* msh->ret = ret; */
+/* if (bu_id == FT_ID_CD && msh->ret == 0) */
+/* { */
+/* msh->bu_ptr[bu_id](ptr->argv + 1, msh); */
+/* /\* TODO: export $PWD *\/ */
+/* } */
+/* else if (bu_id == FT_ID_EXIT && ret == 0) */
+/* { */
+/* if (ptr->argv[1]) */
+/* ret = ft_atoi(ptr->argv[1]); */
+/* else */
+/* ret = msh->ret; */
+/* lcom_clear(&msh->curr); */
+/* s_destroy(msh); */
+/* exit(ret); */
+/* } */
+/* } */
void
e_builtin(const t_lcom *ptr,
uint8_t bu_id,
t_msh *msh)
{
- pid_t pid;
+ int32_t ret;
+
+ dup_redirs(ptr, msh);
+ ret = msh->bu_ptr[bu_id](ptr->argv + 1, msh);
+ lcom_clear(&msh->curr);
+ msh->ret = ret;
+ /* pid_t pid; */
- /* TODO: find a way to handle exit | bu_id = 6 */
- if ((pid = fork()) == 0)
- {
- e_builtin_child(ptr, bu_id, msh);
- }
- else if (pid < 0)
- {
- /* TODO: handle fork failed */
- }
- else
- {
- e_builtin_parent(pid, ptr, bu_id, msh);
- }
+ /* /\* TODO: find a way to handle exit | bu_id = 6 *\/ */
+ /* e_builtin_child(ptr, bu_id, msh); */
+ /* if ((pid = fork()) == 0) */
+ /* { */
+ /* e_builtin_child(ptr, bu_id, msh); */
+ /* } */
+ /* else if (pid < 0) */
+ /* { */
+ /* /\* TODO: handle fork failed *\/ */
+ /* } */
+ /* else */
+ /* { */
+ /* e_builtin_parent(pid, ptr, bu_id, msh); */
+ /* } */
}
diff --git a/src/m_minishell.c b/src/m_minishell.c
index 66426b7..78700a1 100644
--- a/src/m_minishell.c
+++ b/src/m_minishell.c
@@ -40,7 +40,6 @@ int
ft_dprintf(2, "%s\n", strerror(errno));
return (FT_RET_ALLOC);
}
- /* TODO: DELET THIS */
ret = m_argv(argc, argv, msh);
s_destroy(msh);
return (ret);