aboutsummaryrefslogtreecommitdiff
path: root/src/Pattern/Pattern.h
blob: 52b817f5ca7f4dd11b060c429eaad15877f78095 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef YAPSSG_PATTERN_H
#define YAPSSG_PATTERN_H

#include <stddef.h>

typedef enum { PATTERN_INCLUDE, PATTERN_EXCLUDE } PatternKind;

typedef struct {
  PatternKind kind;
  char *pattern;
  int directory_only;
} Pattern;

typedef struct {
  Pattern *items;
  size_t length;
  size_t capacity;
} PatternList;

int pattern_list_append(PatternList *list, PatternKind kind,
                        const char *pattern);
void pattern_list_clear(PatternList *list);
PatternKind pattern_list_default_kind(const PatternList *list);
PatternKind pattern_list_resolve(const PatternList *list, const char *path,
                                 int is_directory, PatternKind fallback);

#endif