From 91d91b0f54ec9795beaf673f20ff87b894a558c4 Mon Sep 17 00:00:00 2001 From: Charles Date: Sun, 14 Jun 2020 21:26:36 +0200 Subject: WIP: Added eval cmd with redirection and builtins --- src/preprocess.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/preprocess.c') diff --git a/src/preprocess.c b/src/preprocess.c index 22f42ab..278e8ef 100644 --- a/src/preprocess.c +++ b/src/preprocess.c @@ -6,7 +6,7 @@ /* By: charles +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/03 08:58:49 by charles #+# #+# */ -/* Updated: 2020/06/14 16:02:46 by charles ### ########.fr */ +/* Updated: 2020/06/14 21:25:05 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -113,6 +113,7 @@ static void st_iter_func_unwrap_token(void **addr) *(char**)addr = content; } +// need to free argv on error char **preprocess(t_ftlst *tokens, t_env env) { size_t i; @@ -157,3 +158,22 @@ char **preprocess(t_ftlst *tokens, t_env env) ft_vecpush(argv, NULL); return ((char**)ft_vecunwrap(argv)); } + +// need to free tokens +char *preprocess_filename(t_ftlst *tokens, t_env env) +{ + char **strs; + char *ret; + + if ((strs = preprocess(tokens, env)) == NULL + || strs[0] == NULL) + return (NULL); + if (strs[1] != NULL) + { + // ambiguous + return (NULL); + } + ret = strs[0]; + free(strs); + return (ret); +} -- cgit