diff --git a/src/fd.c b/src/fd.c index f77fc4f..9108f52 100644 --- a/src/fd.c +++ b/src/fd.c @@ -30,8 +30,9 @@ #include "libzzuf.h" #include "fd.h" -regex_t * re_include = NULL; -regex_t * re_exclude = NULL; +/* Regex stuff */ +static regex_t * re_include = NULL; +static regex_t * re_exclude = NULL; /* File descriptor stuff */ static struct files @@ -46,6 +47,28 @@ static struct files static int *fds; static int maxfd, nfiles; +void _zz_include(char const *regex) +{ + re_include = malloc(sizeof(*re_include)); + + if(regcomp(re_include, regex, REG_EXTENDED) != 0) + { + free(re_include); + re_include = NULL; + } +} + +void _zz_exclude(char const *regex) +{ + re_exclude = malloc(sizeof(*re_exclude)); + + if(regcomp(re_exclude, regex, REG_EXTENDED) != 0) + { + free(re_exclude); + re_exclude = NULL; + } +} + void _zz_fd_init(void) { files = NULL; diff --git a/src/fd.h b/src/fd.h index 9cf5c9c..a079ee9 100644 --- a/src/fd.h +++ b/src/fd.h @@ -16,12 +16,11 @@ * fd.h: file descriptor functions */ +extern void _zz_include(char const *); +extern void _zz_exclude(char const *); extern void _zz_fd_init(void); extern void _zz_fd_fini(void); -extern regex_t * re_include; -extern regex_t * re_exclude; - extern int _zz_mustwatch(char const *); extern int _zz_iswatched(int); extern void _zz_register(int); diff --git a/src/fuzz.c b/src/fuzz.c index 7cd01cf..6b305fb 100644 --- a/src/fuzz.c +++ b/src/fuzz.c @@ -25,7 +25,6 @@ #endif #include #include -#include #include "libzzuf.h" #include "debug.h" diff --git a/src/libzzuf.c b/src/libzzuf.c index f839953..3c9d370 100644 --- a/src/libzzuf.c +++ b/src/libzzuf.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include @@ -74,17 +73,11 @@ void _zz_init(void) tmp = getenv("ZZUF_INCLUDE"); if(tmp && *tmp) - { - re_include = malloc(sizeof(*re_include)); - regcomp(re_include, tmp, REG_EXTENDED); - } + _zz_include(tmp); tmp = getenv("ZZUF_EXCLUDE"); if(tmp && *tmp) - { - re_exclude = malloc(sizeof(*re_exclude)); - regcomp(re_exclude, tmp, REG_EXTENDED); - } + _zz_exclude(tmp); tmp = getenv("ZZUF_SIGNAL"); if(tmp && *tmp == '1') diff --git a/src/load-fd.c b/src/load-fd.c index 47837de..0deabd9 100644 --- a/src/load-fd.c +++ b/src/load-fd.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include diff --git a/src/load-signal.c b/src/load-signal.c index bed2037..1eeb3b6 100644 --- a/src/load-signal.c +++ b/src/load-signal.c @@ -28,7 +28,6 @@ #endif #include #include -#include #include #include diff --git a/src/load-stream.c b/src/load-stream.c index 5fe2785..3fca4a8 100644 --- a/src/load-stream.c +++ b/src/load-stream.c @@ -27,7 +27,6 @@ #endif #include #include -#include #include #include