From 998356979c2c2c37d52dff18325197aa7ed47652 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 29 Jul 2024 15:45:05 +0200 Subject: [PATCH 1/2] can no longer export null variables like [export ] --- src/built_ins/export.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/built_ins/export.c b/src/built_ins/export.c index fe239dd..c6aa77d 100644 --- a/src/built_ins/export.c +++ b/src/built_ins/export.c @@ -6,7 +6,7 @@ /* By: bthomas +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/12 20:32:33 by bthomas #+# #+# */ -/* Updated: 2024/07/29 15:18:38 by bthomas ### ########.fr */ +/* Updated: 2024/07/29 15:43:12 by bthomas ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,6 +25,8 @@ static bool invalid_key(char *s) return (true); i++; } + if (i == 0) + return (true); return (false); } From bf8ad3565bb2e8261621fd45937acfd97b1a3d33 Mon Sep 17 00:00:00 2001 From: Ben Date: Mon, 29 Jul 2024 16:04:33 +0200 Subject: [PATCH 2/2] added edge case 'export PATH' no longer unsets path (and similar prompts too). --- src/built_ins/export.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/built_ins/export.c b/src/built_ins/export.c index c6aa77d..7fd369a 100644 --- a/src/built_ins/export.c +++ b/src/built_ins/export.c @@ -6,7 +6,7 @@ /* By: bthomas +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/12 20:32:33 by bthomas #+# #+# */ -/* Updated: 2024/07/29 15:43:12 by bthomas ### ########.fr */ +/* Updated: 2024/07/29 16:02:44 by bthomas ### ########.fr */ /* */ /* ************************************************************************** */ @@ -55,13 +55,15 @@ static void print_env(t_data *data) } } -static char *get_export_val(char **cmd, int cmd_len) +static char *get_export_val(t_data *data, char *key, char **cmd, int cmd_len) { char *ret; size_t i; if (!cmd || !*cmd) return (NULL); + if (cmd_len == 2 && in_vlist(data->env_vars, key)) + return (NULL); if (cmd_len < 4) return (ft_strdup("")); ret = ft_strdup(cmd[3]); @@ -98,7 +100,7 @@ void call_export(t_data *data, char **cmd) key = ft_strdup(cmd[1]); if (!key) return ; - val = get_export_val(cmd, cmd_len); + val = get_export_val(data, key, cmd, cmd_len); if (!val) return (free(key)); if (add_var(&data->env_vars, key, val))