diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-04-01 23:16:47 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-04-01 23:21:25 +0200 |
| commit | f66cb8f28a2779159baeef6ea91a7684d59cc295 (patch) | |
| tree | eda02dc289d25a776cb347f45d54e34476190f2b /src/builtin | |
| parent | 1ff9504c6b6f4c8bcebb75935b2d999f6c7b018c (diff) | |
| download | minishell-f66cb8f28a2779159baeef6ea91a7684d59cc295.tar.gz minishell-f66cb8f28a2779159baeef6ea91a7684d59cc295.tar.bz2 minishell-f66cb8f28a2779159baeef6ea91a7684d59cc295.zip | |
Changed representation of environment to vector
Diffstat (limited to 'src/builtin')
| -rw-r--r-- | src/builtin/cd.c | 4 | ||||
| -rw-r--r-- | src/builtin/env.c | 12 | ||||
| -rw-r--r-- | src/builtin/export.c | 12 | ||||
| -rw-r--r-- | src/builtin/unset.c | 14 |
4 files changed, 24 insertions, 18 deletions
diff --git a/src/builtin/cd.c b/src/builtin/cd.c index dc88dae..66f1f81 100644 --- a/src/builtin/cd.c +++ b/src/builtin/cd.c @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:10:20 by charles #+# #+# */ -/* Updated: 2020/04/01 17:10:21 by charles ### ########.fr */ +/* Updated: 2020/04/01 22:15:49 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,7 +23,7 @@ int builtin_cd(char **argv, t_env env) path = argv[1]; if (argv[1] == NULL) - path = ft_htget(env, "HOME"); + path = env_search(env, "HOME"); if (path == NULL) return (1); if (chdir(path) == -1) diff --git a/src/builtin/env.c b/src/builtin/env.c index d3f4024..5854828 100644 --- a/src/builtin/env.c +++ b/src/builtin/env.c @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:10:32 by charles #+# #+# */ -/* Updated: 2020/04/01 17:10:33 by charles ### ########.fr */ +/* Updated: 2020/04/01 22:25:43 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,17 +17,9 @@ #include "minishell.h" -void st_print_env_variable(t_ftht_entry *entry) -{ - ft_putstr(entry->key); - ft_putchar('='); - ft_putstr((char*)entry->value); - ft_putchar('\n'); -} - int builtin_env(char **argv, t_env env) { (void)argv; - ft_htiter(env, st_print_env_variable); + ft_veciter(env, (void (*)(void*))ft_putendl); return (0); } diff --git a/src/builtin/export.c b/src/builtin/export.c index 8a62412..650a421 100644 --- a/src/builtin/export.c +++ b/src/builtin/export.c @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:11:34 by charles #+# #+# */ -/* Updated: 2020/04/01 17:11:38 by charles ### ########.fr */ +/* Updated: 2020/04/01 22:37:47 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,7 +19,13 @@ int builtin_export(char **argv, t_env env) { - (void)argv; - (void)env; + char *tmp; + + if (ft_strchr(argv[1], '=') == NULL) + return (1); + if ((tmp = ft_strdup(argv[1])) == NULL) + return (2); + if (ft_vecpush(env, tmp) == NULL) + return (2); // internal error code return (0); } diff --git a/src/builtin/unset.c b/src/builtin/unset.c index 2ae6c27..ffcf60f 100644 --- a/src/builtin/unset.c +++ b/src/builtin/unset.c @@ -6,7 +6,7 @@ /* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:10:51 by charles #+# #+# */ -/* Updated: 2020/04/01 17:10:51 by charles ### ########.fr */ +/* Updated: 2020/04/01 23:05:33 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,8 +19,16 @@ int builtin_unset(char **argv, t_env env) { + size_t i; + if (argv[1] == NULL) return (1); - ft_htdelone(env, argv[1], ht_del_str_entry); - return (0); + i = 0; + while (i < env->size) + if (ft_strncmp(env->data[i], argv[1], ft_strlen(argv[1])) == 0) + { + ft_vecremove(env, i, free); + return (0); + } + return (1); } |
