X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fsysmacs.lisp;h=bcb82555a2fccde30c1a3ea614784a1f82bde9b5;hb=6ddaf294e5a7e3b1792ed1d9c342894c38538773;hp=a970eef25629d135435bfe9d51a535c6248f7c43;hpb=47eb330ef0f3b99d24c0e24d897b757f16950c4b;p=sbcl.git diff --git a/src/code/sysmacs.lisp b/src/code/sysmacs.lisp index a970eef..bcb8255 100644 --- a/src/code/sysmacs.lisp +++ b/src/code/sysmacs.lisp @@ -99,8 +99,8 @@ waits until gc is enabled in this thread." `(,function stream ,@args))))) `(funcall (,slot stream) stream ,@args)))) -(defmacro with-out-stream (stream (slot &rest args) &optional stream-dispatch) - `(let ((stream (out-synonym-of ,stream))) +(defmacro with-out-stream/no-synonym (stream (slot &rest args) &optional stream-dispatch) + `(let ((stream ,stream)) ,(if stream-dispatch `(if (ansi-stream-p stream) (funcall (,slot stream) stream ,@args) @@ -108,6 +108,11 @@ waits until gc is enabled in this thread." `(,(destructuring-bind (function &rest args) stream-dispatch `(,function stream ,@args))))) `(funcall (,slot stream) stream ,@args)))) + +(defmacro with-out-stream (stream (slot &rest args) &optional stream-dispatch) + `(with-out-stream/no-synonym (out-synonym-of ,stream) + (,slot ,@args) ,stream-dispatch)) + ;;;; These are hacks to make the reader win.