diff options
Diffstat (limited to 'simple-directory-handler.scm')
| -rw-r--r-- | simple-directory-handler.scm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/simple-directory-handler.scm b/simple-directory-handler.scm index 47dbea9..68b93e8 100644 --- a/simple-directory-handler.scm +++ b/simple-directory-handler.scm @@ -41,9 +41,14 @@ (only srfi-14 char-set-complement char-set-delete)) (cond-expand - (chicken-6 (import (scheme base))) ; For make-parameter, which moved from (chicken base) + (chicken-6 (import (scheme base) (chicken memory representation))) ; For make-parameter, which moved from (chicken base) (else)) +(define (string-byte-length s) + (cond-expand + (chicken-6 (number-of-bytes s)) + (else (string-length s)))) + (define (encode-path p) (let ((cs (char-set-delete (char-set-complement char-set:uri-unreserved) #\/))) (uri-encode-string p cs))) @@ -108,8 +113,8 @@ ((exn i/o file) str)))) "" dir))))) - (with-headers `((content-type text/html) - (content-length ,(string-length str))) + (with-headers `((content-type #(text/html ((charset . utf-8)))) + (content-length ,(string-byte-length str))) (lambda () (write-logged-response) (unless (eq? 'HEAD (request-method (current-request))) |
