aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main.c b/src/main.c
index b99bb97..0c33591 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,7 +6,7 @@
/* By: cacharle <cacharle@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */
-/* Updated: 2020/09/16 16:14:21 by charles ### ########.fr */
+/* Updated: 2020/09/16 16:28:47 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -31,7 +31,9 @@ int debug_lexer(char *input);
char *g_progname = "minishell";
-int execute(t_env env, char *input)
+t_state g_state;
+
+int execute(t_env env, char *input)
{
t_tok_lst *lexer_out;
int status;
@@ -49,11 +51,11 @@ int execute(t_env env, char *input)
status = eval(fds, env, parser_out->ast, NULL, FD_NONE);
if (status == EVAL_FATAL)
exit(1);
- g_last_status = status;
+ g_state.last_status = status;
return (status);
}
-int repl(t_env env)
+int repl(t_env env)
{
int ret;
char *line;
@@ -77,7 +79,7 @@ int repl(t_env env)
#ifndef MINISHELL_TEST
-int main(int argc, char **argv, char **envp)
+int main(int argc, char **argv, char **envp)
{
t_env env;
@@ -89,29 +91,29 @@ int main(int argc, char **argv, char **envp)
if ((env = env_from_array(envp)) == NULL)
return (1);
setup(argv[0], env);
- g_last_status = 0;
+ g_state.child_pid = 0;
repl(env);
ft_vecdestroy(env, free);
- return (g_last_status);
+ return (g_state.last_status);
}
#else
-int main(int argc, char **argv, char **envp)
+int main(int argc, char **argv, char **envp)
{
t_env env;
if ((env = env_from_array(envp)) == NULL)
return (1);
setup(argv[0], env);
- g_last_status = 0;
+ g_state.last_status = 0;
if (argc == 3 && ft_strcmp(argv[1], "-l") == 0)
return (debug_lexer(argv[2]));
if (argc == 3 && ft_strcmp(argv[1], "-c") == 0)
return (execute(env, argv[2]));
repl(env);
ft_vecdestroy(env, free);
- return (g_last_status);
+ return (g_state.last_status);
}
#endif