summaryrefslogtreecommitdiffstats
path: root/src/b_exit.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/b_exit.c (renamed from src/ft_b_exit.c)23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/ft_b_exit.c b/src/b_exit.c
index 7a7e5e8..5384d25 100644
--- a/src/ft_b_exit.c
+++ b/src/b_exit.c
@@ -1,7 +1,7 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
-/* ft_b_exit.c :+: :+: :+: */
+/* b_exit.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
@@ -15,22 +15,22 @@
#include <stdint.h>
#include <unistd.h>
-#include "ft_f_fail.h"
-#include "ft_s_lcom.h"
-#include "ft_s_destroy.h"
-#include "ft_s_struct.h"
-#include "ft_u_utils.h"
+#include "f_fail.h"
+#include "s_lcom.h"
+#include "s_destroy.h"
+#include "s_struct.h"
+#include "u_utils.h"
uint8_t
- ft_b_exit(char *args[],
+ b_exit(char *args[],
t_msh *msh)
{
uint8_t ret;
- const uint64_t argc = ft_get_argc((const char**)args);
+ const uint64_t argc = u_builtins_get_argc((const char**)args);
if (argc > 1)
{
- ft_fail_too_many_args("exit", msh);
+ f_fail_too_many_args("exit", msh);
return (1);
}
if (argc == 1)
@@ -38,6 +38,11 @@ uint8_t
ret = ft_atoi(args[0]);
/* TODO: non numeric args[0] */
}
+ else
+ ret = msh->ret;
ft_dprintf(STDERR_FILENO, "exit\n");
+ lcom_clear(&msh->curr);
+ s_destroy(msh);
+ exit(ret);
return (0);
}