diff --git a/inc/utils.h b/inc/utils.h index d374f75..36087dc 100644 --- a/inc/utils.h +++ b/inc/utils.h @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/05 16:06:35 by whaffman #+# #+# */ -/* Updated: 2025/02/05 16:23:21 by whaffman ######## odam.nl */ +/* Updated: 2025/02/20 18:07:19 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -20,5 +20,10 @@ t_minishell *init_minishell(void); void print_banner(void); void print_list(void *content); void simple_builtins(t_minishell *minishell); +void error_msg(char *func, char *msg); +void check_malloc(void *ptr); +char *ft_strdup_safe(const char *str); +char *ft_strjoin_safe(const char *s1, const char *s2); +void *ft_malloc_safe(size_t size); #endif // UTILS_H diff --git a/src/utils/check_malloc.c b/src/utils/check_malloc.c new file mode 100644 index 0000000..a7ae1d5 --- /dev/null +++ b/src/utils/check_malloc.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* check_malloc.c :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/20 18:00:10 by whaffman #+# #+# */ +/* Updated: 2025/02/20 18:01:08 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + + +void check_malloc(void *ptr) +{ + if (ptr == NULL) + { + error_msg("malloc", "can't allocate memory"); + exit(1); + } +} diff --git a/src/utils/error_msg.c b/src/utils/error_msg.c new file mode 100644 index 0000000..bb985e4 --- /dev/null +++ b/src/utils/error_msg.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* error_msg.c :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/20 17:03:13 by whaffman #+# #+# */ +/* Updated: 2025/02/20 17:59:36 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + + +void error_msg(char *func, char *msg) +{ + if (errno) + perror(RED BOLD "minishell" RESET); + else + { + ft_putstr_fd(RED BOLD "minishell" RESET ": ", 2); + if (func != NULL) + { + ft_putstr_fd(func, 2); + ft_putstr_fd(": ", 2); + } + if (msg != NULL) + ft_putstr_fd(msg, 2); + else + ft_putstr_fd("general error", 2); + ft_putstr_fd("\n", 2); + } +} diff --git a/src/utils/ft_malloc_safe.c b/src/utils/ft_malloc_safe.c new file mode 100644 index 0000000..eeb6923 --- /dev/null +++ b/src/utils/ft_malloc_safe.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_malloc_safe.c :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/20 18:06:46 by whaffman #+# #+# */ +/* Updated: 2025/02/20 18:07:00 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +void *ft_malloc_safe(size_t size) +{ + void *ptr; + + ptr = malloc(size); + check_malloc(ptr); + return (ptr); +} diff --git a/src/utils/ft_strdup_safe.c b/src/utils/ft_strdup_safe.c new file mode 100644 index 0000000..c0fe7fb --- /dev/null +++ b/src/utils/ft_strdup_safe.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strdup_safe.c :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/20 18:01:27 by whaffman #+# #+# */ +/* Updated: 2025/02/20 18:04:53 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +char *ft_strdup_safe(const char *str) +{ + char *new_str; + + new_str = ft_strdup(str); + check_malloc(new_str); + return (new_str); +} diff --git a/src/utils/ft_strjoin_safe.c b/src/utils/ft_strjoin_safe.c new file mode 100644 index 0000000..27c8d0f --- /dev/null +++ b/src/utils/ft_strjoin_safe.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strjoin_safe.c :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/20 18:02:31 by whaffman #+# #+# */ +/* Updated: 2025/02/20 18:04:23 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "minishell.h" + +char *ft_strjoin_safe(const char *s1, const char *s2) +{ + char *new_str; + + new_str = ft_strjoin(s1, s2); + check_malloc(new_str); + return (new_str); +} +