X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fexternal-formats%2Fmb-util.lisp;h=5569a9fcac02fb3585296547644475f9d431e083;hb=cd1b14acf6f548b28b8a14e554d779f0473122ec;hp=f0ff16d5c06ce109a1806abe01b5ec457d9a85ff;hpb=8ad30632f7a37735a05cdf70d0904fa33616f6b0;p=sbcl.git diff --git a/src/code/external-formats/mb-util.lisp b/src/code/external-formats/mb-util.lisp index f0ff16d..5569a9f 100644 --- a/src/code/external-formats/mb-util.lisp +++ b/src/code/external-formats/mb-util.lisp @@ -254,7 +254,9 @@ ;; replacement character, so we hardcode the preferred ;; replacement here. #\? - (mb-char-len (or (,ucs-to-mb (char-code byte)) -1)) + (block size + (mb-char-len (or (,ucs-to-mb (char-code byte)) + (return-from size 0)))) (let ((mb (,ucs-to-mb bits))) (if (null mb) (external-format-encoding-error stream byte) @@ -265,7 +267,7 @@ (3 (setf (sap-ref-8 sap tail) (ldb (byte 8 16) mb) (sap-ref-8 sap (1+ tail)) (ldb (byte 8 8) mb) (sap-ref-8 sap (+ 2 tail)) (ldb (byte 8 0) mb)))))) - (,mb-len byte) + (1 (,mb-len byte)) (let* ((mb (ecase size (1 byte) (2 (let ((byte2 (sap-ref-8 sap (1+ head))))