t_cmd => t_token (parce que c'est plus logique aussi)

This commit is contained in:
2024-03-27 16:23:09 +01:00
parent 7ea57084dd
commit a9fde3bad1
11 changed files with 55 additions and 54 deletions

View File

@ -6,13 +6,13 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/16 21:02:54 by marde-vr #+# #+# */ /* Created: 2024/02/16 21:02:54 by marde-vr #+# #+# */
/* Updated: 2024/03/27 14:49:28 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:21:48 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "minishell.h" #include "minishell.h"
int cd(t_cmd *args) int cd(t_token *args)
{ {
char *new_wd; char *new_wd;

View File

@ -6,16 +6,16 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 18:22:15 by marde-vr #+# #+# */ /* Created: 2024/03/05 18:22:15 by marde-vr #+# #+# */
/* Updated: 2024/03/27 14:59:43 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:20:06 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "minishell.h" #include "minishell.h"
int get_cmd_count(t_cmd *cmds) int get_cmd_count(t_token *cmds)
{ {
int count; int count;
t_cmd *cur_cmd; t_token *cur_cmd;
count = 0; count = 0;
cur_cmd = cmds; cur_cmd = cmds;
@ -31,10 +31,10 @@ int get_cmd_count(t_cmd *cmds)
return (count); return (count);
} }
int get_args_count(t_cmd *cmds) int get_args_count(t_token *cmds)
{ {
int count; int count;
t_cmd *cur_cmd; t_token *cur_cmd;
count = 0; count = 0;
cur_cmd = cmds; cur_cmd = cmds;
@ -56,7 +56,7 @@ int get_args_count(t_cmd *cmds)
char **get_cmd_args(t_msh *msh) char **get_cmd_args(t_msh *msh)
{ {
char **cmd_args; char **cmd_args;
t_cmd *cur_cmd; t_token *cur_cmd;
int args_count; int args_count;
int i; int i;
@ -85,8 +85,8 @@ char **get_cmd_args(t_msh *msh)
void remove_command_from_msh(t_msh *msh) void remove_command_from_msh(t_msh *msh)
{ {
t_cmd *cur_cmd; t_token *cur_cmd;
t_cmd *cmd_tmp; t_token *cmd_tmp;
cur_cmd = msh->cmds; cur_cmd = msh->cmds;
while (cur_cmd && cur_cmd->next) while (cur_cmd && cur_cmd->next)

View File

@ -6,13 +6,13 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/18 15:46:50 by tomoron #+# #+# */ /* Created: 2024/02/18 15:46:50 by tomoron #+# #+# */
/* Updated: 2024/03/27 14:56:35 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:21:24 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "minishell.h" #include "minishell.h"
void print_parsed_cmd(t_cmd *cmd) void print_parsed_cmd(t_token *cmd)
{ {
while (cmd) while (cmd)
{ {

View File

@ -6,14 +6,14 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/07 15:30:37 by tomoron #+# #+# */ /* Created: 2024/02/07 15:30:37 by tomoron #+# #+# */
/* Updated: 2024/03/27 14:55:08 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:21:14 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "minishell.h" #include "minishell.h"
#include <unistd.h> #include <unistd.h>
void put_args(t_cmd *args) void put_args(t_token *args)
{ {
int first; int first;
@ -33,7 +33,7 @@ void put_args(t_cmd *args)
} }
} }
int echo(t_cmd *args) int echo(t_token *args)
{ {
int put_nl; int put_nl;
int i; int i;

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/07 16:04:11 by tomoron #+# #+# */ /* Created: 2024/02/07 16:04:11 by tomoron #+# #+# */
/* Updated: 2024/03/27 14:51:02 by tomoron ### ########.fr */ /* Updated: 2024/03/27 15:35:57 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -22,7 +22,7 @@ void numeric_arg_err(char *arg, int *exit_code)
void get_exit_bt_return_code(t_msh *msh, int *exit_code) void get_exit_bt_return_code(t_msh *msh, int *exit_code)
{ {
t_cmd *cur_cmd; t_token *cur_cmd;
cur_cmd = msh->cmds->next; cur_cmd = msh->cmds->next;
if (cur_cmd && cur_cmd->type == ARG && !ft_strisnbr(cur_cmd->value)) if (cur_cmd && cur_cmd->type == ARG && !ft_strisnbr(cur_cmd->value))
@ -35,7 +35,7 @@ void get_exit_bt_return_code(t_msh *msh, int *exit_code)
void exit_bt(t_msh *msh) void exit_bt(t_msh *msh)
{ {
t_cmd *cur_cmd; t_token *cur_cmd;
int exit_code; int exit_code;
int cmd_count; int cmd_count;

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 18:15:27 by marde-vr #+# #+# */ /* Created: 2024/03/05 18:15:27 by marde-vr #+# #+# */
/* Updated: 2024/03/27 14:58:15 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:20:41 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -27,7 +27,7 @@ void redirect_input(t_msh *msh, int i)
} }
} }
void open_input_file(t_msh *msh, t_cmd **cur_cmd) void open_input_file(t_msh *msh, t_token **cur_cmd)
{ {
if ((*cur_cmd)->type == HERE_DOC) if ((*cur_cmd)->type == HERE_DOC)
handle_here_doc(msh, (*cur_cmd)->next->value); handle_here_doc(msh, (*cur_cmd)->next->value);
@ -45,9 +45,9 @@ void open_input_file(t_msh *msh, t_cmd **cur_cmd)
} }
} }
void get_in_type(t_msh *msh, t_cmd *cmds) void get_in_type(t_msh *msh, t_token *cmds)
{ {
t_cmd *cur_cmd; t_token *cur_cmd;
cur_cmd = cmds; cur_cmd = cmds;
while (cur_cmd && cur_cmd->next && cur_cmd->type == ARG) while (cur_cmd && cur_cmd->next && cur_cmd->type == ARG)
@ -67,7 +67,7 @@ void get_in_type(t_msh *msh, t_cmd *cmds)
int first_is_in_type(t_msh *msh) int first_is_in_type(t_msh *msh)
{ {
t_cmd *cur_cmd; t_token *cur_cmd;
cur_cmd = msh->cmds; cur_cmd = msh->cmds;
while (cur_cmd && cur_cmd->type == ARG && cur_cmd->next) while (cur_cmd && cur_cmd->type == ARG && cur_cmd->next)

View File

@ -6,18 +6,18 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/06 20:46:19 by tomoron #+# #+# */ /* Created: 2024/02/06 20:46:19 by tomoron #+# #+# */
/* Updated: 2024/03/27 14:48:50 by tomoron ### ########.fr */ /* Updated: 2024/03/27 15:56:11 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
#include "minishell.h" #include "minishell.h"
t_cmd *cmd_add_back(t_cmd *cmd, char *value, t_token_type type) t_cmd *cmd_add_back(t_token *cmd, char *value, t_token_type type)
{ {
t_cmd *res; t_cmd *res;
t_cmd *current; t_cmd *current;
res = ft_calloc(1, sizeof(t_cmd)); res = ft_calloc(1, sizeof(t_token));
if (!res) if (!res)
return (cmd); return (cmd);
res->value = value; res->value = value;
@ -31,7 +31,7 @@ t_cmd *cmd_add_back(t_cmd *cmd, char *value, t_token_type type)
return (cmd); return (cmd);
} }
void free_cmd(t_cmd *cmd) void free_cmd(t_token *cmd)
{ {
if (cmd) if (cmd)
{ {

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/02 21:59:20 by tomoron #+# #+# */ /* Created: 2024/02/02 21:59:20 by tomoron #+# #+# */
/* Updated: 2024/03/26 17:25:20 by tomoron ### ########.fr */ /* Updated: 2024/03/27 15:05:42 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/02/04 17:31:38 by tomoron #+# #+# */ /* Created: 2024/02/04 17:31:38 by tomoron #+# #+# */
/* Updated: 2024/03/27 14:46:04 by tomoron ### ########.fr */ /* Updated: 2024/03/27 15:24:41 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -35,12 +35,12 @@ typedef enum e_token_type
HERE_DOC, HERE_DOC,
} t_token_type; } t_token_type;
typedef struct s_cmd typedef struct s_token
{ {
t_token_type type; t_token_type type;
char *value; char *value;
struct s_cmd *next; struct s_token *next;
} t_cmd; } t_token;
typedef struct s_env typedef struct s_env
{ {
@ -65,26 +65,26 @@ typedef struct s_msh
extern int g_return_code; extern int g_return_code;
t_cmd *cmd_add_back(t_cmd *res, char *token, t_token_type type); t_token *cmd_add_back(t_token *res, char *token, t_token_type type);
void free_cmd(t_cmd *cmd); void free_cmd(t_token *cmd);
void exec_commands(t_msh *msh); void exec_commands(t_msh *msh);
int echo(t_cmd *args); int echo(t_token *args);
void exit_bt(t_msh *msh); void exit_bt(t_msh *msh);
t_env *env_add_back(t_env *env, char *name, char *value); t_env *env_add_back(t_env *env, char *name, char *value);
void free_env(t_env *env); void free_env(t_env *env);
int print_env(t_env *env); int print_env(t_env *env);
t_cmd *parse_command(char *command, t_env *env); t_token *parse_command(char *command, t_env *env);
int get_token_len(char *cmd, t_env *env); int get_token_len(char *cmd, t_env *env);
int add_var_to_str(char *res, char **command, t_env *env); int add_var_to_str(char *res, char **command, t_env *env);
int get_var_name_len(char *command); int get_var_name_len(char *command);
char *ft_get_env(t_env *env, char *var_name); char *ft_get_env(t_env *env, char *var_name);
int pwd(void); int pwd(void);
int is_cmd_char(char c); int is_cmd_char(char c);
void print_parsed_cmd(t_cmd *cmd);//debug void print_parsed_cmd(t_token *cmd);//debug
void ft_exit(t_msh *msh, int error_code); void ft_exit(t_msh *msh, int error_code);
char **env_to_char_tab(t_env *env); char **env_to_char_tab(t_env *env);
void handle_minishellrc(t_msh *msh); void handle_minishellrc(t_msh *msh);
int cd(t_cmd *args); int cd(t_token *args);
int ft_export(t_msh *msh); int ft_export(t_msh *msh);
void free_msh(t_msh *msh); void free_msh(t_msh *msh);
char **split_paths_from_env(t_env *env); char **split_paths_from_env(t_env *env);
@ -92,8 +92,8 @@ void find_cmd_path(t_msh *msh, char **paths, int *found);
void get_cmd_path(t_msh *msh); void get_cmd_path(t_msh *msh);
void handle_here_doc(t_msh *msh, char *eof); void handle_here_doc(t_msh *msh, char *eof);
int ft_unset(t_msh *msh); int ft_unset(t_msh *msh);
void get_in_type(t_msh *msh, t_cmd *cmds); void get_in_type(t_msh *msh, t_token *cmds);
void get_out_type(t_msh *msh, t_cmd *cmds); void get_out_type(t_msh *msh, t_token *cmds);
int first_is_in_type(t_msh *msh); int first_is_in_type(t_msh *msh);
void redirect_input(t_msh *msh, int i); void redirect_input(t_msh *msh, int i);
void redirect_output(t_msh *msh, int i); void redirect_output(t_msh *msh, int i);
@ -103,8 +103,8 @@ void free_msh(t_msh *msh);
void ft_exit(t_msh *msh, int exit_code); void ft_exit(t_msh *msh, int exit_code);
int cmd_is_builtin(t_msh *msh, char *cmd_token); int cmd_is_builtin(t_msh *msh, char *cmd_token);
int exec_builtin(t_msh *msh); int exec_builtin(t_msh *msh);
int get_cmd_count(t_cmd *cmds); int get_cmd_count(t_token *cmds);
int get_args_count(t_cmd *cmds); int get_args_count(t_token *cmds);
char **get_cmd_args(t_msh *msh); char **get_cmd_args(t_msh *msh);
void remove_command_from_msh(t_msh *msh); void remove_command_from_msh(t_msh *msh);
int file_access(t_msh *msh, int *found); int file_access(t_msh *msh, int *found);

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 19:10:52 by marde-vr #+# #+# */ /* Created: 2024/03/05 19:10:52 by marde-vr #+# #+# */
/* Updated: 2024/03/27 14:58:29 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:21:56 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -26,7 +26,7 @@ void redirect_output(t_msh *msh, int i)
} }
} }
void open_out_file(t_msh *msh, t_cmd **cur_cmd) void open_out_file(t_msh *msh, t_token **cur_cmd)
{ {
msh->out_type = (*cur_cmd)->type; msh->out_type = (*cur_cmd)->type;
if (msh->out_type == RED_O) if (msh->out_type == RED_O)
@ -51,9 +51,9 @@ void open_out_file(t_msh *msh, t_cmd **cur_cmd)
} }
} }
void get_out_type(t_msh *msh, t_cmd *cmds) void get_out_type(t_msh *msh, t_token *cmds)
{ {
t_cmd *cur_cmd; t_token *cur_cmd;
msh->out_type = ARG; msh->out_type = ARG;
msh->out_fd = 0; msh->out_fd = 0;

View File

@ -6,7 +6,7 @@
/* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */ /* By: marde-vr <marde-vr@42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/22 14:31:13 by tomoron #+# #+# */ /* Created: 2024/03/22 14:31:13 by tomoron #+# #+# */
/* Updated: 2024/03/26 17:59:37 by tomoron ### ########.fr */ /* Updated: 2024/03/27 16:22:39 by tomoron ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -53,27 +53,28 @@ void signal_handler_here_doc(int signum)
ft_exit(msh, 1); ft_exit(msh, 1);
} }
} }
int set_echoctl(int value) int set_echoctl(int value)
{ {
struct termios t_p; struct termios t_p;
if(tcgetattr(1, &t_p)) if (tcgetattr(1, &t_p))
{ {
ft_printf_fd(2, "minishell: an error occured while setting the local fl\ ft_printf_fd(2, "minishell: an error occured while setting the local fl\
ags"); ags");
return(1); return (1);
} }
if(value) if (value)
t_p.c_lflag = t_p.c_lflag | ECHOCTL; t_p.c_lflag = t_p.c_lflag | ECHOCTL;
else else
t_p.c_lflag = t_p.c_lflag & (~ECHOCTL); t_p.c_lflag = t_p.c_lflag & (~ECHOCTL);
if(tcsetattr(1, TCSANOW, &t_p)) if (tcsetattr(1, TCSANOW, &t_p))
{ {
ft_printf_fd(2, "minishell: an error occured while setting the local fl\ ft_printf_fd(2, "minishell: an error occured while setting the local fl\
ags"); ags");
return(1); return (1);
} }
return(0); return (0);
} }
void signal_handler_command(int signum) void signal_handler_command(int signum)
{ {