Index: swank.lisp =================================================================== RCS file: /project/slime/cvsroot/slime/swank.lisp,v retrieving revision 1.378 diff -u -r1.378 swank.lisp --- swank.lisp 12 May 2006 12:21:45 -0000 1.378 +++ swank.lisp 24 May 2006 13:34:27 -0000 @@ -100,6 +100,10 @@ (*print-escape* . t)) "A set of printer variables used in the debugger.") +(defvar *presentation-print-alist* '() + "Contains variables and values to be bound while printing the +values produced by an evaluation at the listener.") + (defvar *default-worker-thread-bindings* '() "An alist to initialize dynamic variables in worker threads. The list has the form ((VAR . VALUE) ...). Each variable VAR will be @@ -2382,9 +2386,11 @@ (setq +++ ++ ++ + + last-form) (cond ((eq *slime-repl-suppress-output* t) '(:suppress-output)) (*record-repl-results* - `(:present ,(loop for x in values - collect (cons (prin1-to-string x) - (save-presented-object x))))) + (let ((bindings (reverse *presentation-print-alist*))) + (progv (mapcar #'car bindings) (mapcar #'cdr bindings) + `(:present ,(loop for x in values + collect (cons (prin1-to-string x) + (save-presented-object x))))))) (t `(:values ,(mapcar #'prin1-to-string values))))))))