[slime-cvs] CVS slime

CVS User heller heller at common-lisp.net
Wed Mar 3 11:56:36 UTC 2010


Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv8199

Modified Files:
	ChangeLog swank.lisp 
Log Message:
Make eval-in-frame display multiple values; not only the first.

* swank.lisp (values-to-string): New macro.
(eval-string-in-frame): Use it.

--- /project/slime/cvsroot/slime/ChangeLog	2010/03/02 14:36:47	1.2006
+++ /project/slime/cvsroot/slime/ChangeLog	2010/03/03 11:56:35	1.2007
@@ -181,6 +181,13 @@
 	resulting in duplicate modeline strings.
 	Reported by Leo Liu.
 
+2010-02-19  Helmut Eller  <heller at common-lisp.net>
+
+	Make eval-in-frame display multiple values; not only the first.
+
+	* swank.lisp (values-to-string): New macro.
+	(eval-string-in-frame): Use it.
+
 2010-02-18  Mark Harig <idirectscm at aim.com>
 
 	The compiler warns about various stuff. Fix some of it.
--- /project/slime/cvsroot/slime/swank.lisp	2010/03/02 12:38:07	1.691
+++ /project/slime/cvsroot/slime/swank.lisp	2010/03/03 11:56:35	1.692
@@ -2012,6 +2012,9 @@
                        *echo-area-prefix* i i i i)))
             (t (format nil "~a~{~S~^, ~}" *echo-area-prefix* values))))))
 
+(defmacro values-to-string (values)
+  `(format-values-for-echo-area (multiple-value-list ,values)))
+
 (defslimefun interactive-eval (string)
   (with-buffer-syntax ()
     (with-retry-restart (:msg "Retry SLIME interactive evaluation request.")
@@ -2068,13 +2071,13 @@
   "A list of variables bindings during pretty printing.
 Used by pprint-eval.")
 
-(defun swank-pprint (list)
-  "Bind some printer variables and pretty print each object in LIST."
+(defun swank-pprint (values)
+  "Bind some printer variables and pretty print each object in VALUES."
   (with-buffer-syntax ()
     (with-bindings *swank-pprint-bindings*
-      (cond ((null list) "; No value")
+      (cond ((null values) "; No value")
             (t (with-output-to-string (*standard-output*)
-                 (dolist (o list)
+                 (dolist (o values)
                    (pprint o)
                    (terpri))))))))
   
@@ -2553,16 +2556,14 @@
      ,form))
 
 (defslimefun eval-string-in-frame (string index)
-  (to-string
-   (with-retry-restart (:msg "Retry SLIME evaluation request.")
-     (eval-in-frame (wrap-sldb-vars (from-string string))
-                    index))))
+  (values-to-string
+   (eval-in-frame (wrap-sldb-vars (from-string string))
+                  index)))
 
 (defslimefun pprint-eval-string-in-frame (string index)
   (swank-pprint
-   (with-retry-restart (:msg "Retry SLIME evaluation request.")
-     (multiple-value-list 
-      (eval-in-frame (wrap-sldb-vars (from-string string)) index)))))
+   (multiple-value-list 
+    (eval-in-frame (wrap-sldb-vars (from-string string)) index))))
 
 (defslimefun frame-locals-and-catch-tags (index)
   "Return a list (LOCALS TAGS) for vars and catch tags in the frame INDEX.





More information about the slime-cvs mailing list