[mcclim-cvs] CVS update: mcclim/presentation-defs.lisp

Timothy Moore tmoore at common-lisp.net
Wed Jan 4 09:45:40 UTC 2006


Update of /project/mcclim/cvsroot/mcclim
In directory common-lisp.net:/tmp/cvs-serv32753

Modified Files:
	presentation-defs.lisp 
Log Message:
fix behavior of :allow-sensitive-inferiors in with-output-as-presentation. It was disabling  the current presentation as well as the inferiors.
Date: Wed Jan  4 10:45:36 2006
Author: tmoore

Index: mcclim/presentation-defs.lisp
diff -u mcclim/presentation-defs.lisp:1.48 mcclim/presentation-defs.lisp:1.49
--- mcclim/presentation-defs.lisp:1.48	Fri Sep  2 13:36:48 2005
+++ mcclim/presentation-defs.lisp	Wed Jan  4 10:45:35 2006
@@ -280,24 +280,23 @@
     (with-gensyms (record-arg continuation)
       (with-keywords-removed (key-args (:record-type
 					:allow-sensitive-inferiors))
-	`(let ((*allow-sensitive-inferiors*
-		(if *allow-sensitive-inferiors*
-		    ,allow-sensitive-inferiors
-		    nil)))
-	   (flet ((,continuation ()
-		    , at decls
-		    , at with-body))
-	     (declare (dynamic-extent #'continuation))
-	     (if (and (output-recording-stream-p ,stream)
-		      *allow-sensitive-inferiors*)
-		 (with-new-output-record
-		     (,stream ,record-type ,record-arg
-			      :object ,object
-			      :type (expand-presentation-type-abbreviation
-				     ,type)
-			      , at key-args)
-		   (,continuation))
-		 (,continuation))))))))
+	`(flet ((,continuation ()
+		  , at decls
+		  , at with-body))
+	   (declare (dynamic-extent #'continuation))
+	   (if (and (output-recording-stream-p ,stream)
+		    *allow-sensitive-inferiors*)
+	       (with-new-output-record
+		   (,stream ,record-type ,record-arg
+			    :object ,object
+			    :type (expand-presentation-type-abbreviation
+				   ,type)
+			    , at key-args)
+		 (let ((*allow-sensitive-inferiors*
+			,allow-sensitive-inferiors))
+		   (,continuation)))
+	       (,continuation)))))))
+
 
 (defun present (object &optional (type (presentation-type-of object))
 		&key
@@ -337,9 +336,10 @@
 			   (allow-sensitive-inferiors t)
 			   (sensitive t)
 			   (record-type 'standard-presentation))
-  (let ((*allow-sensitive-inferiors* (if *allow-sensitive-inferiors*
-					 sensitive
-					 nil)))
+  ;; *allow-sensitive-inferiors* controls whether or not
+  ;; with-output-as-presentation will emit a presentation
+  (let ((*allow-sensitive-inferiors* (and *allow-sensitive-inferiors*
+					  sensitive)))
     (with-output-as-presentation (stream object type
 				  :view view
 				  :modifier modifier




More information about the Mcclim-cvs mailing list