Adding string-downcase-ascii util to (chibi string).

This commit is contained in:
Alex Shinn 2013-07-15 07:28:46 +09:00
parent eec5aaa0b4
commit 56b3116e20
3 changed files with 16 additions and 12 deletions

View file

@ -62,7 +62,7 @@
(let ((i (string-scan-colon-or-maybe-equal line)))
(and i
(let ((j (string-skip-white-space line (+ i 1))))
(list (string->symbol (string-downcase (substring line 0 i)))
(list (string->symbol (string-downcase-ascii (substring line 0 i)))
(substring line j (string-length line)))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -72,14 +72,6 @@
(define (ces-convert str . x)
str)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; inlined ascii-only srfi-13 string-downcase
(define (string-downcase s)
(call-with-output-string
(lambda (out)
(string-for-each (lambda (ch) (write-char (char-downcase ch) out)) s))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;> \subsubsection{RFC2822 Headers}
@ -162,13 +154,14 @@
(define (mime-split-name+value s)
(let ((i (string-find s #\=)))
(if i
(cons (string->symbol (string-downcase (string-trim (substring s 0 i))))
(cons (string->symbol
(string-downcase-ascii (string-trim (substring s 0 i))))
(if (= i (string-length s))
""
(if (eqv? #\" (string-ref s (+ i 1)))
(substring s (+ i 2) (- (string-length s) 1))
(substring s (+ i 1) (string-length s)))))
(cons (string->symbol (string-downcase (string-trim s))) ""))))
(cons (string->symbol (string-downcase-ascii (string-trim s))) ""))))
;;> \subsubsubsection{\scheme{(mime-parse-content-type str)}}
;;> Parses \var{str} as a Content-Type style-value returning the list

View file

@ -179,3 +179,13 @@
(define (make-string-searcher needle)
(lambda (haystack) (string-contains haystack needle)))
(define (string-downcase-ascii s)
(call-with-output-string
(lambda (out)
(string-for-each (lambda (ch) (write-char (char-downcase ch) out)) s))))
(define (string-upcase-ascii s)
(call-with-output-string
(lambda (out)
(string-for-each (lambda (ch) (write-char (char-downcase ch) out)) s))))

View file

@ -10,6 +10,7 @@
string-prefix? string-suffix?
string-find string-find-right string-skip string-skip-right
string-fold string-fold-right string-map string-for-each
string-contains make-string-searcher)
string-contains make-string-searcher
string-downcase-ascii string-upcase-ascii)
(import (chibi) (chibi ast) (chibi char-set base))
(include "string.scm"))