From 00bce5ad1d5ac92d20617a9eb2647365bf87cab2 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Fri, 9 Oct 2020 16:13:50 +0200 Subject: Splitting preprocessing, Added parsed error helper --- src/preprocess/filename.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/preprocess/filename.c (limited to 'src/preprocess/filename.c') 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* 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); +} -- cgit