void ft_union(char *s1, char *s2, int size) { char tmp[size]; int i; int j; tmp[size] = '\0'; j = 0; i = 0; while (s1[j]) { if (!(ft_find(tmp, s1[j]))) tmp[i++] = s1[j]; j++; } j = 0; while (s2[j]) { if (!(ft_find(tmp, s2[j]))) tmp[i++] = s2[j]; j++; } tmp[i] = '\0'; write(1, &tmp, ft_strlen(tmp)); }
int ft_helper(t_data *data, char **line) { data->str = ft_strdup(data->rest); ft_strdel(&(data->rest)); if (ft_find(data, line) == 1) return (1); *line = ft_strdup(data->rest); ft_strdel(&(data->rest)); return (1); }
static int ft_find_line(int ret, char **str, char **line) { if (ret == -1) return (-1); if (ft_strchr(*str, '\n') || ret > 0) return (ft_find(str, line)); else if (ft_strlen(*str) > 0) return (ft_end(str, line)); *line = NULL; return (0); }
static void ft_lay_egg(t_env *env) { if (env->connect_nb < 0) ft_push_cmd(env, CON_NB, NULL, RESP_VAL); else if (ft_enough_food(env)) { ft_push_cmd(env, AVANCE, NULL, RESP_OK); ft_push_cmd(env, FORK, NULL, RESP_OK); ft_push_cmd(env, AVANCE, NULL, RESP_OK); env->laying = 1; } else ft_find(env, FOOD); }
int ft_ia(t_env *env) { if (env->laying) ft_push_cmd(env, CON_NB, NULL, RESP_VAL); if (env->expul) { ft_push_cmd(env, EXPUL, NULL, RESP_OK); env->expul = 0; } if (!env->forked && !env->laying) ft_lay_egg(env); else if (!env->forked && env->laying && env->inv[FOOD] < 12) ft_find(env, FOOD); else ft_try_elevation(env); return (OK); }
static void ft_try_elevation(t_env *env) { if (env->view[0][FOOD] > 0 && ft_check_squ_stones(env)) ft_get_people_here(env); else if (ft_check_inv_stones(env)) { if (env->view[0][FOOD] == 0) ft_find(env, FOOD); else { ft_putdown_stones(env); ft_get_people_here(env); } } else ft_collect_stones(env); }
int ft_delete_backslashes(t_p **p) { t_p *move; int cont; move = *p; while (move) { if (move->type == WORD && ft_find(move->tok, "\\")) { if ((cont = ft_token_without_backslashes(&(move->tok))) == -2) { ft_putendl_fd("Parse error near \'\\\'", 2); return (-1); } else if (cont == -1) return (-1); } move = move->next; } return (0); }
void ft_add_gr(t_steve *list, t_opts *opt) { int rec; t_steve *tmp; rec = 0; while (list != NULL) { tmp = NULL; if (opt->l == 0) ft_ls_l(list); if (list->access[0] == 'd' && ft_strcmp(list->file, ".") != 0 && ft_strcmp(list->file, "..") != 0) { ft_putchar('\n'); ft_putstr(list->path); ft_putendl(":"); ft_find(list->path, &tmp, opt, rec); } list = list->next; } }
int ft_read(t_data *data, const int fd, char **line) { char buf[BUFF_SIZE + 1]; while ((data->ret = read(fd, buf, BUFF_SIZE)) > 0) { buf[data->ret] = '\0'; if (!(data->rest)) data->rest = ft_strdup(""); data->str = ft_strjoin(data->rest, buf); ft_strdel(&(data->rest)); if (ft_find(data, line) == 1) return (1); } if (data->ret == -1) { if (data->rest) ft_strdel(&(data->rest)); return (-1); } if (data->ret == 0 && data->rest) return (ft_helper(data, line)); return (0); }