freebsd-ports/www/nginx-devel/files/extra-patch-ngx_http_fancyindex_module.c
Sergey A. Osokin ab1587bed2 Update from 0.7.59 to 0.8.0.
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>
2009-06-03 12:59:53 +00:00

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 {