changeset 2126:5e954395a15e

case insensitive file system location support provided by locale only
author Igor Sysoev <igor@sysoev.ru>
date Tue, 29 Jul 2008 16:55:11 +0000
parents 8e4b9d2acde8
children 05e8de8fcfbb
files src/http/ngx_http_core_module.c src/os/unix/ngx_files.h src/os/win32/ngx_files.h
diffstat 3 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -1204,7 +1204,7 @@ ngx_http_core_find_static_location(ngx_h
 
         n = (len <= (size_t) node->len) ? len : node->len;
 
-        rc = ngx_memcmp(uri, node->name, n);
+        rc = ngx_filename_cmp(uri, node->name, n);
 
         if (rc != 0) {
             node = (rc < 0) ? node->left : node->right;
--- a/src/os/unix/ngx_files.h
+++ b/src/os/unix/ngx_files.h
@@ -19,6 +19,8 @@
 
 #ifdef __CYGWIN__
 
+#define NGX_HAVE_CASELESS_FILESYSTEM  1
+
 #define ngx_open_file(name, mode, create, access)                            \
     open((const char *) name, mode|create|O_BINARY, access)
 
@@ -103,6 +105,16 @@ ngx_int_t ngx_set_file_time(u_char *name
 #define ngx_file_uniq(sb)        (sb)->st_ino
 
 
+#if (NGX_HAVE_CASELESS_FILESYSTEM)
+
+#define ngx_filename_cmp(s1, s2, n)  strncasecmp((char *) s1, (char *) s2, n)
+
+#else
+
+#define ngx_filename_cmp         ngx_memcmp
+
+#endif
+
 
 #define ngx_getcwd(buf, size)    (getcwd(buf, size) != NULL)
 #define ngx_getcwd_n             "getcwd()"
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -123,6 +123,9 @@ ngx_int_t ngx_file_info(u_char *filename
                                           - 116444736000000000) / 10000000)
 
 
+#define ngx_filename_cmp(s1, s2, n)  strnicmp((char *) s1, (char *) s2, n)
+
+
 #define ngx_getcwd(buf, size)       GetCurrentDirectory(size, buf)
 #define ngx_getcwd_n                "GetCurrentDirectory()"
 #define NGX_MAX_PATH                MAX_PATH