From: Francois Fleuret Date: Tue, 17 Mar 2009 17:15:47 +0000 (+0100) Subject: Cosmetics. X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=commitdiff_plain;h=2e8b7923775b129d8219a0992b44fe618288f3ef;p=selector.git Cosmetics. --- diff --git a/selector.cc b/selector.cc index 7422fd6..9dafd4d 100644 --- a/selector.cc +++ b/selector.cc @@ -562,6 +562,8 @@ int main(int argc, char **argv) { lines[nb_lines] = new char[strlen(s) + 1]; strcpy(lines[nb_lines], s); } else { + // We do not allocate a new string but use the pointer to the + // first occurence of it lines[nb_lines] = lines[dup]; lines[dup] = 0; } @@ -572,6 +574,8 @@ int main(int argc, char **argv) { delete[] hash_table; + // Now remove the null strings + int n = 0; for(int k = 0; k < nb_lines; k++) { if(lines[k]) { @@ -593,8 +597,19 @@ int main(int argc, char **argv) { int pattern_point; pattern_point = 0; + ////////////////////////////////////////////////////////////////////// + // Here we start to display with curse + initscr(); + noecho(); + + // Hide the cursor + curs_set(0); + + // So that the arrow keys work + keypad(stdscr, TRUE); + if(with_colors) { if(has_colors()) { start_color(); @@ -615,10 +630,6 @@ int main(int argc, char **argv) { } } - noecho(); - curs_set(0); // Hide the cursor - keypad(stdscr, TRUE); // So that the arrow keys work - int key; int current_line = 0, temporary_line = 0; @@ -685,6 +696,9 @@ int main(int argc, char **argv) { curs_set(1); endwin(); + ////////////////////////////////////////////////////////////////////// + // Here we come back to standard display + if((key == KEY_ENTER || key == '\n')) { if(output_to_vt_buffer) {