diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-09-10 15:08:28 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-09-10 15:08:28 +0200 |
| commit | b16d4b834d95d5cc0757d09e74fe6042e55f5440 (patch) | |
| tree | aa64f6d4397a0c55337224c8cf474da73750ac30 /src/error.c | |
| parent | 10b54ed457ec0999e9289811401907d3a88970dc (diff) | |
| download | minishell-b16d4b834d95d5cc0757d09e74fe6042e55f5440.tar.gz minishell-b16d4b834d95d5cc0757d09e74fe6042e55f5440.tar.bz2 minishell-b16d4b834d95d5cc0757d09e74fe6042e55f5440.zip | |
Added better error handling in eval
Diffstat (limited to 'src/error.c')
| -rw-r--r-- | src/error.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/error.c b/src/error.c index e19a9ed..6c24635 100644 --- a/src/error.c +++ b/src/error.c @@ -6,7 +6,7 @@ /* By: charles <charles@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/06/14 11:02:52 by charles #+# #+# */ -/* Updated: 2020/08/27 10:44:08 by charles ### ########.fr */ +/* Updated: 2020/09/10 14:48:19 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -49,3 +49,29 @@ void verrorf(const char *format, va_list ap) } } } + +static int g_error_to_status[] = { + [ERR_NONE] = 0, + [ERR_AMBIGUOUS_REDIR] = 1, + [ERR_OPEN] = 1, + [ERR_CMD_NOT_FOUND] = 127, + [ERR_SYNTAX] = 2, + [ERR_IS_DIRECTORY] = 126, + [ERR_ERRNO] = 126, +}; + +int error_get_status(int status) +{ + return (g_error_to_status[status]); +} + +void error_set_status(int status) +{ + if (status == ERR_FATAL) + exit(1); + /* printf("%d\n", status); */ + if (status < ERR_NONE) + g_last_status = status; + else + g_last_status = g_error_to_status[status]; +} |
