From 64a413a49ed7979aad9a1eede5ba25c267884839 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Wed, 15 Jan 2025 16:36:45 +0100 Subject: [PATCH] Outsource error function --- Makefile | 2 +- include/minishell.h | 3 ++- src/error.c | 23 +++++++++++++++++++++++ src/get_cmd_path.c | 6 +++--- 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 src/error.c diff --git a/Makefile b/Makefile index 049422d..415d924 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ SRC := main.c debug_tools.c init.c signal_handling.c repl.c new_token.c \ free_token.c new_node.c free_node.c tokenizer.c parser.c \ parse_cmd.c collect_redirs.c print_ast.c interpreter.c env.c \ get_cmd_path.c env_to_strlst.c execute_cmd.c format_string.c \ - builtins_part_one.c builtins_part_two.c env_tools.c \ + builtins_part_one.c builtins_part_two.c env_tools.c error.c \ OBJ_DIR := _obj OBJ := $(addprefix $(OBJ_DIR)/, $(SRC:%.c=%.o)) diff --git a/include/minishell.h b/include/minishell.h index 505b21b..88b22d5 100644 --- a/include/minishell.h +++ b/include/minishell.h @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/22 17:14:49 by dkaiser #+# #+# */ -/* Updated: 2025/01/15 14:04:19 by dkaiser ### ########.fr */ +/* Updated: 2025/01/15 16:35:40 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,5 +44,6 @@ int execute_cmd(t_cmd *cmd, t_env **env); char *format_string(char *str, t_env *env); int set_return_code(int return_code, t_env **env); int handle_redirections(t_redirection *redirs); +void *error(int err_code, char *err_text, int exit_code, int *ret_code); #endif diff --git a/src/error.c b/src/error.c new file mode 100644 index 0000000..628200d --- /dev/null +++ b/src/error.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* error.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void *error(int err_code, char *err_text, int exit_code, int *ret_code) +{ + errno = err_code; + perror(err_text); + if (ret_code != NULL) + *ret_code = exit_code; + return (NULL); +} diff --git a/src/get_cmd_path.c b/src/get_cmd_path.c index fb45730..11100bc 100644 --- a/src/get_cmd_path.c +++ b/src/get_cmd_path.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/12/17 19:19:59 by chuhlig #+# #+# */ -/* Updated: 2025/01/15 16:32:30 by dkaiser ### ########.fr */ +/* Updated: 2025/01/15 16:34:56 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ @@ -21,7 +21,7 @@ static char *get_simple_cmd_path(char *cmd, int *return_code); static char *get_absolute_cmd_path(char *cmd, t_env *env, int *return_code); static char *find_in_path(char *cmd, t_env *env, int *return_code); -static char *error(int err_code, char *err_text, int exit_code, int *ret_code); +static void *error(int err_code, char *err_text, int exit_code, int *ret_code); char **get_split_path(t_env *env); static int is_directory(char *path); @@ -111,7 +111,7 @@ static char *get_simple_cmd_path(char *cmd, int *return_code) return (result); } -static char *error(int err_code, char *err_text, int exit_code, int *ret_code) +static void *error(int err_code, char *err_text, int exit_code, int *ret_code) { errno = err_code; perror(err_text); -- 2.47.2