From bee12290d5f7156e8df6bc7d7d6c3bfb8f31fd80 Mon Sep 17 00:00:00 2001 From: mdev9 Date: Thu, 25 Apr 2024 13:45:13 +0200 Subject: [PATCH] fixed syntax error error code and exit too big --- srcs/check_syntax.c | 7 ++++++- srcs/check_syntax_utils.c | 4 +++- srcs/exit.c | 4 ++-- srcs/utils_bonus.c | 3 ++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/srcs/check_syntax.c b/srcs/check_syntax.c index dcd9b1b..b068fec 100644 --- a/srcs/check_syntax.c +++ b/srcs/check_syntax.c @@ -6,7 +6,7 @@ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/04/24 14:50:15 by tomoron #+# #+# */ -/* Updated: 2024/04/24 15:00:00 by tomoron ### ########.fr */ +/* Updated: 2024/04/25 13:02:46 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,12 +20,14 @@ int check_parens_syntax(t_cmd *cmd, t_cmd *last, t_env *env) if (last && is_cmd_type(last)) { ft_putstr_fd("minishell: syntax error\n", 2); + g_return_code = 2; return (0); } parsed_cmd = parsing_bonus(cmd->value); if (!parsed_cmd) { ft_putstr_fd("minishell: syntax error\n", 2); + g_return_code = 2; return (0); } tmp = check_cmds_syntax(parsed_cmd, env); @@ -110,6 +112,9 @@ int check_str_syntax(char *cmd) cmd++; } if (in_quote || in_dquote || parenthesis) + { ft_putstr_fd("minishell: syntax error\n", 2); + g_return_code = 2; + } return (!(in_quote || in_dquote || parenthesis)); } diff --git a/srcs/check_syntax_utils.c b/srcs/check_syntax_utils.c index 32cf586..66514e5 100644 --- a/srcs/check_syntax_utils.c +++ b/srcs/check_syntax_utils.c @@ -6,7 +6,7 @@ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/04/24 14:54:53 by tomoron #+# #+# */ -/* Updated: 2024/04/24 18:57:48 by marde-vr ### ########.fr */ +/* Updated: 2024/04/25 13:03:37 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ void print_syntax_error_bonus(t_cmd *cmd) if (cmd->cmd_type == CMD || cmd->cmd_type == PAREN) return ; ft_printf_fd(2, "minishell : syntax error near unexpected token `"); + g_return_code = 2; if (cmd->cmd_type == AND) ft_printf_fd(2, "&&"); if (cmd->cmd_type == OR) @@ -35,6 +36,7 @@ int check_tokens_syntax(t_cmd *cmd, t_cmd *last, t_env *env) if (last && is_cmd_type(last)) { ft_putstr_fd("minishell : syntax error\n", 2); + g_return_code = 2; return (0); } token = parse_cmds_to_token(cmd, env); diff --git a/srcs/exit.c b/srcs/exit.c index f350def..fc24b21 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/04/24 19:14:52 by tomoron ### ########.fr */ +/* Updated: 2024/04/25 13:10:36 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,7 @@ void get_exit_bt_return_code(t_msh *msh, int *exit_code) t_token *cur_cmd; cur_cmd = msh->tokens->next; - if (cur_cmd && !ft_strisnbr(cur_cmd->value)) + if (cur_cmd && (!ft_strisnbr(cur_cmd->value) || ft_strlen(cur_cmd->value) > 18)) numeric_arg_err(cur_cmd->value, exit_code); else if (cur_cmd) *exit_code = (unsigned char)ft_atoi(cur_cmd->value); diff --git a/srcs/utils_bonus.c b/srcs/utils_bonus.c index 73e8101..d12551b 100755 --- a/srcs/utils_bonus.c +++ b/srcs/utils_bonus.c @@ -6,7 +6,7 @@ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/27 17:19:27 by tomoron #+# #+# */ -/* Updated: 2024/04/24 18:59:26 by marde-vr ### ########.fr */ +/* Updated: 2024/04/25 13:03:18 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,6 +16,7 @@ t_token *parsing_syntax_error(t_token *res) { free_token(res); ft_putstr_fd("minishell: syntax error\n", 2); + g_return_code = 2; return ((void *)1); }