Added a visual feedback for impossible cursor motions.
authorFrancois Fleuret <francois@fleuret.org>
Thu, 30 Apr 2009 05:55:58 +0000 (07:55 +0200)
committerFrancois Fleuret <francois@fleuret.org>
Thu, 30 Apr 2009 05:55:58 +0000 (07:55 +0200)
selector.cc

index 0d1e93e..ebe528e 100644 (file)
@@ -107,6 +107,10 @@ int string_to_positive_integer(char *string) {
   return result;
 }
 
+void error_feedback() {
+  flash();
+}
+
 //////////////////////////////////////////////////////////////////////
 // A quick and dirty hash table
 
@@ -243,7 +247,7 @@ void delete_char(char *buffer, int *position) {
       buffer[c] = buffer[c+1];
       c++;
     }
-  }
+  } else error_feedback();
 }
 
 void backspace_char(char *buffer, int *position) {
@@ -259,7 +263,7 @@ void backspace_char(char *buffer, int *position) {
     }
 
     (*position)--;
-  }
+  } else error_feedback();
 }
 
 void insert_char(char *buffer, int *position, char character) {
@@ -275,7 +279,7 @@ void insert_char(char *buffer, int *position, char character) {
     c++;
     buffer[c] = '\0';
     buffer[(*position)++] = character;
-  }
+  } else error_feedback();
 }
 
 void kill_before_cursor(char *buffer, int *position) {
@@ -896,11 +900,13 @@ int main(int argc, char **argv) {
     else if(key == KEY_LEFT ||
             key == '\002') { // ^B
       if(cursor_position > 0) cursor_position--;
+      else error_feedback();
     }
 
     else if(key == KEY_RIGHT ||
             key == '\006') { // ^F
       if(pattern[cursor_position]) cursor_position++;
+      else error_feedback();
     }
 
     else if(key == '\001') { // ^A