char *splitted_patterns, **patterns;
} matcher_t;
-int match(char *string, matcher_t *matcher) {
+int match(matcher_t *matcher, char *string) {
int n;
if(matcher->nb_patterns >= 0) {
if(matcher->case_sensitive) {
}
}
-void initialize_matcher(int use_regexp, int case_sensitive,
- matcher_t *matcher, const char *pattern) {
+void initialize_matcher(matcher_t *matcher,
+ int use_regexp, int case_sensitive,
+ const char *pattern) {
const char *s;
char *t, *last_pattern_start;
int n;
int previous_visible(int current_line, char **lines, matcher_t *matcher) {
int line = current_line - 1;
- while(line >= 0 && !match(lines[line], matcher)) line--;
+ while(line >= 0 && !match(matcher, lines[line])) line--;
return line;
}
int next_visible(int current_line, int nb_lines, char **lines,
matcher_t *matcher) {
int line = current_line + 1;
- while(line < nb_lines && !match(lines[line], matcher)) line++;
+ while(line < nb_lines && !match(matcher, lines[line])) line++;
if(line < nb_lines)
return line;
int nb_printed_lines = 0;
int cursor_x;
- initialize_matcher(use_regexp, case_sensitive, &matcher, pattern);
+ initialize_matcher(&matcher, use_regexp, case_sensitive, pattern);
console_width = getmaxx(stdscr);
console_height = getmaxy(stdscr);
else if(nb_lines > 0) {
int new_focus_line;
- if(match(lines[*current_focus_line], &matcher)) {
+ if(match(&matcher, lines[*current_focus_line])) {
new_focus_line = *current_focus_line;
} else {
new_focus_line = next_visible(*current_focus_line, nb_lines, lines,
if(first_line > 0) {
first_line--;
- while(first_line > 0 && !match(lines[first_line], &matcher)) {
+ while(first_line > 0 && !match(&matcher, lines[first_line])) {
first_line--;
}
- if(match(lines[first_line], &matcher)) {
+ if(match(&matcher, lines[first_line])) {
nb_match++;
}
}
if(nb_match < console_height - 1 && last_line < nb_lines - 1) {
last_line++;
- while(last_line < nb_lines - 1 && !match(lines[last_line], &matcher)) {
+ while(last_line < nb_lines - 1 && !match(&matcher, lines[last_line])) {
last_line++;
}
- if(match(lines[last_line], &matcher)) {
+ if(match(&matcher, lines[last_line])) {
nb_match++;
}
}
/* Now we display them */
for(l = first_line; l <= last_line; l++) {
- if(match(lines[l], &matcher)) {
+ if(match(&matcher, lines[l])) {
int k = 0;
while(lines[l][k] && k < BUFFER_SIZE - 2 && k < console_width - 2) {