diff --git a/code/sysmacs.lisp b/code/sysmacs.lisp index eda733fd65ed6bd3755ada0fce84323353126eab..184af917b69b31f067e5c6211048952b726664e8 100644 --- a/code/sysmacs.lisp +++ b/code/sysmacs.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/sysmacs.lisp,v 1.22 1998/07/16 13:30:52 pw Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/sysmacs.lisp,v 1.23 1998/07/28 06:56:32 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -113,19 +113,24 @@ ;;; (defmacro with-in-stream (stream (slot &rest args) &optional stream-dispatch) `(let ((stream (in-synonym-of ,stream))) - (if (lisp-stream-p stream) - (funcall (,slot stream) stream ,@args) - ,@(when stream-dispatch - `(,(destructuring-bind (function &rest args) stream-dispatch - `(,function stream ,@args))))))) + ,(if stream-dispatch + `(if (lisp-stream-p stream) + (funcall (,slot stream) stream ,@args) + ,@(when stream-dispatch + `(,(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) `(let ((stream (out-synonym-of ,stream))) - (if (lisp-stream-p stream) - (funcall (,slot stream) stream ,@args) - ,@(when stream-dispatch - `(,(destructuring-bind (function &rest args) stream-dispatch - `(,function stream ,@args))))))) + ,(if stream-dispatch + `(if (lisp-stream-p stream) + (funcall (,slot stream) stream ,@args) + ,@(when stream-dispatch + `(,(destructuring-bind (function &rest args) stream-dispatch + `(,function stream ,@args))))) + `(funcall (,slot stream) stream ,@args)))) ;;;; These are hacks to make the reader win.