A matcher matches either with a collection of substrings, or with a
regexp */
-typedef struct {
+struct matcher {
regex_t preg;
int regexp_error;
int nb_patterns;
int case_sensitive;
char *splitted_patterns, **patterns;
-} matcher_t;
+};
-int match(matcher_t *matcher, char *string) {
+int match(struct matcher *matcher, char *string) {
int n;
if(matcher->nb_patterns >= 0) {
if(matcher->case_sensitive) {
}
}
-void free_matcher(matcher_t *matcher) {
+void free_matcher(struct matcher *matcher) {
if(matcher->nb_patterns < 0) {
if(!matcher->regexp_error) regfree(&matcher->preg);
} else {
}
}
-void initialize_matcher(matcher_t *matcher,
+void initialize_matcher(struct matcher *matcher,
int use_regexp, int case_sensitive,
const char *pattern) {
const char *s;
/*********************************************************************/
-int previous_visible(int current_line, char **lines, matcher_t *matcher) {
+int previous_visible(int current_line, char **lines, struct matcher *matcher) {
int line = current_line - 1;
while(line >= 0 && !match(matcher, lines[line])) line--;
return line;
}
int next_visible(int current_line, int nb_lines, char **lines,
- matcher_t *matcher) {
+ struct matcher *matcher) {
int line = current_line + 1;
while(line < nb_lines && !match(matcher, lines[line])) line++;
char *pattern) {
char buffer[BUFFER_SIZE];
- matcher_t matcher;
+ struct matcher matcher;
int k, l, m;
int console_width, console_height;
int nb_printed_lines = 0;