diff options
| author | nass1pro <nass1pro@gmail.com> | 2020-09-14 16:23:43 +0200 |
|---|---|---|
| committer | nass1pro <nass1pro@gmail.com> | 2020-09-14 16:23:43 +0200 |
| commit | c0855888dc8d442791a67aa27be6dfcd8bfbf17d (patch) | |
| tree | d4989c4783759d402953cf0ebac0b139a5907f80 /src/preprocess.c | |
| parent | 7f08c8ba80240ece1f34caa4fb15e240301fff5e (diff) | |
| parent | 6b2157c5e64cbf1a4ed4cd0b4de40bbeab535de7 (diff) | |
| download | minishell-c0855888dc8d442791a67aa27be6dfcd8bfbf17d.tar.gz minishell-c0855888dc8d442791a67aa27be6dfcd8bfbf17d.tar.bz2 minishell-c0855888dc8d442791a67aa27be6dfcd8bfbf17d.zip | |
Merge branch 'master' of https://github.com/ouaisbrefbams/minishell
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); } |
