diff --git a/include/builtins.h b/include/builtins.h index aaf7adb..e0c92dc 100644 --- a/include/builtins.h +++ b/include/builtins.h @@ -6,7 +6,7 @@ /* By: mmoussou +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/04/25 12:20:26 by adjoly #+# #+# */ -/* Updated: 2024/07/13 16:35:57 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 13:45:22 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/builtins/ft_exit.c b/src/builtins/ft_exit.c new file mode 100644 index 0000000..70c96f9 --- /dev/null +++ b/src/builtins/ft_exit.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_exit.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/14 13:46:57 by adjoly #+# #+# */ +/* Updated: 2024/07/14 14:24:47 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void ft_exit(char **argv, int ac) +{ + char **tmp; + char *tmp_arg; + + (void)tmp; + (void)tmp_arg; + (void)argv; + (void)ac; + exit(727); +// if (ac > 2) +// exit +// while (*tmp) +// { +// +// tmp++; +// } + +} diff --git a/src/exec/exec_split_cmd.c b/src/exec/exec_split_cmd.c index 5aee5b0..90ba1a1 100644 --- a/src/exec/exec_split_cmd.c +++ b/src/exec/exec_split_cmd.c @@ -6,7 +6,7 @@ /* By: mmoussou cmd, X_OK) \ && !is_in_builtins(cmd->cmd))) { - printf("minishell : command not found: %s\n", input); + printf("minishell : command not found: %s$\n", input); free(input); return (-1); } diff --git a/src/exec/format_quotes.c b/src/exec/format_quotes.c index 6d8d24a..75ccaf0 100644 --- a/src/exec/format_quotes.c +++ b/src/exec/format_quotes.c @@ -6,7 +6,7 @@ /* By: mmoussou +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/03 16:34:19 by adjoly #+# #+# */ -/* Updated: 2024/07/03 19:07:23 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 15:34:16 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,6 +14,17 @@ #include "parsing.h" #include "error_msg.h" +bool check_file_name(t_list *redir) +{ + while (redir) + { + if (!((t_redirection *)redir->content)->file_name) + return (true); + redir = redir->next; + } + return (false); +} + bool check_argv(t_list *token) { t_list *tmp; @@ -23,6 +34,8 @@ bool check_argv(t_list *token) { if (!((t_token *)tmp->content)->argv) return (send_error_parsing(ERROR_NO_CMD)); + if (check_file_name(((t_token *)tmp->content)->redirection)) + return (send_error_parsing(ERROR_NO_FILE)); tmp = tmp->next; } return (false); diff --git a/src/parsing/env_var/env_var_replace.c b/src/parsing/env_var/env_var_replace.c index 0532bb2..fe03fce 100644 --- a/src/parsing/env_var/env_var_replace.c +++ b/src/parsing/env_var/env_var_replace.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/05 21:14:04 by adjoly #+# #+# */ -/* Updated: 2024/07/13 18:48:16 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 14:50:44 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,11 +16,29 @@ #include "minishell.h" #include "env.h" +char *__rep_quote(char *dollar) +{ + char *tmp; + + tmp = dollar; + if (!tmp) + return (NULL); + while (*tmp) + { + if (*tmp == DOUBLE) + *tmp = -2; + else if (*tmp == SINGLE) + *tmp = -1; + tmp++; + } + return (dollar); +} + void __cpy_dollar(char *tmp, size_t dollar_size, t_env *env, char **rl_dlrd) { char *dollar; - dollar = env_getn_value(tmp, env, dollar_size - 1); + dollar = __rep_quote(env_getn_value(tmp, env, dollar_size - 2)); if (!dollar) { tmp += dollar_size; @@ -28,6 +46,7 @@ void __cpy_dollar(char *tmp, size_t dollar_size, t_env *env, char **rl_dlrd) } ft_strlcat(*rl_dlrd, dollar, \ ft_strlen(dollar) + ft_strlen(*rl_dlrd) + 1); + free(dollar); } size_t strlen_till_notalnum(char *s) diff --git a/src/parsing/get_redir_fd.c b/src/parsing/get_redir_fd.c index 0b1ed3a..a0fa0ba 100644 --- a/src/parsing/get_redir_fd.c +++ b/src/parsing/get_redir_fd.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/30 10:48:41 by adjoly #+# #+# */ -/* Updated: 2024/07/13 14:05:27 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 15:11:26 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/parsing/open_redir.c b/src/parsing/open_redir.c index 55481b2..d29e894 100644 --- a/src/parsing/open_redir.c +++ b/src/parsing/open_redir.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/30 15:56:53 by adjoly #+# #+# */ -/* Updated: 2024/07/13 13:47:38 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 15:19:48 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/src/parsing/tokenizer/__to_redir.c b/src/parsing/tokenizer/__to_redir.c index 16bd87e..0358e7f 100644 --- a/src/parsing/tokenizer/__to_redir.c +++ b/src/parsing/tokenizer/__to_redir.c @@ -6,12 +6,13 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/05/25 15:06:15 by adjoly #+# #+# */ -/* Updated: 2024/07/10 00:21:08 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 15:20:08 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ #include "tokenizer.h" +#include t_redirection *__to_redir(char *redir_s) { t_redirection *redir; @@ -27,6 +28,8 @@ t_redirection *__to_redir(char *redir_s) while (*redir_s && *redir_s == ' ') redir_s++; tmp = redir_s; + if (*tmp == '/' || *tmp == '.') + return (redir); if (!ft_isalnum(*tmp)) return (redir); while (*tmp && ft_isalnum(*tmp)) diff --git a/src/free_list.c b/src/utils/free_list.c similarity index 100% rename from src/free_list.c rename to src/utils/free_list.c diff --git a/src/utils/ft_arrlen.c b/src/utils/ft_arrlen.c new file mode 100644 index 0000000..54165fb --- /dev/null +++ b/src/utils/ft_arrlen.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_arrlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/14 13:52:08 by adjoly #+# #+# */ +/* Updated: 2024/07/14 14:25:27 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +size_t ft_arrlen(char **a) +{ + char **tmp; + + tmp = a; + while (*tmp) + tmp++; + return (tmp - a); +} diff --git a/src/get_to_free.c b/src/utils/get_to_free.c similarity index 93% rename from src/get_to_free.c rename to src/utils/get_to_free.c index b716af0..ea0dea4 100644 --- a/src/get_to_free.c +++ b/src/utils/get_to_free.c @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/09 17:24:15 by adjoly #+# #+# */ -/* Updated: 2024/07/13 14:09:08 by adjoly ### ########.fr */ +/* Updated: 2024/07/14 13:59:14 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,6 +44,8 @@ int get_exit_code(int in) { static int exit_code; + if (in == 727) + exit_code = 727; if (in != -1) exit_code = in % 256; if (exit_code < 0) diff --git a/src/is_str.c b/src/utils/is_str.c similarity index 100% rename from src/is_str.c rename to src/utils/is_str.c diff --git a/src/ret_cwd.c b/src/utils/ret_cwd.c similarity index 100% rename from src/ret_cwd.c rename to src/utils/ret_cwd.c