diff options
Diffstat (limited to 'jet.c')
-rw-r--r-- | jet.c | 24 |
1 files changed, 19 insertions, 5 deletions
@@ -32,14 +32,28 @@ int main(int argc, char *argv[]) { keypad(stdscr, TRUE); int window_height = getmaxy(stdscr); + int current_line = 0; + int number_of_lines = 0; + for (int i = 0; i < file_size; i++) { + if (buffer[i] == '\n') number_of_lines++; + } while (1) { - int current_line = 0; - for (int i = 0; i < file_size && current_line < window_height; i++) { - addch(buffer[i]); - if (buffer[i] == '\n') current_line++; + int iter_line = 0; + for (int i = 0; i < file_size && iter_line < window_height + current_line; i++) { + if (iter_line >= current_line) addch(buffer[i]); + if (buffer[i] == '\n') iter_line++; } - getch(); + + int input = getch(); clear(); + + switch (input) { + case KEY_UP: + if (current_line > 0) current_line--; + break; + case KEY_DOWN: + if (current_line < number_of_lines) current_line++; + } } endwin(); |