char-set:lower-case
char-set:upper-case
char-set:whitespace)
- (export (runtime)
- (char-downcase-full ucd-lc-value)
- (char-foldcase-full ucd-cf-value)
- (char-titlecase-full ucd-tc-value)
- (char-upcase-full ucd-uc-value))
(export (runtime character)
ucd-gc-value
ucd-nt-value
ucd-scf-value
ucd-slc-value
ucd-suc-value)
+ (export (runtime parser)
+ (char-foldcase-full ucd-cf-value))
(export (runtime ucd-glue)
char-set:changes-when-case-folded
ucd-nt-value)
char-changes-when-upper-cased?
char-nfd-quick-check?
ucd-ccc-value
+ ucd-cf-value
ucd-dm-value
ucd-gcb-value
+ ucd-lc-value
+ ucd-tc-value
+ ucd-uc-value
ucd-wb-value))
(define-package (runtime ucd-glue)
;;;; Case
(define (string-downcase string)
- (case-transform char-downcase-full string))
+ (case-transform ucd-lc-value string))
(define (string-foldcase string)
- (case-transform char-foldcase-full string))
+ (case-transform ucd-cf-value string))
(define (string-upcase string)
- (case-transform char-upcase-full string))
+ (case-transform ucd-uc-value string))
(define (case-transform transform string)
(let ((builder (string-builder))
(let ((char (string-ref string index)))
(if (char-cased? char)
(begin
- (builder (char-titlecase-full char))
+ (builder (ucd-tc-value char))
(do ((index (fix:+ index 1) (fix:+ index 1)))
((not (fix:< index end)))
- (builder (char-downcase-full (string-ref string index)))))
+ (builder (ucd-lc-value (string-ref string index)))))
(begin
(builder char)
(loop (fix:+ index 1))))))))