int check_builtins(t_cpe *cpe) { check_cmd_path(cpe); if (ft_strcmp(CMD, "exit") == 0) return (exec_err(cpe)); if (ft_strcmp(CMD, "echo") == 0) return (ft_echo(cpe) + 10); else if (ft_strcmp(CMD, "cd") == 0) return (ft_chdir(cpe)); else if (ft_strcmp(CMD, "env") == 0) return (check_envi(cpe)); else if (ft_strcmp(CMD, "setenv") == 0) { if (!PRM) return (print_arr(ENV) + 10); if (arr_size(PRM) > 2) { ft_putendl("setenv: Too many arguments"); ft_putendl("usage: setenv [name[value]]"); return (11); } return (ft_setenv(cpe) + 10); } else if (ft_strcmp(CMD, "unsetenv") == 0) return (ft_unsetenv(cpe) + 10); else return (-1); }
void ft_lcd(char *dir) { char *tmp; tmp = NULL; if (dir == NULL) ft_chdir(ft_getenv("HOME")); else if (*dir == '/') ft_chdir(dir); else if (ft_strcmp(dir, "-") == 0) ft_chdir(ston_old_pwd(NULL)); else if (*dir == '~') { tmp = ft_strijoin(ft_getenv("HOME"), dir, 0); ft_chdir(tmp); ft_strdel(&tmp); } else { ft_chdir(dir); ft_strdel(&tmp); } }