*nb_switches = add_interval(*nb_switches, switches,
(int) (where - string),
(int) (where - string) + strlen(matcher->patterns[n]));
- #warning CHECK THE INTERVALS
+#warning CHECK THE INTERVALS
{
- int k, i;
- FILE *out = fopen("/tmp/intervals", "w");
- for(k = 0; k < (*nb_switches)/2; k++) {
- i = 0;
- for(; i < switches[2 * k]; i++) fprintf(out, "-");
- for(; i < switches[2 * k + 1]; i++) fprintf(out, "%c", string[i]);
- for(; i < strlen(string); i++) fprintf(out, "-");
- fprintf(out, "\n");
- }
- fclose(out);
+ /* int i; */
+ /* FILE *out = fopen("/tmp/intervals", "w"); */
+ /* for(k = 0; k < (*nb_switches)/2; k++) { */
+ /* i = 0; */
+ /* for(; i < switches[2 * k]; i++) fprintf(out, "-"); */
+ /* for(; i < switches[2 * k + 1]; i++) fprintf(out, "%c", string[i]); */
+ /* for(; i < strlen(string); i++) fprintf(out, "-"); */
+ /* fprintf(out, "\n"); */
+ /* } */
+ /* fclose(out); */
+ int k;
for(k = 0; k < *nb_switches - 1; k++) {
if(switches[k] > switches[k+1]) {
abort();
}
return 1;
} else {
- if(regexec(&matcher->preg, string, 1, &matches, 0) == 0) {
- if(switches) {
+ if(switches) {
+ if(regexec(&matcher->preg, string, 1, &matches, 0) == 0) {
*nb_switches = 2;
switches[0] = matches.rm_so;
switches[1] = matches.rm_eo;
+ return 1;
+ } else {
+ return 0;
}
- return 1;
} else {
- return 0;
+ return regexec(&matcher->preg, string, 0, 0, 0) == 0;
}
}
}
{ "regexp", no_argument, 0, 'e' },
{ "case-sensitive", no_argument, 0, 'a' },
{ "show-long-lines", no_argument, 0, 'j'},
+ { "show-hits", no_argument, 0, 'j'},
{ "upper-case-makes-case-sensitive", no_argument, 0, 'u' },
{ "title", 1, 0, 't' },
{ "number-of-lines", 1, 0, 'l' },