aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Kaiser2025-01-15 16:36:45 +0100
committerDominik Kaiser2025-01-15 16:36:45 +0100
commit64a413a49ed7979aad9a1eede5ba25c267884839 (patch)
tree355b20c5b8dea4046b502ffd8e758a475ffb41de
parent48912782078b2b3f59413db2539bf6fa6e56b2f8 (diff)
downloadminishell-64a413a49ed7979aad9a1eede5ba25c267884839.tar.gz
minishell-64a413a49ed7979aad9a1eede5ba25c267884839.zip
Outsource error function
-rw-r--r--Makefile2
-rw-r--r--include/minishell.h3
-rw-r--r--src/error.c23
-rw-r--r--src/get_cmd_path.c6
4 files changed, 29 insertions, 5 deletions
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 <chuhlig@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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 <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/01/15 16:35:53 by dkaiser #+# #+# */
+/* Updated: 2025/01/15 16:36:18 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "minishell.h"
+#include <errno.h>
+
+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 <chuhlig@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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);