Commit 2aa54c53 authored by Max Kellermann's avatar Max Kellermann

fs/Glob: use PathMatchSpec() on Windows

parent bc854250
......@@ -578,6 +578,11 @@ libfs_a_SOURCES += \
FS_LIBS += $(ZLIB_LIBS)
endif
if HAVE_WINDOWS
# for PathMatchSpec()
FS_LIBS += -lshlwapi
endif
# Storage library
SMBCLIENT_SOURCES = \
......
......@@ -26,6 +26,10 @@
#define HAVE_CLASS_GLOB
#include <string>
#include <fnmatch.h>
#elif defined(WIN32)
#define HAVE_CLASS_GLOB
#include <string>
#include <shlwapi.h>
#elif defined(HAVE_GLIB)
#define HAVE_CLASS_GLOB
#include <glib.h>
......@@ -39,14 +43,14 @@
* (asterisk and question mark).
*/
class Glob {
#ifdef HAVE_FNMATCH
#if defined(HAVE_FNMATCH) || defined(WIN32)
std::string pattern;
#else
GPatternSpec *pattern;
#endif
public:
#ifdef HAVE_FNMATCH
#if defined(HAVE_FNMATCH) || defined(WIN32)
explicit Glob(const char *_pattern)
:pattern(_pattern) {}
......@@ -70,6 +74,8 @@ public:
bool Check(const char *name_fs) const {
#ifdef HAVE_FNMATCH
return fnmatch(pattern.c_str(), name_fs, 0) == 0;
#elif defined(WIN32)
return PathMatchSpecA(name_fs, pattern.c_str());
#else
return g_pattern_match_string(pattern, name_fs);
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment