/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* cd.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: sede-san 2) { ft_eputendl("minishell: cd: too many arguments"); *status = EXIT_FAILURE; return (NULL); } if (cmd.argc == 2 && ft_strcmp(cmd.argv[1], "-") == 0) return (get_path_from_env(msh, "OLDPWD", "minishell: cd: OLDPWD not set", status)); if (cmd.argc == 1) return (get_path_from_env(msh, "HOME", "minishell: cd: HOME not set", status)); *status = EXIT_SUCCESS; return (cmd.argv[1]); } static char *get_path_from_env( t_minishell *msh, const char *env_name, const char *error, uint8_t *status ){ char *path; path = get_env(env_name, msh); if (path == NULL) { ft_eputendl((char *)error); *status = EXIT_FAILURE; return (NULL); } *status = EXIT_SUCCESS; return (path); }