[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