summaryrefslogtreecommitdiffstats
path: root/src/ft_b_cd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ft_b_cd.c')
-rw-r--r--src/ft_b_cd.c73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/ft_b_cd.c b/src/ft_b_cd.c
deleted file mode 100644
index fbd0282..0000000
--- a/src/ft_b_cd.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_b_cd.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */
-/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */
-/* */
-/* ************************************************************************** */
-
-#include <libft.h>
-#include <stdint.h>
-#include <unistd.h>
-
-#include "ft_f_fail.h"
-#include "ft_s_destroy.h"
-#include "ft_s_struct.h"
-#include "ft_u_utils.h"
-#include "ft_u_vars.h"
-
-static void
- ft_set_path(char **path,
- char *args[],
- t_msh *msh)
-{
- if (!(*path = ft_strdup(*args)))
- {
- ft_s_destroy(msh);
- ft_fail_alloc(msh);
- }
- if (!ft_strncmp("~/", *path, 2) || !ft_strncmp("~", *path, 2))
- {
- if (!(*path = ft_strsubst(*path,
- "~", ft_subst_var_value("$HOME", msh))))
- {
- ft_s_destroy(msh);
- ft_fail_alloc(msh);
- }
- }
-}
-
-uint8_t
- ft_b_cd(char *args[],
- t_msh *msh)
-{
- const uint64_t argc = ft_get_argc((const char**)args);
- char *path;
-
- if (argc >= 2)
- {
- ft_fail_too_many_args("cd", msh);
- return (1);
- }
- else if (argc == 0)
- {
- if (!(path = ft_subst_var_value("$HOME", msh)))
- return (1);
- }
- else
- ft_set_path(&path, args, msh);
- if (chdir(path) != 0)
- {
- ft_fail_chd("cd", path, msh);
- ft_memdel((void*)&path);
- return (1);
- }
- ft_memdel((void*)&msh->cwd);
- msh->cwd = getcwd(NULL, 0);
- ft_memdel((void*)&path);
- return (0);
-}