X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-char.lisp;h=40dc89676acf16a357e0a346554764f6a8a5661f;hb=9b2b4bc76fc9026598e0cd1a9787a69392166f57;hp=aaecb0e66c76771410bd296e0b0f25c7c7cee1c4;hpb=ba1d157b8797b9c0e66b457221d4c2fbbd0261fb;p=sbcl.git diff --git a/src/code/target-char.lisp b/src/code/target-char.lisp index aaecb0e..40dc896 100644 --- a/src/code/target-char.lisp +++ b/src/code/target-char.lisp @@ -162,7 +162,7 @@ ;;;; UCD accessor functions -;;; The first (* 8 206) => 1648 entries in **CHARACTER-DATABASE** +;;; The first (* 8 215) => 1720 entries in **CHARACTER-DATABASE** ;;; contain entries for the distinct character attributes: ;;; specifically, indexes into the GC kinds, Bidi kinds, CCC kinds, ;;; the decimal digit property, the digit property and the @@ -189,12 +189,12 @@ ;;; ;;; To look up information about a character, take the high 13 bits of ;;; its code point, and index the character database with that and a -;;; base of 1648 (going past the miscellaneous information[*], so +;;; base of 1720 (going past the miscellaneous information[*], so ;;; treating (a) as the start of the array). This, labelled A, gives ;;; us another index into the detailed pages[-], which we can use to ;;; look up the details for the character in question: we add the low ;;; 8 bits of the character, shifted twice (because we have four-byte -;;; table entries) to 1024 times the `page' index, with a base of 6000 +;;; table entries) to 1024 times the `page' index, with a base of 6072 ;;; to skip over everything else. This gets us to point B. If we're ;;; after a transformed code point (i.e. an upcase or downcase ;;; operation), we can simply read it off now, beginning with an @@ -208,8 +208,8 @@ (defun ucd-index (char) (let* ((cp (char-code char)) (cp-high (ash cp -8)) - (page (aref **character-database** (+ 1648 cp-high)))) - (+ 6000 (ash page 10) (ash (ldb (byte 8 0) cp) 2)))) + (page (aref **character-database** (+ 1720 cp-high)))) + (+ 6072 (ash page 10) (ash (ldb (byte 8 0) cp) 2)))) (declaim (ftype (sfunction (t) (unsigned-byte 8)) ucd-value-0)) (defun ucd-value-0 (char)