int use_regexp = 0;
int case_sensitive = 0;
char *title = 0;
+int error_flash = 0;
#define COLOR_MODELINE 1
#define COLOR_HIGHLIGHTED_LINE 2
return result;
}
+void error_feedback() {
+ if(error_flash) {
+ flash();
+ } else {
+ beep();
+ }
+}
+
//////////////////////////////////////////////////////////////////////
// A quick and dirty hash table
buffer[c] = buffer[c+1];
c++;
}
- }
+ } else error_feedback();
}
void backspace_char(char *buffer, int *position) {
}
(*position)--;
- }
+ } else error_feedback();
}
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) {
}
if(use_regexp || case_sensitive) {
- addstr("[");
+ addstr(" [");
if(use_regexp) {
addstr("regexp");
}
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);
}
else if(strcmp(argv[i], "-a") == 0) {
- case_sensitive = 1;
- i++;
}
else if(strcmp(argv[i], "-t") == 0) {
<< " -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
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,
noecho();
- // Hide the cursor
- // curs_set(0);
-
// So that the arrow keys work
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 ||
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);
}
- 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;
}
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
} while(key != '\n' && key != KEY_ENTER && key != '\007'); // ^G
echo();
- // curs_set(1);
endwin();
//////////////////////////////////////////////////////////////////////