X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ferror.lisp;h=aae384bf1f1cccdc14d855dcfb0079f1aa4c1484;hb=89c5e67daff0215420fb0998b8e20915ddea1437;hp=86e41d125096fc22e6ca1420e2c33c5815a2038d;hpb=ed2e811980a924df922505d6cc52fef8c76d85b5;p=sbcl.git diff --git a/src/code/error.lisp b/src/code/error.lisp index 86e41d1..aae384b 100644 --- a/src/code/error.lisp +++ b/src/code/error.lisp @@ -87,6 +87,32 @@ (define-condition simple-stream-error (simple-condition stream-error) ()) (define-condition simple-parse-error (simple-condition parse-error) ()) +(define-condition character-coding-error (error) ()) +(define-condition character-encoding-error (character-coding-error) + ((code :initarg :code :reader character-encoding-error-code))) +(define-condition character-decoding-error (character-coding-error) + ((octets :initarg :octets :reader character-decoding-error-octets))) +(define-condition stream-encoding-error (stream-error character-encoding-error) + () + (:report + (lambda (c s) + (let ((stream (stream-error-stream c)) + (code (character-encoding-error-code c))) + (format s "~@" + stream ':external-format (stream-external-format stream) + code))))) +(define-condition stream-decoding-error (stream-error character-decoding-error) + () + (:report + (lambda (c s) + (let ((stream (stream-error-stream c)) + (octets (character-decoding-error-octets c))) + (format s "~@" + stream ':external-format (stream-external-format stream) + octets))))) + (define-condition control-stack-exhausted (storage-condition) () (:report