Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/main/ft_main.c
Views: 1265
/* ************************************************************************** */1/* */2/* ::: :::::::: */3/* ft_main.c :+: :+: :+: */4/* +:+ +:+ +:+ */5/* By: ssabbaji <ssabbaji@student.42.fr> +#+ +:+ +#+ */6/* +#+#+#+#+#+ +#+ */7/* Created: 2022/07/28 10:37:19 by yabtaour #+# #+# */8/* Updated: 2022/10/07 13:05:05 by ssabbaji ### ########.fr */9/* */10/* ************************************************************************** */1112#include "./minishell.h"1314void ft_free_norme(t_data *data)15{16if (data->her_doc)17free_split(data->eof);18if (data->paths)19free_split(data->paths);20ft_free_lexer(data->lst_lexer);21ft_free_cmd(data->lst_cmd);22}2324void ft_start(t_data *data)25{26ft_expanding(data);27ft_parsing(data);28pre_execution(data);29ft_free_norme(data);30}3132int ft_sub_main(t_data *data)33{34while (42)35{36init_main(data);37data->cmd = readline("minishell-1.0> ");38if (!data->cmd)39break ;40else if (!*data->cmd)41free(data->cmd);42else if (data->cmd && data->cmd[0] != '\0')43{44ft_lexer(data);45g_vars.g_exit_stat = ft_syntax_analyzer(data);46if (g_vars.g_exit_stat)47{48ft_free_lexer(data->lst_lexer);49data->general.old_error = g_vars.g_exit_stat;50continue ;51}52ft_start(data);53}54data->general.old_error = g_vars.g_exit_stat;55}56rl_clear_history();57ft_free_env(data->lst_env);58return (0);59}606162