ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ngx_http_fancyindex_module



Элементарный патч приаттачен.

> 
> ngx_http_fancyindex_module совсем не хочет собиратся с 0.7.*
> Планирует ли кто-нибудь его дорабатывать или есть ли альтернативы кроме 
> родного автоиндекса?
> 
> Я, к сожалению, в Си совсем не силен, сам поправить не смогу.
> 
> ps: http://wiki.codemongers.com/NginxNgxFancyIndex
> 
diff -ru nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c 
nginx-fancyindex-0.1_beta5-patched/ngx_http_fancyindex_module.c
--- nginx-fancyindex-0.1_beta5/ngx_http_fancyindex_module.c     2007-09-29 
01:02:05.000000000 +0400
+++ nginx-fancyindex-0.1_beta5-patched/ngx_http_fancyindex_module.c     
2008-08-11 17:33:42.810249087 +0400
@@ -290,7 +290,7 @@
     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;
@@ -426,7 +426,7 @@
         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)
+            ?  ngx_utf8_length(entry->name.data, entry->name.len)
             : len;
     }
 
@@ -563,12 +563,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 {


 




Copyright © Lexa Software, 1996-2009.