/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* main.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: jschaft +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/04/23 14:33:45 by mcolonna #+# #+# */ /* Updated: 2024/06/05 17:45:43 by mcolonna ### ########.fr */ /* */ /* ************************************************************************** */ #include "include.h" t_memclass g_mc; // Execute a command from a string. static int do_command(char *const envp[], t_list *variables, const char *str) { const t_memclass mc = mem_subclass(fatal_error, g_mc); t_command command; int r; command = parse_command(mc, str, variables); if (command.error || command.empty) return (command.error); r = execute_command(mc, command, envp); mem_freeall(mc); return (r); } static void start(char *const envp[], t_list *variables) { do_command(envp, variables, "clear"); do_command(envp, variables, "cat ./header"); do_command(envp, variables, "echo"); } int main(const int argc, const char *argv[], char *const envp[]) { t_list variables; t_memclass mc; const char *command_str; int errorstatus; (void)argc; (void)argv; g_mc = NULL; g_mc = mem_newclass(fatal_error); variables = list_createempty(g_mc); start(envp, &variables); errorstatus = 0; while (true) { mc = mem_subclass(fatal_error, g_mc); command_str = ask_command(mc); do_command(envp, &variables, command_str); } return (errorstatus); }