diff --git a/srcs/.commands.c.swp b/srcs/.commands.c.swp deleted file mode 100644 index 94fa74e..0000000 Binary files a/srcs/.commands.c.swp and /dev/null differ diff --git a/srcs/.exec.c.swp b/srcs/.exec.c.swp deleted file mode 100644 index be3c813..0000000 Binary files a/srcs/.exec.c.swp and /dev/null differ diff --git a/srcs/builtins.c b/srcs/builtins.c index 9c3bd9f..32b98e8 100644 --- a/srcs/builtins.c +++ b/srcs/builtins.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 18:20:21 by marde-vr #+# #+# */ -/* Updated: 2024/03/25 12:36:27 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 14:59:17 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -51,19 +51,19 @@ int cmd_is_builtin(t_msh *msh, char *cmd_token) int exec_builtin(t_msh *msh) { - if (!msh->cmds->token) + if (!msh->cmds->value) return (0); - if (!ft_strcmp(msh->cmds->token, "echo")) + if (!ft_strcmp(msh->cmds->value, "echo")) g_return_code = echo(msh->cmds->next); - else if (!ft_strcmp(msh->cmds->token, "ret")) - g_return_code = ft_atoi(msh->cmds->next->token); - else if (!ft_strcmp(msh->cmds->token, "env")) + else if (!ft_strcmp(msh->cmds->value, "ret")) + g_return_code = ft_atoi(msh->cmds->next->value); + else if (!ft_strcmp(msh->cmds->value, "env")) g_return_code = print_env(msh->env); - else if (!ft_strcmp(msh->cmds->token, "exit")) + else if (!ft_strcmp(msh->cmds->value, "exit")) exit_bt(msh); - else if (!ft_strcmp(msh->cmds->token, "pwd")) + else if (!ft_strcmp(msh->cmds->value, "pwd")) g_return_code = pwd(); - else if (!ft_strcmp(msh->cmds->token, "cd")) + else if (!ft_strcmp(msh->cmds->value, "cd")) g_return_code = cd(msh->cmds); else return (0); diff --git a/srcs/cd.c b/srcs/cd.c index 7ba2d43..5fe80b9 100644 --- a/srcs/cd.c +++ b/srcs/cd.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/16 21:02:54 by marde-vr #+# #+# */ -/* Updated: 2024/03/06 08:43:53 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:49:28 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,7 @@ int cd(t_cmd *args) if (!args->next || args->next->type != ARG) new_wd = getenv("HOME"); else - new_wd = args->next->token; + new_wd = args->next->value; if (chdir(new_wd) == -1) { perror("minishell: cd"); diff --git a/srcs/commands.c b/srcs/commands.c index 82f7113..7b82f0a 100644 --- a/srcs/commands.c +++ b/srcs/commands.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 18:22:15 by marde-vr #+# #+# */ -/* Updated: 2024/03/26 09:19:40 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:59:43 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -71,9 +71,9 @@ char **get_cmd_args(t_msh *msh) if (cur_cmd->type == ARG) { if (!i) - cmd_args[i] = remove_path(cur_cmd->token); + cmd_args[i] = remove_path(cur_cmd->value); else - cmd_args[i] = cur_cmd->token; + cmd_args[i] = cur_cmd->value; i++; } else @@ -96,7 +96,7 @@ void remove_command_from_msh(t_msh *msh) cmd_tmp = cur_cmd; cur_cmd = cur_cmd->next; msh->in_type = cmd_tmp->type; - free(cmd_tmp->token); + free(cmd_tmp->value); free(cmd_tmp); msh->cmds = cur_cmd; return ; @@ -104,7 +104,7 @@ void remove_command_from_msh(t_msh *msh) cmd_tmp = cur_cmd; cur_cmd = cur_cmd->next; msh->in_type = cur_cmd->type; - free(cmd_tmp->token); + free(cmd_tmp->value); free(cmd_tmp); msh->cmds = cur_cmd; } diff --git a/srcs/debug.c b/srcs/debug.c index 8e06760..4d81fef 100644 --- a/srcs/debug.c +++ b/srcs/debug.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/18 15:46:50 by tomoron #+# #+# */ -/* Updated: 2024/02/21 12:59:08 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:56:35 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,7 @@ void print_parsed_cmd(t_cmd *cmd) { printf("["); if (cmd->type == ARG) - printf("ARG : \"%s\"", cmd->token); + printf("ARG : \"%s\"", cmd->value); else if (cmd->type == PIPE) printf("PIPE"); else if (cmd->type == RED_O) diff --git a/srcs/echo.c b/srcs/echo.c index 9e8a515..a612bb3 100755 --- a/srcs/echo.c +++ b/srcs/echo.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 15:30:37 by tomoron #+# #+# */ -/* Updated: 2024/03/26 14:14:29 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 14:55:08 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ void put_args(t_cmd *args) { if (!first) ft_putchar_fd(' ', STDOUT_FILENO); - ft_putstr_fd(args->token, STDOUT_FILENO); + ft_putstr_fd(args->value, STDOUT_FILENO); first = 0; } args = args->next; @@ -40,14 +40,14 @@ int echo(t_cmd *args) put_nl = 1; i = 1; - while (args && args->token && args->token[0] == '-') + while (args && args->value && args->value[0] == '-') { - while (args->token[i] == 'n') + while (args->value[i] == 'n') i++; - if (!args->token[i]) + if (!args->value[i]) put_nl = 0; else - ft_printf("%s ",args->token); + ft_printf("%s ",args->value); args = args->next; } put_args(args); diff --git a/srcs/exec.c b/srcs/exec.c index 2159f76..42e9f7b 100755 --- a/srcs/exec.c +++ b/srcs/exec.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 14:12:49 by tomoron #+# #+# */ -/* Updated: 2024/03/26 17:33:20 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 14:49:53 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -60,7 +60,7 @@ void exec_command(t_msh *msh, int i, int cmd_count) if (!g_return_code) get_in_type(msh, msh->cmds); } - if (!cmd_is_builtin(msh, msh->cmds->token)) + if (!cmd_is_builtin(msh, msh->cmds->value)) get_cmd_path(msh); exec(msh, get_cmd_args(msh), i, cmd_count); remove_command_from_msh(msh); diff --git a/srcs/exit.c b/srcs/exit.c index 5c36f0f..4b0e20f 100755 --- a/srcs/exit.c +++ b/srcs/exit.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 16:04:11 by tomoron #+# #+# */ -/* Updated: 2024/03/26 09:14:22 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:51:02 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,10 +25,10 @@ void get_exit_bt_return_code(t_msh *msh, int *exit_code) t_cmd *cur_cmd; cur_cmd = msh->cmds->next; - if (cur_cmd && cur_cmd->type == ARG && !ft_strisnbr(cur_cmd->token)) - numeric_arg_err(cur_cmd->token, exit_code); + if (cur_cmd && cur_cmd->type == ARG && !ft_strisnbr(cur_cmd->value)) + numeric_arg_err(cur_cmd->value, exit_code); else if (cur_cmd && cur_cmd->type == ARG) - *exit_code = (unsigned char)ft_atoi(cur_cmd->token); + *exit_code = (unsigned char)ft_atoi(cur_cmd->value); else *exit_code = g_return_code; } @@ -42,7 +42,7 @@ void exit_bt(t_msh *msh) cur_cmd = msh->cmds->next; ft_printf("exit\n"); if (cur_cmd && cur_cmd->next && cur_cmd->next->type == ARG - && ft_strisnbr(cur_cmd->token)) + && ft_strisnbr(cur_cmd->value)) { ft_putstr_fd("minishell: exit: too many arguments\n", 2); g_return_code = 1; diff --git a/srcs/export.c b/srcs/export.c index 6f273ba..048c43e 100644 --- a/srcs/export.c +++ b/srcs/export.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/18 18:29:20 by marde-vr #+# #+# */ -/* Updated: 2024/03/26 13:57:26 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 14:57:44 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -54,7 +54,7 @@ int ft_export(t_msh *msh) if (cmd && cmd->next && cmd->next->type == ARG && (!cmd->next->next || (cmd->next->next && cmd->next->next->type != ARG))) { - arg = cmd->next->token; + arg = cmd->next->value; len = 0; while (arg[len] && arg[len] != '=') len++; @@ -109,7 +109,7 @@ int ft_unset(t_msh *msh) cmd = cmd->next; while (cmd && cmd->type == ARG) { - delete_from_env(msh, cmd->token); + delete_from_env(msh, cmd->value); cmd = cmd->next; } return (0); diff --git a/srcs/input_redirections.c b/srcs/input_redirections.c index 397fa9e..35de174 100644 --- a/srcs/input_redirections.c +++ b/srcs/input_redirections.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 18:15:27 by marde-vr #+# #+# */ -/* Updated: 2024/03/25 13:49:06 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:58:15 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,15 +30,15 @@ void redirect_input(t_msh *msh, int i) void open_input_file(t_msh *msh, t_cmd **cur_cmd) { if ((*cur_cmd)->type == HERE_DOC) - handle_here_doc(msh, (*cur_cmd)->next->token); + handle_here_doc(msh, (*cur_cmd)->next->value); if ((*cur_cmd)->type == RED_I) { if (msh->in_fd != 0) close(msh->in_fd); - msh->in_fd = open((*cur_cmd)->next->token, O_RDONLY); + msh->in_fd = open((*cur_cmd)->next->value, O_RDONLY); if (msh->in_fd == -1 && !g_return_code) { - ft_printf_fd(2, "minishell: %s: ", (*cur_cmd)->next->token); + ft_printf_fd(2, "minishell: %s: ", (*cur_cmd)->next->value); perror(""); g_return_code = 1; } diff --git a/srcs/lst_cmd.c b/srcs/lst_cmd.c index 1bd0a17..a49f34d 100755 --- a/srcs/lst_cmd.c +++ b/srcs/lst_cmd.c @@ -6,13 +6,13 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/06 20:46:19 by tomoron #+# #+# */ -/* Updated: 2024/03/25 12:45:39 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:48:50 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" -t_cmd *cmd_add_back(t_cmd *cmd, char *token, t_token_type type) +t_cmd *cmd_add_back(t_cmd *cmd, char *value, t_token_type type) { t_cmd *res; t_cmd *current; @@ -20,7 +20,7 @@ t_cmd *cmd_add_back(t_cmd *cmd, char *token, t_token_type type) res = ft_calloc(1, sizeof(t_cmd)); if (!res) return (cmd); - res->token = token; + res->value = value; res->type = type; if (!cmd) return (res); @@ -35,10 +35,10 @@ void free_cmd(t_cmd *cmd) { if (cmd) { - if (cmd && cmd->token) + if (cmd && cmd->value) { - free(cmd->token); - cmd->token = 0; + free(cmd->value); + cmd->value = 0; } if (cmd && cmd->next) { diff --git a/srcs/minishell.h b/srcs/minishell.h index 525d36d..6db58b9 100755 --- a/srcs/minishell.h +++ b/srcs/minishell.h @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/04 17:31:38 by tomoron #+# #+# */ -/* Updated: 2024/03/26 17:13:30 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 14:46:04 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -38,7 +38,7 @@ typedef enum e_token_type typedef struct s_cmd { t_token_type type; - char *token; + char *value; struct s_cmd *next; } t_cmd; diff --git a/srcs/output_redirections.c b/srcs/output_redirections.c index a2cb6f7..1430b31 100644 --- a/srcs/output_redirections.c +++ b/srcs/output_redirections.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 19:10:52 by marde-vr #+# #+# */ -/* Updated: 2024/03/05 19:28:25 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:58:29 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,10 +30,10 @@ void open_out_file(t_msh *msh, t_cmd **cur_cmd) { msh->out_type = (*cur_cmd)->type; if (msh->out_type == RED_O) - msh->out_fd = open((*cur_cmd)->next->token, + msh->out_fd = open((*cur_cmd)->next->value, O_CREAT | O_WRONLY | O_TRUNC, 0644); if (msh->out_type == RED_O_APP) - msh->out_fd = open((*cur_cmd)->next->token, + msh->out_fd = open((*cur_cmd)->next->value, O_CREAT | O_RDWR | O_APPEND, 0644); if (msh->out_fd == -1) { diff --git a/srcs/parsing_bonus.c b/srcs/parsing_bonus.c new file mode 100644 index 0000000..83ccdec --- /dev/null +++ b/srcs/parsing_bonus.c @@ -0,0 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parsing_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tomoron +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/03/27 14:40:44 by tomoron #+# #+# */ +/* Updated: 2024/03/27 15:01:00 by tomoron ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + + diff --git a/srcs/path.c b/srcs/path.c index 5f62c81..c8bb12b 100644 --- a/srcs/path.c +++ b/srcs/path.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/21 21:47:15 by marde-vr #+# #+# */ -/* Updated: 2024/03/26 08:49:24 by marde-vr ### ########.fr */ +/* Updated: 2024/03/27 14:57:21 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,15 +26,15 @@ void find_cmd_path(t_msh *msh, char **paths, int *found) tmp = ft_strjoin(path, "/"); if (!tmp) ft_exit(msh, 1); - path = ft_strjoin(tmp, msh->cmds->token); + path = ft_strjoin(tmp, msh->cmds->value); if (!path) ft_exit(msh, 1); free(tmp); if (access(path, X_OK) != -1) { *found = 1; - free(msh->cmds->token); - msh->cmds->token = path; + free(msh->cmds->value); + msh->cmds->value = path; break ; } free(path); @@ -84,7 +84,7 @@ void get_cmd_path(t_msh *msh) int found; found = 0; - if (ft_strchr(msh->cmds->token, '/')) + if (ft_strchr(msh->cmds->value, '/')) { if (!file_access(msh, &found)) return ; @@ -93,9 +93,9 @@ void get_cmd_path(t_msh *msh) get_path(msh, &found); if (!found) { - ft_printf_fd(2, "%s: command not found\n", msh->cmds->token); - free(msh->cmds->token); - msh->cmds->token = 0; + ft_printf_fd(2, "%s: command not found\n", msh->cmds->value); + free(msh->cmds->value); + msh->cmds->value = 0; g_return_code = 127; } } diff --git a/srcs/pipe.c b/srcs/pipe.c index ffb9d15..0924b5f 100644 --- a/srcs/pipe.c +++ b/srcs/pipe.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 18:17:25 by marde-vr #+# #+# */ -/* Updated: 2024/03/26 17:21:57 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 15:00:06 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -31,8 +31,8 @@ void execute_command(t_msh *msh, char **cmd_args, int i) { char **env; - if (msh->cmds->token && (!ft_strcmp(msh->cmds->token, "cd") - || !ft_strcmp(msh->cmds->token, "exit") || exec_builtin(msh))) + if (msh->cmds->value && (!ft_strcmp(msh->cmds->value, "cd") + || !ft_strcmp(msh->cmds->value, "exit") || exec_builtin(msh))) { while (i >= 0) { @@ -43,11 +43,11 @@ void execute_command(t_msh *msh, char **cmd_args, int i) free(cmd_args); ft_exit(msh, g_return_code); } - if (msh->cmds->token) + if (msh->cmds->value) { set_echoctl(msh->echoctl); env = env_to_char_tab(msh->env); - execve(msh->cmds->token, cmd_args, env); + execve(msh->cmds->value, cmd_args, env); ft_free_str_arr(env); } } diff --git a/srcs/utils.c b/srcs/utils.c index 75f8acd..7ef81e1 100644 --- a/srcs/utils.c +++ b/srcs/utils.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/05 18:19:26 by marde-vr #+# #+# */ -/* Updated: 2024/03/26 17:23:51 by tomoron ### ########.fr */ +/* Updated: 2024/03/27 15:00:24 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,22 +35,22 @@ int file_access(t_msh *msh, int *found) { int fd; - fd = open(msh->cmds->token, O_DIRECTORY); + fd = open(msh->cmds->value, O_DIRECTORY); if (fd != -1) { close(fd); - ft_printf_fd(2, "minishell: %s: Is a directory\n", msh->cmds->token); + ft_printf_fd(2, "minishell: %s: Is a directory\n", msh->cmds->value); g_return_code = 126; return (0); } - if (access(msh->cmds->token, X_OK) != -1) + if (access(msh->cmds->value, X_OK) != -1) *found = 1; else { - ft_printf_fd(2, "minishell: %s: ", msh->cmds->token); + ft_printf_fd(2, "minishell: %s: ", msh->cmds->value); perror(""); g_return_code = 127; - if (access(msh->cmds->token, F_OK) != -1) + if (access(msh->cmds->value, F_OK) != -1) g_return_code = 126; return (0); }