int recursive(t_map *map, t_trimino *tetrimino) { int newpos; if (protect_stack(map, tetrimino)) return (1); newpos = find_next_pos(map, tetrimino); if (newpos) { if (newpos <= map->target) { if (tetrimino->next) return (recursive(map, tetrimino->next)); } else return (recursive(map, tetrimino)); } else if (tetrimino->prev) { map_unprint_tetrimino(map, tetrimino); return (recursive(map, tetrimino->prev)); } else if (!tetrimino->prev) return (1); return (0); }
static void add_to_heap(sel_timer_t **top, sel_timer_t **last, sel_timer_t *elem) { sel_timer_t **next; sel_timer_t *parent; #ifdef MASSIVE_DEBUG fprintf(*debug_out, "add_to_heap entry\n"); print_tree(*top, *last); check_tree(*top, *last); #endif elem->left = NULL; elem->right = NULL; elem->up = NULL; if (*top == NULL) { *top = elem; *last = elem; goto out; } find_next_pos(*last, &next, &parent); *next = elem; elem->up = parent; *last = elem; if (cmp_timeval(&elem->timeout, &parent->timeout) < 0) { send_up(elem, top, last); } out: #ifdef MASSIVE_DEBUG fprintf(*debug_out, "add_to_heap exit\n"); print_tree(*top, *last); check_tree(*top, *last); #endif return; }