'extern' in function declarations is redundant
Consistently use _WIN32 instead of __WIN32__ _WIN32 works with all compilers, while __WIN32__ is MinGW-specific. This project used __WIN32__ in files that only support MinGW, and _WIN32 in other files such as the library header and example programs. One place even used WIN32. Avoid this unnecessary complication by just always using _WIN32.
Make absolute ExclusionException patterns include ancestor directories
Use dynamically-sized path buffer when scanning files This is needed to guarantee that no buffer overflow can occur when scanning a deep directory structure. The new way also avoids using PATH_MAX, which fixes a build error on systems that don't define it.
Add randomized testing program Introduce the ability to configure the library with test-specific code, add in-library code for directory tree generation and comparison, and add the "wlfuzz" randomized test runner which uses the new functionality.
Rename string_set to string_list
Various renamings from "capture" to "scan"