ab1587bed2
Remove IGNORE cause this is new development version (tree). Update patch for fancyindex module. <ChangeLog> *) Feature: the "keepalive_requests" directive. *) Feature: the "limit_rate_after" directive. Thanks to Ivan Debnar. *) Bugfix: XLST filter did not work in subrequests. *) Bugfix: in relative paths handling in nginx/Windows. *) Bugfix: in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows. *) Bugfix: in memory allocation error handling. Thanks to Maxim Dounin and Kirill A. Korinskiy. </ChangeLog>
61 lines
2 KiB
C
61 lines
2 KiB
C
--- ../nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c.orig 2007-09-29 01:02:05.000000000 +0400
|
|
+++ ../nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c 2009-06-03 16:41:36.000000000 +0400
|
|
@@ -290,12 +290,12 @@
|
|
ngx_http_fancyindex_entry_t *entry;
|
|
|
|
off_t length;
|
|
- size_t len, root, copy, allocated;
|
|
+ size_t len, root, utf_len, allocated;
|
|
u_char *filename, *last, scale;
|
|
ngx_tm_t tm;
|
|
ngx_array_t entries;
|
|
ngx_time_t *tp;
|
|
- ngx_uint_t i;
|
|
+ ngx_uint_t i, utf8;
|
|
ngx_int_t size;
|
|
ngx_str_t path;
|
|
ngx_str_t readme_path;
|
|
@@ -355,6 +355,15 @@
|
|
filename = path.data;
|
|
filename[path.len] = '/';
|
|
|
|
+ if (r->headers_out.charset.len == 5
|
|
+ && ngx_strncasecmp(r->headers_out.charset.data, (u_char *) "utf-8", 5)
|
|
+ == 0)
|
|
+ {
|
|
+ utf8 = 1;
|
|
+ } else {
|
|
+ utf8 = 0;
|
|
+ }
|
|
+
|
|
/* Read directory entries and their associated information. */
|
|
for (;;) {
|
|
ngx_set_errno(0);
|
|
@@ -425,8 +434,8 @@
|
|
entry->dir = ngx_de_is_dir(&dir);
|
|
entry->mtime = ngx_de_mtime(&dir);
|
|
entry->size = ngx_de_size(&dir);
|
|
- entry->utf_len = (r->utf8)
|
|
- ? ngx_utf_length(entry->name.data, entry->name.len)
|
|
+ entry->utf_len = utf8
|
|
+ ? ngx_utf8_length(entry->name.data, entry->name.len)
|
|
: len;
|
|
}
|
|
|
|
@@ -563,12 +572,13 @@
|
|
|
|
if (entry[i].name.len - len) {
|
|
if (len > NGX_HTTP_FANCYINDEX_NAME_LEN) {
|
|
- copy = NGX_HTTP_FANCYINDEX_NAME_LEN - 3 + 1;
|
|
+ utf_len = NGX_HTTP_FANCYINDEX_NAME_LEN - 3 + 1;
|
|
} else {
|
|
- copy = NGX_HTTP_FANCYINDEX_NAME_LEN + 1;
|
|
+ utf_len = NGX_HTTP_FANCYINDEX_NAME_LEN + 1;
|
|
}
|
|
|
|
- b->last = ngx_utf_cpystrn(b->last, entry[i].name.data, copy);
|
|
+ b->last = ngx_utf8_cpystrn(b->last, entry[i].name.data,
|
|
+ utf_len, entry[i].name.len + 1);
|
|
last = b->last;
|
|
|
|
} else {
|