Cleaned up the line display. Removed the clrtoeol, which seems to be useless (?)
[selector.git] / selector.c
index e635029..ca9d392 100644 (file)
@@ -3,7 +3,7 @@
  *  selector is a simple command line utility for selection of strings
  *  with a dynamic pattern-matching.
  *
- *  Copyright (c) 2009, 2010 Francois Fleuret
+ *  Copyright (c) 2009, 2010, 2011 Francois Fleuret
  *  Written by Francois Fleuret <francois@fleuret.org>
  *
  *  This file is part of selector.
@@ -195,8 +195,7 @@ void usage(FILE *out) {
   fprintf(out, "         make a flash instead of a beep on an edition error\n");
   fprintf(out, " --bash\n");
   fprintf(out, "         setting for bash history search, same as -b -i -d -v -w -l ${HISTSIZE}\n");
-  fprintf(out, " --, --rest-are-files\n");
-  fprintf(out, "         all following arguments are filenames\n");
+  fprintf(out, " --      all following arguments are filenames\n");
   fprintf(out, " -t <title>, --title <title>\n");
   fprintf(out, "         add a title in the modeline\n");
   fprintf(out, " -c <colors>, --colors <colors>\n");
@@ -609,27 +608,19 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
             k++;
           }
 
-          /* We fill the rest of the line with blanks if this is the
-             highlighted line */
+          /* Highlight the highlighted line ... */
 
           if(l == new_focus_line) {
             while(k < console_width) {
               buffer[k++] = ' ';
             }
-          }
-
-          buffer[k++] = '\n';
-          buffer[k++] = '\0';
-
-          clrtoeol();
-
-          /* Highlight the highlighted line ... */
-
-          if(l == new_focus_line) {
             attron(attr_focus_line);
             addnstr(buffer, console_width);
             attroff(attr_focus_line);
           } else {
+            buffer[k++] = '\n';
+            buffer[k++] = '\0';
+            /* clrtoeol(); */
             addnstr(buffer, console_width);
           }
 
@@ -864,7 +855,6 @@ static struct option long_options[] = {
   { "title", 1, 0, 't' },
   { "number-of-lines", 1, 0, 'l' },
   { "colors", 1, 0, 'c' },
-  { "rest-are-files", no_argument, 0, '-' },
   { "bash", no_argument, 0, OPT_BASH_MODE },
   { "help", no_argument, 0, 'h' },
   { 0, 0, 0, 0 }
@@ -877,7 +867,6 @@ int main(int argc, char **argv) {
   int c, k, l, n;
   int cursor_position;
   int error = 0, show_help = 0, done = 0;
-  int rest_are_files = 0;
   int key;
   int current_focus_line, displayed_focus_line;
 
@@ -904,8 +893,7 @@ int main(int argc, char **argv) {
 
   strcpy(output_filename, "");
 
-  while (!rest_are_files &&
-         (c = getopt_long(argc, argv, "o:s:x:vwmqf:ibzdeant:l:c:-h",
+  while ((c = getopt_long(argc, argv, "o:s:x:vwmqf:ibzdeant:l:c:-h",
                           long_options, NULL)) != -1) {
 
     switch(c) {
@@ -984,10 +972,6 @@ int main(int argc, char **argv) {
       color_bg_highlight = colors[3];
       break;
 
-    case '-':
-      rest_are_files = 1;
-      break;
-
     case 'h':
       show_help = 1;
       break;
@@ -1240,6 +1224,10 @@ int main(int argc, char **argv) {
       done = 1;
     }
 
+    else if(key == KEY_RESIZE || key == -1) {
+      /* Do nothing when the tty is resized */
+    }
+
     else {
       /* Unknown key */
       error_feedback();