X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Foctets.lisp;h=bb6367396cf55672b5390bff5c6b91f044fcb9ae;hb=b910fe1f61d690adf706b78b79314dbe886becd3;hp=d8c0376332ac8f19fdfd8034596bfee5e13de23c;hpb=ed53de3c94faddfdc7447b3d61fef821c250e8d1;p=sbcl.git diff --git a/src/code/octets.lisp b/src/code/octets.lisp index d8c0376..bb63673 100644 --- a/src/code/octets.lisp +++ b/src/code/octets.lisp @@ -183,9 +183,8 @@ one-past-the-end" finally (return elements))) ;; Find the smallest character code such that the corresponding ;; byte is != to the code. - (lowest-non-equivalent-code (position-if-not #'(lambda (pair) - (apply #'= pair)) - pairs)) + (lowest-non-equivalent-code + (caar (sort (copy-seq exceptions) #'< :key #'car))) ;; Sort them for our lookup table. (sorted-pairs (sort (subseq pairs lowest-non-equivalent-code) #'< :key #'car)) @@ -199,9 +198,9 @@ one-past-the-end" ,(make-array 256 :element-type t #+nil 'char-code :initial-contents (loop for byte below 256 collect - (let ((exception (cadr (assoc byte exceptions)))) + (let ((exception (cdr (assoc byte exceptions)))) (if exception - exception + (car exception) byte))))) (code-to-byte-table ,(make-array (length sorted-lookup-table)