diff --git a/code/extfmts.lisp b/code/extfmts.lisp index ca35ac53d08c3bd42bb05d61b85707fee924024e..d140d0529c4a30178597d5bd3f5759e23ac3f5b5 100644 --- a/code/extfmts.lisp +++ b/code/extfmts.lisp @@ -5,7 +5,7 @@ ;;; domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/extfmts.lisp,v 1.35.4.1 2010/08/04 12:12:09 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/extfmts.lisp,v 1.35.4.2 2010/08/14 23:51:08 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -649,9 +649,12 @@ character and illegal outputs are replaced by a question mark.") (code-to-octets (code state output error) `(,output (if (> ,code 255) (if ,error - (funcall ,error - (intl:gettext "Cannot output codepoint #x~X to ISO8859-1 stream") - ,code 1) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error + (intl:gettext "Cannot output codepoint #x~X to ISO8859-1 stream") + ,code 1)) #x3F) ,code)))) diff --git a/pcl/simple-streams/external-formats/ascii.lisp b/pcl/simple-streams/external-formats/ascii.lisp index b3c2cbe37c8dbde4248286ba51874c81a48abbd1..ee8474e5ef3f26943cb8ddc5ad684d9fc3c2e39d 100644 --- a/pcl/simple-streams/external-formats/ascii.lisp +++ b/pcl/simple-streams/external-formats/ascii.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Raymond Toy and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/ascii.lisp,v 1.6 2010/07/12 14:42:11 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/ascii.lisp,v 1.6.4.1 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -19,13 +19,19 @@ replaced with a question mark.") (values (if (< ,c #x80) ,c (if ,error - (funcall ,error "Invalid octet #x~4,'0X for ASCII" ,c 1) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Invalid octet #x~4,'0X for ASCII" ,c 1)) +replacement-character-code+)) 1))) (code-to-octets (code state output error) `(,output (if (> ,code #x7F) (if ,error - (funcall ,error "Cannot output codepoint #x~X to ASCII stream" ,code) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Cannot output codepoint #x~X to ASCII stream" ,code)) #x3F) ,code)))) diff --git a/pcl/simple-streams/external-formats/mac-roman.lisp b/pcl/simple-streams/external-formats/mac-roman.lisp index 9e3bc1aa1c4e8e0d370ce11124d82637f57838c6..cb32e57661c477e7b5d622c7ca45261e9fb0f83b 100644 --- a/pcl/simple-streams/external-formats/mac-roman.lisp +++ b/pcl/simple-streams/external-formats/mac-roman.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Paul Foley and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/mac-roman.lisp,v 1.8 2010/07/12 14:42:11 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/mac-roman.lisp,v 1.8.4.1 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -44,6 +44,9 @@ character and illegal outputs are replaced by a question mark.") (if ,present (+ (the (unsigned-byte 7) ,present) 128) (if ,error - (funcall ,error "Cannot output codepoint #x~X to MAC-ROMAN stream" - ,code) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Cannot output codepoint #x~X to MAC-ROMAN stream" + ,code)) #x3F))))))) diff --git a/pcl/simple-streams/external-formats/utf-16-be.lisp b/pcl/simple-streams/external-formats/utf-16-be.lisp index 59e8064a4720a57520e8059cb00fdb01c1c33297..0fbb5a5d42d820d0be113c6e6ffbb8096d3ff6d9 100644 --- a/pcl/simple-streams/external-formats/utf-16-be.lisp +++ b/pcl/simple-streams/external-formats/utf-16-be.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Paul Foley and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-16-be.lisp,v 1.10.4.1 2010/08/13 01:52:53 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-16-be.lisp,v 1.10.4.2 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -36,7 +36,10 @@ Unicode replacement character.") ,state nil) (setf ,code (if ,error - (funcall ,error "Bare low surrogate #x~4,'0X" ,code 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Bare low surrogate #x~4,'0X" ,code 2)) +replacement-character-code+)))) ((lisp::surrogatep ,code :high) ;; Remember the high surrogate in case we bail out @@ -55,13 +58,20 @@ Unicode replacement character.") (setq ,code (+ (ash (- ,code #xD800) 10) ,next #x2400)) (setf ,code (if ,error - (funcall ,error "High surrogate followed by #x~4,'0X instead of low surrogate" ,next 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "High surrogate followed by #x~4,'0X ~ + instead of low surrogate" ,next 2)) +replacement-character-code+))))) ((= ,code #xFFFE) ;; Replace with REPLACEMENT CHARACTER. (setf ,code (if ,error - (funcall ,error "BOM is not valid within a UTF-16 stream" ,code 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "BOM is not valid within a UTF-16 stream" ,code 2)) +replacement-character-code+))) (t (setf ,state nil))) (values ,code 2))) @@ -87,9 +97,12 @@ Unicode replacement character.") (when ,c (,output (if (lisp::surrogatep ,c) (if ,error - (funcall ,error - "Flushing bare surrogate #x~4,'0X is illegal for UTF-16" - (char-code ,c)) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error + "Flushing bare surrogate #x~4,'0X is illegal for UTF-16" + (char-code ,c))) +replacement-character-code+) ,c)))))) (copy-state (state) diff --git a/pcl/simple-streams/external-formats/utf-16-le.lisp b/pcl/simple-streams/external-formats/utf-16-le.lisp index a053a36fc57464eb2f1e3dda52d99d23f43aafbd..343234030ea1ef0d6651a0e3c6e5e265afa6b245 100644 --- a/pcl/simple-streams/external-formats/utf-16-le.lisp +++ b/pcl/simple-streams/external-formats/utf-16-le.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Paul Foley and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-16-le.lisp,v 1.10.4.1 2010/08/13 01:52:53 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-16-le.lisp,v 1.10.4.2 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -38,7 +38,10 @@ Unicode replacement character.") ,state nil) (setf ,code (if ,error - (funcall ,error "Bare low surrogate #x~4,'0X" ,code 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Bare low surrogate #x~4,'0X" ,code 2)) +replacement-character-code+)))) ((lisp::surrogatep ,code :high) ;; Remember the high surrogate in case we bail out @@ -56,13 +59,20 @@ Unicode replacement character.") (setq ,code (+ (ash (- ,code #xD800) 10) ,next #x2400)) (setq ,code (if ,error - (funcall ,error "High surrogate followed by #x~4,'0X instead of low surrogate" ,next 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "High surrogate followed by #x~4,'0X ~ + instead of low surrogate" ,next 2)) +replacement-character-code+))))) ((= ,code #xFFFE) ;; replace with REPLACEMENT CHARACTER. (setf ,code (if ,error - (funcall ,error "BOM is not valid within a UTF-16 stream" ,code 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "BOM is not valid within a UTF-16 stream" ,code 2)) +replacement-character-code+))) (t (setf ,state nil))) (values ,code 2))) @@ -88,9 +98,12 @@ Unicode replacement character.") (when ,c (,output (if (lisp::surrogatep ,c) (if ,error - (funcall ,error - "Flushing bare surrogate #x~4,'0X is illegal for UTF-16" - (char-code ,c)) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error + "Flushing bare surrogate #x~4,'0X is illegal for UTF-16" + (char-code ,c))) +replacement-character-code+) ,c)))))) (copy-state (state) diff --git a/pcl/simple-streams/external-formats/utf-16.lisp b/pcl/simple-streams/external-formats/utf-16.lisp index efd7944692957d568f41b9e6104c5ee3083607cb..92afdef19a2b53fbcc25eead3e4f711b564733b4 100644 --- a/pcl/simple-streams/external-formats/utf-16.lisp +++ b/pcl/simple-streams/external-formats/utf-16.lisp @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Package: STREAM -*- ;;; ;;; ********************************************************************** -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-16.lisp,v 1.12.4.1 2010/08/13 01:52:54 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-16.lisp,v 1.12.4.2 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -66,7 +66,10 @@ Unicode replacement character.") ,state nil) (setf ,code (if ,error - (funcall ,error "Bare low surrogate #x~4,'0X" ,code 2) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Bare low surrogate #x~4,'0X" ,code 2)) +replacement-character-code+)))) ((lisp::surrogatep ,code :high) ;; Save the high (leading) code in the state, in @@ -90,7 +93,10 @@ Unicode replacement character.") ,wd 4) (setf ,code (if ,error - (funcall ,error "High surrogate followed by #x~4,'0X instead of low surrogate" ,next ,wd) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "High surrogate followed by #x~4,'0X instead of low surrogate" ,next ,wd)) +replacement-character-code+))))) ((and (= ,code #xFFFE) (zerop ,st)) (setf (car ,state) 1) (go :again)) @@ -100,7 +106,10 @@ Unicode replacement character.") ;; Replace with REPLACEMENT CHARACTER. (setf ,code (if ,error - (funcall ,error "BOM is not valid within a UTF-16 stream" ,code ,wd) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "BOM is not valid within a UTF-16 stream" ,code ,wd)) +replacement-character-code+)))) (return (values ,code ,wd)))))) (code-to-octets (code state output error c c1 c2) @@ -129,9 +138,12 @@ Unicode replacement character.") (when ,c (out (if (lisp::surrogatep ,c) (if ,error - (funcall ,error - "Flushing bare surrogate #x~4,'0X is illegal for UTF-16" - (char-code ,c)) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error + "Flushing bare surrogate #x~4,'0X is illegal for UTF-16" + (char-code ,c))) +replacement-character-code+) ,c)))))) (copy-state (state) diff --git a/pcl/simple-streams/external-formats/utf-32-be.lisp b/pcl/simple-streams/external-formats/utf-32-be.lisp index a07b708ceaf8c0adff77793968367118206ace87..527187351f9924cd623b8580f0ca4199cb4612dc 100644 --- a/pcl/simple-streams/external-formats/utf-32-be.lisp +++ b/pcl/simple-streams/external-formats/utf-32-be.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Raymond Toy and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-32-be.lisp,v 1.9.4.1 2010/08/13 01:52:54 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-32-be.lisp,v 1.9.4.2 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -35,9 +35,12 @@ Unicode replacement character.") (lisp::surrogatep ,c)) ;; Surrogates are illegal. Use replacement character. (values (if ,error - (if (>= ,c lisp:codepoint-limit) - (funcall ,error "Illegal codepoint #x~4,'0X" ,c 4) - (funcall ,error "Surrogate #x~4,'0X not allowed in UTF32" ,c 4)) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (if (>= ,c lisp:codepoint-limit) + (funcall ,error "Illegal codepoint #x~4,'0X" ,c 4) + (funcall ,error "Surrogate #x~4,'0X not allowed in UTF32" ,c 4))) +replacement-character-code+) 4)) (t @@ -51,8 +54,11 @@ Unicode replacement character.") (,output (ldb (byte 8 (* 8 (- 3 ,i))) ,c))))) (cond ((lisp::surrogatep ,code) (out (if ,error - (funcall ,error "Surrogate code #x~4,'0X is illegal for UTF32 output" - ,code) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Surrogate code #x~4,'0X is illegal for UTF32 output" + ,code)) +replacement-character-code+))) (t (out ,code)))))) diff --git a/pcl/simple-streams/external-formats/utf-32-le.lisp b/pcl/simple-streams/external-formats/utf-32-le.lisp index 6924ad512a79c23f234ee4dee8db193f258e3280..cd4fd0448f8629667ce19a9832f44c50b3faef17 100644 --- a/pcl/simple-streams/external-formats/utf-32-le.lisp +++ b/pcl/simple-streams/external-formats/utf-32-le.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Raymond Toy and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-32-le.lisp,v 1.9.4.1 2010/08/13 01:52:54 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-32-le.lisp,v 1.9.4.2 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -35,10 +35,13 @@ Unicode replacement character.") (lisp::surrogatep ,c)) ;; Surrogates are illegal. Use replacement character. (values (if ,error - (if (>= ,c lisp:codepoint-limit) - (funcall ,error "Illegal codepoint #x~4,'0X" ,c 4) - (funcall ,error "Surrogate #x~4,'0X not allowed in UTF32" - ,c 4)) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (if (>= ,c lisp:codepoint-limit) + (funcall ,error "Illegal codepoint #x~4,'0X" ,c 4) + (funcall ,error "Surrogate #x~4,'0X not allowed in UTF32" + ,c 4))) +replacement-character-code+) 4)) (t @@ -52,8 +55,11 @@ Unicode replacement character.") (,output (ldb (byte 8 (* 8 ,i)) ,c))))) (cond ((lisp::surrogatep ,code) (out (if ,error - (funcall ,error "Surrogate code #x~4,'0X is illegal for UTF32 output" - ,code) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Surrogate code #x~4,'0X is illegal for UTF32 output" + ,code)) +replacement-character-code+))) (t (out ,code)))))) diff --git a/pcl/simple-streams/external-formats/utf-32.lisp b/pcl/simple-streams/external-formats/utf-32.lisp index e0f00ab8ade284398b5882a1e594339f5de40b28..ae64866d030e65e7305d5bd356aa06518a47f63d 100644 --- a/pcl/simple-streams/external-formats/utf-32.lisp +++ b/pcl/simple-streams/external-formats/utf-32.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Raymond Toy and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-32.lisp,v 1.11 2010/07/12 14:42:11 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-32.lisp,v 1.11.4.1 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -70,10 +70,13 @@ Unicode replacement character.") ;; character. (setf ,code (if ,error - (if (>= ,code lisp:codepoint-limit) - (funcall ,error "Illegal codepoint #x~4,'0X" ,code 4) - (funcall ,error "Surrogate #x~4,'0X not allowed in UTF32" - ,code 4)) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (if (>= ,code lisp:codepoint-limit) + (funcall ,error "Illegal codepoint #x~4,'0X" ,code 4) + (funcall ,error "Surrogate #x~4,'0X not allowed in UTF32" + ,code 4))) +replacement-character-code+))) ((and (zerop ,st) (= ,code #xFFFE0000)) ;; BOM for little-endian @@ -97,8 +100,11 @@ Unicode replacement character.") (setf ,state t)) (cond ((lisp::surrogatep ,code) (out (if ,error - (funcall ,error "Surrogate code #x~4,'0X is illegal for UTF32 output" - ,code) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Surrogate code #x~4,'0X is illegal for UTF32 output" + ,code)) +replacement-character-code+))) (t (out ,code))))) diff --git a/pcl/simple-streams/external-formats/utf-8.lisp b/pcl/simple-streams/external-formats/utf-8.lisp index d95f1f6523ef73de4aec433d983560c73d795d0c..832565543fbdbaeae90734277f414578ca1d92bc 100644 --- a/pcl/simple-streams/external-formats/utf-8.lisp +++ b/pcl/simple-streams/external-formats/utf-8.lisp @@ -4,7 +4,7 @@ ;;; This code was written by Paul Foley and has been placed in the public ;;; domain. ;;; -(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-8.lisp,v 1.14 2010/07/12 14:42:11 rtoy Exp $") +(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/simple-streams/external-formats/utf-8.lisp,v 1.14.4.1 2010/08/14 23:51:08 rtoy Exp $") (in-package "STREAM") (intl:textdomain "cmucl") @@ -40,10 +40,13 @@ replacement character.") (,unput 1) (return (values - (if ,error - (funcall ,error "Invalid utf8 octet #x~X at offset ~D" - ,c (1+ ,j)) - +replacement-character-code+) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (if ,error + (funcall ,error "Invalid utf8 octet #x~X at offset ~D" + ,c (1+ ,j)) + +replacement-character-code+)) (1+ ,j))))))))) (check (,n ,i) (declare (type (unsigned-byte 31) ,n) @@ -62,12 +65,21 @@ replacement character.") (values (if ,error (cond ((>= ,n lisp:codepoint-limit) - (funcall ,error "Invalid codepoint #x~X of ~D octets" - ,n (1+ ,i))) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Invalid codepoint #x~X of ~D octets" + ,n (1+ ,i)))) ((lisp::surrogatep ,n) - (funcall ,error "Invalid surrogate code #x~X" ,n (1+ ,i))) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Invalid surrogate code #x~X" ,n (1+ ,i)))) (t - (funcall ,error "Overlong utf8 sequence of ~*~D octets" nil (1+ ,i)))) + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (funcall ,error "Overlong utf8 sequence of ~*~D octets" nil (1+ ,i))))) +replacement-character-code+) (1+ ,i))) (values ,n (1+ ,i))))) @@ -76,18 +88,26 @@ replacement character.") (cond ((null ,c) (values nil 0)) ((< ,c #b10000000) (values ,c 1)) ((< ,c #b11000010) - (values (if ,error - (funcall ,error "Invalid initial utf8 octet: #x~X" ,c 1) - +replacement-character-code+) + (values + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (if ,error + (funcall ,error "Invalid initial utf8 octet: #x~X" ,c 1) + +replacement-character-code+)) 1)) ((< ,c #b11100000) (utf8 ,c 1)) ((< ,c #b11110000) (utf8 ,c 2)) ((< ,c #b11111000) (utf8 ,c 3)) (t - (values (if ,error - (funcall ,error "Invalid initial utf8 octet: #x~X" ,c 1) - +replacement-character-code+) - 1)))))) + (values + (locally + ;; No warnings about fdefinition + (declare (optimize (ext:inhibit-warnings 3))) + (if ,error + (funcall ,error "Invalid initial utf8 octet: #x~X" ,c 1) + +replacement-character-code+)) + 1)))))) (code-to-octets (code state output error i j n p init) `(flet ((utf8 (,n ,i) (let* ((,j (- 6 ,i))