X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=selector.cc;h=a1b5b119a35eb36da41b944a695183213f207ab7;hb=c04bae20d28e2a15fff43974aa0804f425c65db2;hp=4950c9087bbc02780501676a8d1467807b791a43;hpb=6bfacc5594cad8647f454cc3aab15068663d7bbb;p=selector.git diff --git a/selector.cc b/selector.cc index 4950c90..a1b5b11 100644 --- a/selector.cc +++ b/selector.cc @@ -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) { @@ -773,11 +777,6 @@ int main(int argc, char **argv) { hash_table = new_hash_table(hash_table_size); } - // if(i == argc && !input_filename[0]) { - // cerr << "You must provide a filename." << endl; - // exit(1); - // } - if(input_filename[0]) { read_file(input_filename, nb_lines_max, &nb_lines, lines, @@ -828,8 +827,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 || @@ -839,8 +841,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; } @@ -901,11 +905,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