Added an option -q to choose between beeps and flashes on edition errors.
[selector.git] / selector.cc
index ebe528e..6360698 100644 (file)
@@ -55,6 +55,7 @@ int remove_duplicates = 0;
 int use_regexp = 0;
 int case_sensitive = 0;
 char *title = 0;
+int error_flash = 0;
 
 #define COLOR_MODELINE 1
 #define COLOR_HIGHLIGHTED_LINE 2
@@ -108,7 +109,11 @@ int string_to_positive_integer(char *string) {
 }
 
 void error_feedback() {
-  flash();
+  if(error_flash) {
+    flash();
+  } else {
+    beep();
+  }
 }
 
 //////////////////////////////////////////////////////////////////////
@@ -507,7 +512,7 @@ void update_screen(int *current_line, int *temporary_line, int motion,
   }
 
   if(use_regexp || case_sensitive) {
-    addstr("[");
+    addstr(" [");
     if(use_regexp) {
       addstr("regexp");
     }
@@ -659,6 +664,11 @@ int main(int argc, char **argv) {
       i++;
     }
 
+    else if(strcmp(argv[i], "-q") == 0) {
+      error_flash = 1;
+      i++;
+    }
+
     else if(strcmp(argv[i], "-f") == 0) {
       check_opt(argc, argv, i, 1, "<input filename>");
       strncpy(input_filename, argv[i+1], buffer_size);
@@ -691,8 +701,6 @@ int main(int argc, char **argv) {
     }
 
     else if(strcmp(argv[i], "-a") == 0) {
-      case_sensitive = 1;
-      i++;
     }
 
     else if(strcmp(argv[i], "-t") == 0) {
@@ -751,6 +759,7 @@ int main(int argc, char **argv) {
          << " -e      start in regexp mode" << endl
          << " -a      case sensitive" << endl
          << " -m      monochrome mode" << endl
+         << " -q      make a flash instead of a beep on an edition error" << endl
          << " --      rest of the arguments are filenames" << endl
          << " -t <title>" << endl
          << "         add a title in the modeline" << endl
@@ -827,8 +836,11 @@ int main(int argc, char **argv) {
   keypad(stdscr, TRUE);
 
   if(with_colors) {
+
     if(has_colors()) {
+
       start_color();
+
       if(color_fg_modeline < 0  || color_fg_modeline >= COLORS ||
          color_bg_modeline < 0  || color_bg_modeline >= COLORS ||
          color_fg_highlight < 0 || color_bg_highlight >= COLORS ||
@@ -838,8 +850,10 @@ int main(int argc, char **argv) {
         cerr << "Color numbers have to be between 0 and " << COLORS - 1 << "." << endl;
         exit(1);
       }
-      init_pair(COLOR_MODELINE , color_fg_modeline, color_bg_modeline);
+
+      init_pair(COLOR_MODELINE, color_fg_modeline, color_bg_modeline);
       init_pair(COLOR_HIGHLIGHTED_LINE, color_fg_highlight, color_bg_highlight);
+
     } else {
       with_colors = 0;
     }