Raymond Toy pushed to branch issue-323-cl-string-casing at cmucl / cmucl

Commits:

2 changed files:

Changes:

  • src/code/unicode.lisp
    ... ... @@ -105,7 +105,7 @@
    105 105
           (string-upcase-simple string :start start :end end)
    
    106 106
           (string-upcase-full string :start start :end end)))
    
    107 107
     
    
    108
    -(defun string-downcase-simpl (string &key (start 0) end)
    
    108
    +(defun string-downcase-simple (string &key (start 0) end)
    
    109 109
       _N"Given a string, returns a new string that is a copy of it with all
    
    110 110
       upper case alphabetic characters converted to lowercase."
    
    111 111
       (declare (fixnum start))
    

  • tests/unicode.lisp
    ... ... @@ -192,3 +192,19 @@
    192 192
     			      computed-breaks)))
    
    193 193
     		     (assert-equalp b
    
    194 194
     				    (do-test s)))))))))
    
    195
    +
    
    196
    +(define-test unicode.case-extend
    
    197
    +  "Test that Unicode never produces an upper or lower case character
    
    198
    +  outside the BMP for a character in the BMP"
    
    199
    +  (:tag :unicode)
    
    200
    +  ;; For each character code (that isn't a surrogate), find the
    
    201
    +  ;; corresponding Unicode upper and lowe case character.  Verify that
    
    202
    +  ;; this character is in the BMP.
    
    203
    +  (loop for code from 0 below char-code-limit
    
    204
    +        unless (lisp::surrogatep code)
    
    205
    +          do
    
    206
    +             (assert-true (< (lisp::unicode-upper code) char-code-limit)
    
    207
    +                          code (lisp::unicode-upper code))
    
    208
    +             (assert-true (< (lisp::unicode-lower code) char-code-limit)
    
    209
    +                          code (lisp::unicode-upper code))))
    
    210
    +