int do_chdir(char *path) { char *pwd; if (chdir(path) != 0) { shell_warn("cd: chdir() failed.\n"); return -1; } if ((pwd = sh_getenv("PWD")) != NULL) { sh_setenv("OLDPWD", pwd); } else sh_unsetenv("OLDPWD"); set_pwd(); return 0; }
int built_in(char **argv, char **env) { int i; i = 0; if (ft_strcmp(argv[0], "exit") == 0 && (i = 1)) sh_exit(argv, 42); else if (ft_strcmp(argv[0], "cd") == 0 && (i = 1)) sh_cd(argv); else if (ft_strcmp(argv[0], "env") == 0 && (i = 1)) sh_env(argv, env); else if (ft_strcmp(argv[0], "setenv") == 0 && (i = 1)) sh_setenv(argv); else if (ft_strcmp(argv[0], "unsetenv") == 0 && (i = 1)) sh_unsetenv(argv); else if (ft_strcmp(argv[0], "help") == 0 && (i = 1)) sh_help(); return (i); }
void init_pwd() { sh_unsetenv("OLDPWD"); set_pwd(); }