X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffd-stream.lisp;h=ef0c2c4f585ad24a42720d6c1eacf3398dde307a;hb=68ea71d0f020f2726e3c56c1ec491d0af734b3a4;hp=5de405bf55c11a6a84ccc3e980f55ff91b297ebb;hpb=0c243146d694d8ebebc0939d1aaa798f6262bc9e;p=sbcl.git diff --git a/src/code/fd-stream.lisp b/src/code/fd-stream.lisp index 5de405b..ef0c2c4 100644 --- a/src/code/fd-stream.lisp +++ b/src/code/fd-stream.lisp @@ -325,6 +325,7 @@ (intern (format nil name-fmt (string (car buffering)))))) `(progn (defun ,function (stream byte) + (declare (ignorable byte)) (output-wrapper/variable-width (stream ,size ,buffering ,restart) ,@body)) (setf *output-routines* @@ -752,6 +753,7 @@ ,stream-var) (fd-stream-ibuf-head ,stream-var)))) + (declare (ignorable byte)) (setq size ,bytes) (input-at-least ,stream-var size) (setq ,element-var (locally ,@read-forms)) @@ -1001,6 +1003,16 @@ (when sizer (loop for char across string summing (funcall sizer char))))) +(defun find-external-format (external-format) + (when external-format + (find external-format *external-formats* :test #'member :key #'car))) + +(defun variable-width-external-format-p (ef-entry) + (when (eighth ef-entry) t)) + +(defun bytes-for-char-fun (ef-entry) + (if ef-entry (symbol-function (ninth ef-entry)) (constantly 1))) + ;;; FIXME: OAOOM here vrt. *EXTERNAL-FORMAT-FUNCTIONS* in fd-stream.lisp (defmacro define-external-format (external-format size output-restart out-expr in-expr) @@ -1134,6 +1146,7 @@ (size-function (symbolicate "BYTES-FOR-CHAR/" name))) `(progn (defun ,size-function (byte) + (declare (ignorable byte)) ,out-size-expr) (defun ,out-function (stream string flush-p start end) (let ((start (or start 0)) @@ -1218,6 +1231,7 @@ (setf decode-break-reason (block decode-break-reason (let ((byte (sap-ref-8 sap head))) + (declare (ignorable byte)) (setq size ,in-size-expr) (when (> size (- tail head)) (return)) @@ -1262,6 +1276,7 @@ ,in-size-expr sap head) (let ((byte (sap-ref-8 sap head))) + (declare (ignorable byte)) ,in-expr)) (defun ,resync-function (stream) (loop (input-at-least stream 2) @@ -1271,6 +1286,7 @@ (head (fd-stream-ibuf-head stream)) (byte (sap-ref-8 sap head)) (size ,in-size-expr)) + (declare (ignorable byte)) (input-at-least stream size) (let ((sap (fd-stream-ibuf-sap stream)) (head (fd-stream-ibuf-head stream)))