diff options
Diffstat (limited to 'src/preprocess/filename.c')
| -rw-r--r-- | src/preprocess/filename.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/preprocess/filename.c b/src/preprocess/filename.c new file mode 100644 index 0000000..0470554 --- /dev/null +++ b/src/preprocess/filename.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* filename.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <me@cacharle.xyz> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/10/09 15:29:04 by cacharle #+# #+# */ +/* Updated: 2020/10/09 15:30:03 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "eval.h" +#include "lexer.h" +#include "minishell.h" + +int preprocess_filename(t_tok_lst **tokens, t_env env, char **filename) +{ + char **strs; + + if ((strs = preprocess(tokens, env)) == NULL || strs[0] == NULL) + { + free(strs); + return (EVAL_FATAL); + } + if (strs[1] != NULL) + { + errorf("%s: ambiguous redidrect\n", strs[1]); + ft_split_destroy(strs); + return (1); + } + *filename = strs[0]; + free(strs); + return (*filename == NULL ? EVAL_FATAL : 0); +} |
