From 35137e10d61b8e3c3b226f5376afc12302b905e9 Mon Sep 17 00:00:00 2001 From: Lukas Jiriste Date: Fri, 23 Aug 2024 15:42:36 +0200 Subject: [PATCH] Implement $? handling --- src/execution.c | 41 ++++++++++++++++++++++++++++------------- src/wildcards.c | 4 ++-- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/execution.c b/src/execution.c index b1cf8ec..bd8d367 100644 --- a/src/execution.c +++ b/src/execution.c @@ -6,7 +6,7 @@ /* By: lnikolov ret_val); + } + else + { + var = get_var_name(word + i); + if (!var) return (1); + i += ft_strlen(var); + const_val = get_env_var_value(env, var); + free(var); + if (!const_val) + continue; + value = ft_strdup(const_val); + } + if (!value || ft_vec_append(exp_str, "'") != success + || ft_vec_append_range(exp_str, value, ft_strlen(value)) != success + || ft_vec_append(exp_str, "'") != success) + { + free(value); + return (1); + } + free(value); } else if (ft_vec_append(exp_str, word + (i++)) != success) diff --git a/src/wildcards.c b/src/wildcards.c index a7ad6f3..709dcec 100644 --- a/src/wildcards.c +++ b/src/wildcards.c @@ -6,7 +6,7 @@ /* By: ljiriste +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/08 10:50:26 by ljiriste #+# #+# */ -/* Updated: 2024/08/22 16:15:32 by ljiriste ### ########.fr */ +/* Updated: 2024/08/23 14:03:58 by ljiriste ### ########.fr */ /* */ /* ************************************************************************** */ @@ -279,7 +279,7 @@ int should_be_expanded(const char *word) i = 0; while (word[i]) { - if ((word[i] == '*' || word[i] == '?') && quote_char == '\0') + if ((word[i] == '*' || (word[i] == '?' && !(i && word[i - 1] == '$'))) && quote_char == '\0') return (1); if (word[i] == '"') { -- 2.30.2