char *get_col_west(t_env *e, int y, int col, int nbr) { char *saw; char *content; saw = NULL; while (nbr--) { if ((content = get_boxcontent(e->map[REALP(y, e->y)][col])) != NULL) saw = ft_strfreejoin(&saw, content); saw = ft_strfreejoin(&saw, ", "); y--; } return (saw); }
char *get_line_south(t_env *e, int x, int line, int nbr) { char *saw; char *content; saw = NULL; while (nbr--) { if ((content = get_boxcontent(e->map[line][REALP(x, e->x)])) != NULL) saw = ft_strfreejoin(&saw, content); saw = ft_strfreejoin(&saw, ", "); x--; } return (saw); }
int get_next_line(int const fd, char **dest) { static t_fd *current_fd = NULL; char buffer[BUFF_SIZE + 1]; char *line; int len; int ret; ret = 0; current_fd = ft_get_fd(current_fd, fd); if ((fd < 0 || fd == 1 || fd == 2) || dest == NULL) return (-1); while (fd >= 0 && ((len = ft_check_endofline(current_fd->text)) || (ret = ft_read_fd(fd, buffer)) > 0) && len <= 0) current_fd->text = ft_strfreejoin(current_fd->text, buffer, 2); if (ret == -1) return (-1); if (len > 0) current_fd->text[len - 1] = '\0'; *dest = ft_strdup(current_fd->text); line = current_fd->text; current_fd->text = ((len > 0) ? ft_strdup(current_fd->text + len) : ft_strdup("")); free(line); current_fd = current_fd->begin_list; return ((len || **dest) ? 1 : 0); }