aboutsummaryrefslogtreecommitdiff
path: root/src/Pattern/Pattern.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Pattern/Pattern.h')
-rw-r--r--src/Pattern/Pattern.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Pattern/Pattern.h b/src/Pattern/Pattern.h
new file mode 100644
index 0000000..52b817f
--- /dev/null
+++ b/src/Pattern/Pattern.h
@@ -0,0 +1,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 \ No newline at end of file