diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-09-14 15:44:33 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-09-14 15:44:33 +0200 |
| commit | 7afd22aacdae5d88f560576fd7261801beb60739 (patch) | |
| tree | f783f22e6866535ec9b09b0f4a65fbe06da7ba4c /src/preprocess.c | |
| parent | 5c5096d5c6d67686c1ad896cbb7a1b5386abf597 (diff) | |
| download | minishell-7afd22aacdae5d88f560576fd7261801beb60739.tar.gz minishell-7afd22aacdae5d88f560576fd7261801beb60739.tar.bz2 minishell-7afd22aacdae5d88f560576fd7261801beb60739.zip | |
Refactoring redir and preprocess_filename to distiguish between command error and fatal error
Diffstat (limited to 'src/preprocess.c')
| -rw-r--r-- | src/preprocess.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/preprocess.c b/src/preprocess.c index a07e429..2af9b7e 100644 --- a/src/preprocess.c +++ b/src/preprocess.c @@ -6,7 +6,7 @@ /* By: charles <charles@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/03 08:58:49 by charles #+# #+# */ -/* Updated: 2020/09/09 13:15:16 by charles ### ########.fr */ +/* Updated: 2020/09/14 15:42:18 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -176,7 +176,7 @@ char **preprocess(t_tok_lst **tokens, t_env env) while ((str = curr->content) != NULL && str[++i] != '\0') { if (escape(str + i, curr->tag)) - continue; + continue ; if (str[i] == '$') i = interpolate(str, i, &curr, prev_tag, env) - 1; } @@ -188,26 +188,23 @@ char **preprocess(t_tok_lst **tokens, t_env env) return (st_tokens_to_argv(*tokens)); } -// TODO malloc error vs shell error -char *preprocess_filename(t_tok_lst **tokens, t_env env) +int preprocess_filename(t_tok_lst **tokens, t_env env, char **filename) { char **strs; - char *ret; if ((strs = preprocess(tokens, env)) == NULL || strs[0] == NULL) { free(strs); - return (NULL); + return (EVAL_FATAL); } if (strs[1] != NULL) { - /* save tokens */ errorf("%s: ambiguous redidrect\n", strs[1]); ft_split_destroy(strs); - return (NULL); + return (1); } - ret = strs[0]; + *filename = ft_strdup(strs[0]); free(strs); - return (ft_strdup(ret)); + return (*filename == NULL ? EVAL_FATAL : 0); } |
