e7337bc2ac9f37d7614066a6c6d4400d71efa037
[libfirm] / win32 / regex.h
1 #ifndef REGEX_H
2 #define REGEX_H
3
4 #include <stddef.h>
5 #include <string.h>
6 #include <stdlib.h>
7
8 /* naive and wrong regex stubs */
9 typedef struct regex_t {
10         char *pattern;
11 } regex_t;
12
13 #define REG_EXTENDED 1
14 #define REG_ICASE    2
15 #define REG_NOSUB    4
16 #define REG_NEWLINE  8
17
18 int regcomp(regex_t *regex, const char *pattern, int cflags)
19 {
20         size_t len = strlen(pattern)+1;
21         (void) cflags;
22         regex->pattern = malloc(len);
23         memcpy(regex->pattern, pattern, len);
24 }
25
26 int regexec(const regex_t *regex, const char *haystack, int flags)
27 {
28         size_t i = 0;
29         const char *pattern = regex->pattern;
30         for (i = 0; pattern[i] != '\0'; ++i) {
31                 if (pattern[i] != haystack[i])
32                         return 0;
33         }
34         return 1;
35 }
36
37 void regfree(regex_t *regex)
38 {
39         free(regex->pattern);
40 }
41
42 #endif