aboutsummaryrefslogtreecommitdiff
path: root/butl/filesystem.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-03-09 18:20:38 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-03-09 18:20:38 +0300
commit870da718e38555352343a46ce02fb46d5eb3a365 (patch)
tree63de16fdbaa5ea8d541e02cda7486f857e604fbc /butl/filesystem.cxx
parent80d717aa12fbaa230a194c1902ea28e0a1b86586 (diff)
Fix path_match() character case sensitivity on Windows
Diffstat (limited to 'butl/filesystem.cxx')
-rw-r--r--butl/filesystem.cxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/butl/filesystem.cxx b/butl/filesystem.cxx
index e792bef..5135281 100644
--- a/butl/filesystem.cxx
+++ b/butl/filesystem.cxx
@@ -21,6 +21,8 @@
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
# endif
+
+# include <butl/utility> // lcase()
#endif
#include <errno.h> // errno, E*
@@ -797,7 +799,11 @@ namespace butl
char pc;
for (; rpi != rpe && (pc = *rpi) != '*' && rni != rne; ++rpi, ++rni)
{
+#ifndef _WIN32
if (*rni != pc && pc != '?')
+#else
+ if (lcase (*rni) != lcase (pc) && pc != '?')
+#endif
return false;
}
@@ -832,7 +838,11 @@ namespace butl
//
for (; (pc = *pi) != '*' && ni != ne; ++pi, ++ni)
{
+#ifndef _WIN32
if (*ni != pc && pc != '?')
+#else
+ if (lcase (*ni) != lcase (pc) && pc != '?')
+#endif
return false;
}