int analyse_rd(int *i, t_env *env, char **arg, int *k) { int j; j = ((char)*(unsigned int *)(env->rd) == '\t') ? srchsmtg(arg, *k, i) : 0; if (*(unsigned int *)(env->rd) == 127 && (j = 1) && (*i) > 0) delete(&arg, k, i); else if ((char)*(unsigned int *)(env->rd) == '\n' && \ (arg[*k][ft_strlen(arg[*k])] = *(unsigned int *)(env->rd))) return (0); else if (*(unsigned int *)(env->rd) == 4479771 && (j = 1)) left(arg, i, k); else if (*(unsigned int *)(env->rd) == 4414235) j = right(j, arg, i, k) > 0 ? 1 : 2; else if (*(unsigned int *)(env->rd) == 4348699) j = down(arg, k, j, i) > 0 ? 1 : 2; else if (*(unsigned int *)(env->rd) == 4283163) j = up(arg, k, j, i) > 0 ? 1 : 2; else if (j != 0) erase_c(4, &(env->term)); else j = ft_isprint((char)*(unsigned int *)env->rd) - 1; move_curs(arg, k, i, &(env->term)); if (j != 0) return (0); return (1); }
static char *sort_chain(char *str, int *cur) { int tmp; char *str2; tmp = *cur; *cur = move_curs(str, *cur); if (str[*cur] == '|' || str[*cur] == ';') return (check_around(tmp, *cur, str, str[*cur])); else if (str[*cur] == '>' && (str2 = check_redir(str, cur, tmp))) return (str2); else if (str[*cur] == '<' && (str2 = check_left_redir(str, tmp, cur))) return (str2); else if (str[*cur] == '&' && (str2 = check_and(tmp, cur, str))) return (str2); else if (!str[*cur]) return (cut_chain(tmp, *cur, str)); else return (NULL); }