X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=selector.cc;h=ebe528e315e5b07200cd61589d2725d32ceaf518;hb=bf323e43f1f63a67f6b8bf9ad4ec90057891320b;hp=e8544059acead0631011f9d5c11c9a20953a60d0;hpb=16409d4fb78c01b916daece8f4beea095723ca04;p=selector.git diff --git a/selector.cc b/selector.cc index e854405..ebe528e 100644 --- a/selector.cc +++ b/selector.cc @@ -1,7 +1,7 @@ /* - * selector is a simple shell command for selection of strings with a - * dynamic pattern-matching. + * selector is a simple command line utility for selection of strings + * with a dynamic pattern-matching. * * Copyright (c) 2009 Francois Fleuret * Written by Francois Fleuret @@ -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) { @@ -502,12 +506,19 @@ void update_screen(int *current_line, int *temporary_line, int motion, addstr(" "); } - if(use_regexp) { - addstr(" [regexp]"); - } + if(use_regexp || case_sensitive) { + addstr("["); + if(use_regexp) { + addstr("regexp"); + } - if(case_sensitive) { - addstr(" [case]"); + if(case_sensitive) { + if(use_regexp) { + addstr(","); + } + addstr("case"); + } + addstr("]"); } move(0, cursor_x); @@ -766,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, @@ -817,9 +823,6 @@ int main(int argc, char **argv) { noecho(); - // Hide the cursor - // curs_set(0); - // So that the arrow keys work keypad(stdscr, TRUE); @@ -831,7 +834,6 @@ int main(int argc, char **argv) { color_fg_highlight < 0 || color_bg_highlight >= COLORS || color_bg_highlight < 0 || color_bg_highlight >= COLORS) { echo(); - // curs_set(1); endwin(); cerr << "Color numbers have to be between 0 and " << COLORS - 1 << "." << endl; exit(1); @@ -898,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 @@ -935,7 +939,6 @@ int main(int argc, char **argv) { } while(key != '\n' && key != KEY_ENTER && key != '\007'); // ^G echo(); - // curs_set(1); endwin(); //////////////////////////////////////////////////////////////////////