compare long file names in case-insensitive mode,
the bug had been introduced in r3418
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index 518da5a..a6350ce 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -48,7 +48,7 @@
goto failed;
}
- if (n != len - 1 || ngx_memcmp(u, lu, n) != 0) {
+ if (n != len - 1 || _wcsicmp(u, lu) != 0) {
ngx_set_errno(NGX_ENOENT);
goto failed;
}
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index d35b448..0dcba98 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -36,6 +36,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <locale.h>
#ifdef __WATCOMC__
#define _TIME_T_DEFINED
diff --git a/src/os/win32/ngx_win32_init.c b/src/os/win32/ngx_win32_init.c
index 0924c3c..3b22358 100644
--- a/src/os/win32/ngx_win32_init.c
+++ b/src/os/win32/ngx_win32_init.c
@@ -114,6 +114,9 @@
for (n = ngx_pagesize; n >>= 1; ngx_pagesize_shift++) { /* void */ }
+ /* delete default "C" locale for _wcsicmp() */
+ setlocale(LC_ALL, "");
+
/* init Winsock */