int double_rightbis(char *line, t_sh *t, char *l_p, int i) { int d; int wak; d = dup(1); dup2(t->fd1, 1); while (read(t->fd1, &wak, 1) > 0) ; close(t->fd1); exec_cmd(t); dup2(d, 1); close(d); if (line[i] && (OPE2(line, i) || PIPOR(line, i))) { t->pv2 = i; if (OPE2(line, i) && have_pipe(line, i, t) == t->pv2) return (ft_red(line, t)); i = t->pv2; pre_parse(l_p, line, i, t); if (line[t->pv2] && line[t->pv2] == '>') return (ft_red(line, t)); return (t->pv2); } return (t->pv2 = i); }
int main(int ac, char **av) { t_list *targets; int flags; if (ac == 1) ls_dir(get_newrdir(".", NONE), 0, 0, 0); else if (checkpute(ac, av)) ft_putendl_fd("ls: fts_open: No such file or directory", 2); else { targets = NULL; flags = parser(ac, av, &targets); if (flags >= 0) pre_parse(targets, flags); ft_lstdel(&targets, 0); } return (0); }
int left_red_next(int i, t_sh *t, char **line) { char *l_p; l_p = NULL; t->pv2 = i; if (OPE2(*line, i) && have_pipe(*line, i, t) == t->pv2) { ft_red(*line, t); dup2(t->dupl, 0); close(t->dupl); t->fd1 = 0; return (t->pv2); } i = t->pv2; pre_parse(l_p, *line, i, t); dup2(t->dupl, 0); close(t->dupl); t->fd1 = 0; if ((*line)[t->pv2] && OPE2(*line, i)) return (ft_red(*line, t)); return (t->pv2); }