diff options
Diffstat (limited to 'src/builtins_part_two.c')
| -rw-r--r-- | src/builtins_part_two.c | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/src/builtins_part_two.c b/src/builtins_part_two.c index f54e04f..2382f25 100644 --- a/src/builtins_part_two.c +++ b/src/builtins_part_two.c @@ -6,7 +6,7 @@ /* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/25 20:52:16 by chuhlig #+# #+# */ -/* Updated: 2024/12/20 18:53:03 by chuhlig ### ########.fr */ +/* Updated: 2025/01/21 18:44:03 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,17 +15,14 @@ void update_oldpwd(t_env **env) { t_env *current; - t_env *prev; char cwd[1028]; char *tmp; - prev = NULL; current = *env; while (current) { if (ft_strncmp(current->name, "OLDPWD", 6) == 0) break ; - prev = current; current = current->next; } getcwd(cwd, sizeof(cwd)); @@ -37,17 +34,14 @@ void update_oldpwd(t_env **env) void update_pwd(t_env **env) { t_env *current; - t_env *prev; char cwd[1028]; char *tmp; - prev = NULL; current = *env; while (current) { if (ft_strncmp(current->name, "PWD", 3) == 0) break ; - prev = current; current = current->next; } getcwd(cwd, sizeof(cwd)); @@ -72,6 +66,7 @@ int cd(t_env **env, char **av) } if (chdir(current->value) == -1) return (1); + update_pwd(env); } else { @@ -82,3 +77,33 @@ int cd(t_env **env, char **av) } return (0); } + +int pwd(t_env *env) +{ + while (env) + { + if (ft_strncmp(env->name, "PWD", 4) == 0) + { + ft_printf("%s\n", env->value); + break ; + } + env = env->next; + } + return (0); +} + +int ft_env(t_env *env) +{ + while (env != NULL) + { + if (ft_strchr(env->name, '?')) + { + env = env->next; + continue ; + } + printf("%s", env->name); + printf("=%s\n", env->value); + env = env->next; + } + return (0); +} |
