projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix test for Blocked condition in canonical normalization
[sbcl.git]
/
src
/
code
/
target-char.lisp
diff --git
a/src/code/target-char.lisp
b/src/code/target-char.lisp
index
1a932cd
..
ef51c23
100644
(file)
--- a/
src/code/target-char.lisp
+++ b/
src/code/target-char.lisp
@@
-773,7
+773,9
@@
character exists."
(tagbody
again
(when (and (> (- i previous-starter-index) 2)
(tagbody
again
(when (and (> (- i previous-starter-index) 2)
- (= (ucd-ccc (lref result i)) (ucd-ccc (lref result (1- i)))))
+ ;; test for Blocked (Unicode 3.11 para. D115)
+ (>= (ucd-ccc (lref result (1- i)))
+ (ucd-ccc (lref result i))))
(when (= (ucd-ccc (lref result i)) 0)
(setf previous-starter-index i))
(incf i)
(when (= (ucd-ccc (lref result i)) 0)
(setf previous-starter-index i))
(incf i)
@@
-799,11
+801,12
@@
character exists."
(defun normalize-string (string &optional (form :nfd))
(declare (type (member :nfd :nfkd :nfc :nfkc) form))
(etypecase string
(defun normalize-string (string &optional (form :nfd))
(declare (type (member :nfd :nfkd :nfc :nfkc) form))
(etypecase string
- (simple-base-string string)
- ((simple-array character (*))
+ #!+sb-unicode
+ (base-string string)
+ ((or (array character (*)) #!-sb-unicode base-string)
(ecase form
((:nfd)
(sort-combiners (decompose-string string)))
((:nfkd)
(sort-combiners (decompose-string string :compatibility)))))
(ecase form
((:nfd)
(sort-combiners (decompose-string string)))
((:nfkd)
(sort-combiners (decompose-string string :compatibility)))))
- ((simple-array nil (*)) string)))
+ ((array nil (*)) string)))