void input_loop(void) { unsigned long keycode; t_environment *env; int should_refresh; env = get_set_environment(NULL); while (keycode = 0, (read(0, &keycode, 6)) != 0) { should_refresh = 1; if (keycode == KEY_BACKSPACE || keycode == KEY_DELETE) remove_selected(env); else if (keycode == KEY_SPACE) select_deselect(env); else if (keycode == KEY_ENTER) return_highlighted_words(env); else if (keycode == KEY_LEFT || keycode == KEY_RIGHT) handle_left_right(env, keycode); else if (keycode == KEY_DOWN || keycode == KEY_UP) handle_up_down(env, keycode); else if (keycode == KEY_ESCAPE || keycode == 'q') abort_exit(0); else should_refresh = 0; if (should_refresh) refresh_screen(0); } }
void loop_it(t_tout *tout) { unsigned long key; int refresh; while ((key = 0) || (read(0, &key, 6)) != 0) { refresh = 1; if (key == KEY_ESCAPE || key == 'q') abort_exit(0); else if (key == KEY_SPACE) select_deselect(tout); else if (key == KEY_ENTER) print_white(tout); else if (key == KEY_UP || key == KEY_DOWN) up_down(tout, key); else if (key == KEY_LEFT || key == KEY_RIGHT) left_right(tout, key); else if (key == KEY_BACKSPACE || key == KEY_DELETE) remove_word(tout); else refresh = 0; if (refresh) refresh_screen(0); } }