From: Francois Fleuret Date: Thu, 12 Mar 2009 07:30:32 +0000 (+0100) Subject: Automatic commit X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=selector.git;a=commitdiff_plain;h=38bc30a889d71f9520aebd772240a06e93f626a5 Automatic commit --- diff --git a/selector.cc b/selector.cc index 5b62ca8..7d12606 100644 --- a/selector.cc +++ b/selector.cc @@ -76,7 +76,7 @@ int next_visible(int current_line, int nb_lines, char **lines, int nb_patterns, return -1; } -void update_screen(int *current_line, int motion, +void update_screen(int *current_line, int *temporary_line, int motion, int nb_lines, char **lines, char *pattern_list, int noblink) { @@ -113,7 +113,7 @@ void update_screen(int *current_line, int motion, int console_width = getmaxx(stdscr); int console_height = getmaxy(stdscr); - int nb_printed_lines = 1, last_printer_line = -1; + int nb_printed_lines = 1; // First, we find a visible line. In priority: The current, or the // first visible after it, or the first visible before it. @@ -218,11 +218,11 @@ void update_screen(int *current_line, int motion, addnstr(buffer, console_width); } - last_printer_line = l; nb_printed_lines++; } } + *temporary_line = new_line; if(motion != 0) { *current_line = new_line; } @@ -348,9 +348,9 @@ int main(int argc, char **argv) { int key; - int line = 0; + int current_line = 0, temporary_line = 0; - update_screen(&line, 0, nb_lines, lines, patterns, noblink); + update_screen(¤t_line, &temporary_line, 0, nb_lines, lines, patterns, noblink); do { @@ -378,7 +378,8 @@ int main(int argc, char **argv) { motion = 1; } - update_screen(&line, motion, nb_lines, lines, patterns, noblink); + update_screen(¤t_line, &temporary_line, motion, + nb_lines, lines, patterns, noblink); } while(key != '\n' && key != KEY_ENTER && key != ''); echo(); @@ -390,8 +391,8 @@ int main(int argc, char **argv) { cerr << "Can not open " << output_filename << " for writing." << endl; exit(1); } else { - if((key == KEY_ENTER || key == '\n') && line >= 0 && line < nb_lines) { - out << lines[line] << endl; + if((key == KEY_ENTER || key == '\n') && temporary_line >= 0 && temporary_line < nb_lines) { + out << lines[temporary_line] << endl; } else { out << endl; }