static int ft_check_bultins(char *cmd, t_env *env, char *arg) { if (!ft_strcmp(cmd, "cd")) { return (1); } else if (!ft_strcmp(cmd, "exit")) { return (1); } else if (!ft_strcmp(cmd, "setenv") || !ft_strcmp(cmd, "export")) { ft_set_env(arg, env); return (1); } else if (!ft_strcmp(cmd, "unsetenv") || !ft_strcmp(cmd, "unset")) { ft_unset_env(arg, env); return (1); } else if (!ft_strcmp(cmd, "env")) { ft_print_env(env->env); return (1); } else return (0); }
int ft_tmp_env(char ***args, int *argc, char ***temp, char **envp) { char *lvl; if (!ft_strcmp((*args)[1], "-i")) { if ((*argc) == 2) return (3); (*temp) = ft_set_env(NULL); (*args)++; (*argc)--; return (1); } else (*temp) = ft_set_env(envp); if ((lvl = ft_found(*temp, "SHLVL=", 1))) lvl = ft_strcpy(lvl, ft_itoa(ft_atoi(lvl) - 1)); return (0); }
int ft_cmd(char **line, t_env *var) { int i; i = 0; if (!line || !line[0]) return (0); else if (ft_strcmp(line[0], "env") == 0) ft_show_env(var); else if (ft_strcmp(line[0], "unsetenv") == 0) ft_del_env(var, line[1]); else if (ft_strcmp(line[0], "setenv") == 0) var = ft_set_env(var, line[1]); else if (ft_strcmp(line[0], "cd") == 0) ft_change_directory(var, line[1]); else if (ft_strcmp(line[0], "exit") == 0) return (1); else ft_exec(line[0], line, var); return (0); }