int ft_traitement(char *str) { int i; char *path; char **parsed; str = ft_formatting(str); i = ft_opera_handler(str); if (i >= 0) { ft_strdel(&str); return (i); } if (!(parsed = parse_command(str))) { ft_strdel(&str); return (-1); } i = ft_check_builtin(parsed); path = get_val("PATH"); if (i >= 0) g_status = g_listefonctions[i](parsed); else if (!ft_check_exe(parsed, path)) return (ft_not_found(&parsed, &str)); ft_arrfree(&parsed); ft_strdel(&str); return (1); }
void ft_read_command(char *buf, t_env *env) { char *cmd; char *arg; char *path; arg = ft_get_cmd(&cmd, buf); if (ft_check_bultins(cmd, arg, env)) exit(EXIT_SUCCESS); else if(ft_check_path(cmd, &path, env->path)) execve(path, cmd, env->env); else ft_not_found(cmd); }