[slime-cvs] CVS slime/contrib

CVS User sboukarev sboukarev at common-lisp.net
Thu Mar 8 03:04:48 UTC 2012


Update of /project/slime/cvsroot/slime/contrib
In directory tiger.common-lisp.net:/tmp/cvs-serv29534

Modified Files:
	ChangeLog swank-arglists.lisp 
Log Message:
* swank-arglists.lisp (print-decoded-arglist): When the source of
the arglist is a local definition from FLET, some parts may be
represented as ARGLIST-DUMMY, handle them.


--- /project/slime/cvsroot/slime/contrib/ChangeLog	2012/03/06 20:55:19	1.533
+++ /project/slime/cvsroot/slime/contrib/ChangeLog	2012/03/08 03:04:48	1.534
@@ -1,3 +1,9 @@
+2012-03-08  Stas Boukarev  <stassats at gmail.com>
+
+	* swank-arglists.lisp (print-decoded-arglist): When the source of
+	the arglist is a local definition from FLET, some parts may be
+	represented as ARGLIST-DUMMY, handle them.
+
 2012-03-06  Helmut Eller  <heller at common-lisp.net>
 
 	* swank-kawa.scm (module-method>meth-ref):  Slightly better
--- /project/slime/cvsroot/slime/contrib/swank-arglists.lisp	2011/10/05 14:17:59	1.71
+++ /project/slime/cvsroot/slime/contrib/swank-arglists.lisp	2012/03/08 03:04:48	1.72
@@ -213,6 +213,11 @@
 
 ;;;; Arglist Printing
 
+(defun undummy (x)
+  (if (typep x 'arglist-dummy)
+      (arglist-dummy.string-representation x)
+      (prin1-to-string x)))
+
 (defun print-decoded-arglist (arglist &key operator provided-args highlight)
   (macrolet ((space ()
                ;; Kludge: When OPERATOR is not given, we don't want to
@@ -257,7 +262,8 @@
                  (with-highlighting (:index index)
                    (if (null init-value)
                        (print-arg arg)
-                       (format t "~:@<~A ~S~@:>" arg init-value))))
+                       (format t "~:@<~A ~A~@:>"
+                               (undummy arg) (undummy init-value)))))
              (incf index))
           (&key :initially
              (when (arglist.key-p arglist)
@@ -271,9 +277,10 @@
                    (print-arglist-recursively arg :index keyword))
                  (with-highlighting (:index keyword)
                    (cond ((and init (keywordp keyword))
-                          (format t "~:@<~A ~S~@:>" keyword init))
+                          (format t "~:@<~A ~A~@:>" keyword (undummy init)))
                          (init
-                          (format t "~:@<(~S ..) ~S~@:>" keyword init))
+                          (format t "~:@<(~A ..) ~A~@:>"
+                                  (undummy keyword) (undummy init)))
                          ((not (keywordp keyword))
                           (format t "~:@<(~S ..)~@:>" keyword))
                          (t
@@ -1493,8 +1500,8 @@
                          :quoted-symbol)
                         ((search "#'" string :end2 (min length 2))
                          :sharpquoted-symbol)
-                        ((and (eql (aref string 0) #\")
-                              (eql (aref string (1- length)) #\"))
+                        ((char= (char string 0) (char string (1- length))
+                                #\")
                          :string)
                         (t
                          :symbol))))
@@ -1510,7 +1517,9 @@
             (:symbol             symbol)
             (:quoted-symbol      `(quote ,symbol))
             (:sharpquoted-symbol `(function ,symbol))
-            (:string             string))
+            (:string             (if (> length 1)
+                                     (subseq string 1 (1- length))
+                                     string)))
 	  (make-arglist-dummy string)))))
   
 (defun test-print-arglist ()





More information about the slime-cvs mailing list