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); }
int ft_isbuiltin(t_env *env, char *line) { char **line2; int i; t_main w; i = 0; line2 = ft_strsplit(line, ' '); if (ft_strcmp(line2[0], "echo") == 0 && (i = 1)) { line = ft_strfcut(line, 5); ft_echo(line); } else if (ft_strncmp(line, "cd", 2) == 0 && (i = 1)) ft_cd(line); else if (ft_strncmp(line, "unsetenv", 7) == 0 && (i = 1)) env = ft_unsetenv(env); else if (ft_strncmp(line, "env", 2) == 0 && (i = 1)) print_env(env); else if (ft_strncmp(line, "setenv", 5) == 0 && (i = 1)) { line = ft_strrw(line); line2 = ft_strsplit(line, ' '); env = set_env(line2, env); } if (i == 1) ft_doublecoms(env, &w, 0); return (1); }
int ft_builtin(t_env *env, char *line) { int i; char **line2; i = 0; line2 = NULL; line2 = ft_strsplit(line, ' '); line2[0] = ft_strtrim(line2[0]); if (ft_strcmp(line2[0], "echo") == 0 && (i = 1)) { line = ft_strfcut(line, 5); ft_echo(env, line); } else if (ft_strncmp(line, "cd", 2) == 0 && (i = 1)) ft_cd(line, env); else if (ft_strcmp(line, "clear") == 0 && (i = 1)) tputs(tgetstr("cl", NULL), 1, ft_ft_putchar); else if (ft_strncmp(line, "unsetenv", 7) == 0 && (i = 1)) { line2 = ft_strsplit(line, ' '); env = ft_unsetenv(env, line2[1]); } else if (i == 0) i = ft_builtin2(env, line); return (i); }
void ft_loop(char **cmd, t_env **e, char **tab_e) { if (!ft_strcmp(cmd[0], "echo")) ft_echo(cmd, *e); else if (!ft_strcmp(cmd[0], "exit")) { free_list(*e); exit(0); } else if (!ft_strcmp(cmd[0], "env")) { tab_e = listtotab(*e); ft_env(*e, cmd, tab_e); } else if (!ft_strcmp(cmd[0], "setenv")) ft_setenv(e, cmd); else if (!ft_strcmp(cmd[0], "unsetenv")) ft_unsetenv(e, cmd); else if (!ft_strcmp(cmd[0], "cd") && *e) ft_cd(*e, cmd); else { tab_e = listtotab(*e); do_fork(cmd, *e, tab_e); } free_tab(cmd); }
int cmp2(t_linez *linez, t_sh *term) { if (!ft_strncmp("setenv", linez->ep_l, 6) || !ft_strncmp("unsetenv", linez->ep_l, 8)) { if (linez->ep_l[6] != ' ' && linez->ep_l[8] != ' ') return (0); term->status = modif_env(term, linez, 0); return (1); } else if (!ft_strncmp("cd", linez->ep_l, 2)) { term->status = modif_cd(linez, term, 2); return (1); } else if (!ft_strncmp("echo", linez->ep_l, 4)) return (term->status = ft_echo(linez->ep_l)); return (cmp3(linez, term)); }
int ft_perform_cmd(t_tree *t, t_env *e) { int value; value = 0; if (!ft_strcmp(t->p->tok, "exit")) value = ft_exit(t->p); else if (!ft_strcmp(t->p->tok, "echo")) ft_echo(t->p); else if (!(ft_strcmp(t->p->tok, "cd"))) value = ft_cd(t->p, e); else if (!(ft_strcmp(t->p->tok, "env"))) value = ft_env(t->p, e); else if (!(ft_strcmp(t->p->tok, "unsetenv"))) value = ft_unsetenv(t->p, &(e->env)); else if (!(ft_strcmp(t->p->tok, "setenv"))) value = ft_setenv(t->p, &(e->env)); else value = ft_perform_exe(t->p, e); return (value); }
int builtin_commands(char *name, char **args, t_env **env_list) { int ret; ret = 0; if (ft_strcmp(name, "cd") == 0 && (ret = 1)) change_cwd(args, env_list); else if (ft_strcmp(name, "env") == 0 && (ret = 1)) print_env(*env_list); else if (ft_strcmp(name, "setenv") == 0 && (ret = 1)) ft_setenv(args[1], args[2], env_list); else if (ft_strcmp(name, "unsetenv") == 0 && (ret = 1)) ft_unsetenv(args[1], env_list); else if (ft_strcmp(name, "echo") == 0 && (ret = 1)) ft_echo(args, *env_list); else if (ft_strcmp(name, "exit") == 0) ret = 1; if (ret == 1) return (1); return (0); }
void own_command(t_env *env, char **sa, char *s) { if (ft_memcmp(sa[0], "echo", 4) == 0) ft_echo(sa); else if (ft_memcmp(sa[0], "cd", 2) == 0) ft_cd(env, sa); else if (ft_memcmp(sa[0], "setenv", 6) == 0) ft_setenv(env, sa); else if (ft_memcmp(sa[0], "unsetenv", 8) == 0) ft_unsetenv(env, sa); else if (ft_memcmp(sa[0], "env", 3) == 0) call_env(*env, s); else if (ft_memcmp(sa[0], "help", 4) == 0) ft_help(env, sa); else if (ft_memcmp(sa[0], "easter", 6) == 0) easteregg(env, sa); else if (ft_memcmp(sa[0], "history", 7) == 0) list_history(env, sa); else ft_putstr(E_MESS05); FREE_(s); }
int check_bultins(char **av, t_env *env) { if (!ft_strcmp(av[0], "exit")) ft_exit(av, env); else if (!ft_strcmp(av[0], "cd")) ft_cd(av, env); else if (!ft_strcmp(av[0], "setenv")) ft_setenv(av, env); else if (!ft_strcmp(av[0], "unsetenv")) ft_unsetenv(av, env); else if (!ft_strcmp(av[0], "env")) { ft_env(av, env->environ); resumed_terminal(); } else if (!ft_strcmp(av[0], "echo")) ft_echo(av, env->environ); else return (0); free_double_array(av); return (1); }