Lines Matching defs:f
299 { "filter", 'f', "FILTER", 0, "Filter expressions (or @filename for file with expressions)." },
398 case 'f':
518 struct filter *f;
522 f = &env.deny_filters[i];
523 if (f->kind != FILTER_NAME)
526 if (f->any_glob && glob_matches(filename, f->any_glob))
528 if (f->any_glob && prog_name && glob_matches(prog_name, f->any_glob))
530 if (f->file_glob && glob_matches(filename, f->file_glob))
532 if (f->prog_glob && prog_name && glob_matches(prog_name, f->prog_glob))
537 f = &env.allow_filters[i];
538 if (f->kind != FILTER_NAME)
542 if (f->any_glob) {
543 if (glob_matches(filename, f->any_glob))
551 if (!prog_name || glob_matches(prog_name, f->any_glob))
554 if (f->file_glob && !glob_matches(filename, f->file_glob))
556 if (f->prog_glob && prog_name && !glob_matches(prog_name, f->prog_glob))
591 struct filter *f;
601 f = &(*filters)[*cnt];
602 memset(f, 0, sizeof(*f));
647 strcasecmp(p, "f") == 0 ||
662 f->kind = FILTER_STAT;
663 f->stat_id = id;
664 f->stat_var = var;
665 f->op = operators[i].op_kind;
666 f->abs = true;
667 f->value = val;
681 f->kind = FILTER_NAME;
684 f->any_glob = strdup(str);
685 if (!f->any_glob)
690 f->file_glob = strndup(str, p - str);
691 if (!f->file_glob)
696 f->prog_glob = strdup(p + 1);
697 if (!f->prog_glob) {
698 free(f->file_glob);
699 f->file_glob = NULL;
712 FILE *f;
715 f = fopen(path, "r");
716 if (!f) {
722 while (fscanf(f, " %1023[^\n]\n", buf) == 1) {
736 fclose(f);
767 FILE *f;
769 f = fopen(path, "r");
770 if (!f) {
777 while (fscanf(f, " %1023[^\n]\n", buf) == 1) {
787 fclose(f);
1365 FILE *f;
1367 f = fopen(file, "w");
1368 if (!f)
1373 err = vfprintf(f, fmt, ap);
1376 fclose(f);
1388 FILE *f;
1390 f = fopen(file, "r");
1391 if (!f)
1395 while (getline(&line, &line_len, f) > 0) {
1400 if (ferror(f)) {
1408 fclose(f);
1806 FILE *f;
1809 f = fopen(filename, "rt");
1810 if (!f) {
1816 while (fscanf(f, " %1023[^\n]\n", buf) == 1) {
1826 fclose(f);
2679 FILE *f;
2683 f = fopen(filename, "r");
2684 if (!f) {
2692 while (fgets(line, sizeof(line), f)) {
2765 if (!feof(f)) {
2771 fclose(f);
2963 static bool is_join_stat_filter_matched(struct filter *f, const struct verif_stats_join *stats)
2969 fetch_join_stat_value(stats, f->stat_id, f->stat_var, &str, &value);
2971 if (f->abs)
2974 switch (f->op) {
2975 case OP_EQ: return value > f->value - eps && value < f->value + eps;
2976 case OP_NEQ: return value < f->value - eps || value > f->value + eps;
2977 case OP_LT: return value < f->value - eps;
2978 case OP_LE: return value <= f->value + eps;
2979 case OP_GT: return value > f->value + eps;
2980 case OP_GE: return value >= f->value - eps;
2983 fprintf(stderr, "BUG: unknown filter op %d!\n", f->op);
2989 struct filter *f;
2993 f = &env.deny_filters[i];
2994 if (f->kind != FILTER_STAT)
2997 if (is_join_stat_filter_matched(f, stats))
3002 f = &env.allow_filters[i];
3003 if (f->kind != FILTER_STAT)
3007 if (is_join_stat_filter_matched(f, stats))
3176 static bool is_stat_filter_matched(struct filter *f, const struct verif_stats *stats)
3178 long value = stats->stats[f->stat_id];
3180 if (f->abs)
3183 switch (f->op) {
3184 case OP_EQ: return value == f->value;
3185 case OP_NEQ: return value != f->value;
3186 case OP_LT: return value < f->value;
3187 case OP_LE: return value <= f->value;
3188 case OP_GT: return value > f->value;
3189 case OP_GE: return value >= f->value;
3192 fprintf(stderr, "BUG: unknown filter op %d!\n", f->op);
3198 struct filter *f;
3202 f = &env.deny_filters[i];
3203 if (f->kind != FILTER_STAT)
3206 if (is_stat_filter_matched(f, stats))
3211 f = &env.allow_filters[i];
3212 if (f->kind != FILTER_STAT)
3216 if (is_stat_filter_matched(f, stats))