[slime-cvs] CVS slime
CVS User sboukarev
sboukarev at common-lisp.net
Wed Sep 2 17:21:16 UTC 2009
Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv20984
Modified Files:
ChangeLog swank-lispworks.lisp
Log Message:
* swank-lispworks.lisp (replace-strings-with-symbols): New function for
recursively interning and replacing strings in a list.
(arglist): Replace all strings in arglists with symbols.
* contrib/swank-arglists.lisp (decode-required-arg): Move LispWorks specific
code into swank-lispworks.lisp.
--- /project/slime/cvsroot/slime/ChangeLog 2009/09/02 14:04:31 1.1848
+++ /project/slime/cvsroot/slime/ChangeLog 2009/09/02 17:21:15 1.1849
@@ -1,5 +1,9 @@
2009-09-02 Stas Boukarev <stassats at gmail.com>
+ * swank-lispworks.lisp (replace-strings-with-symbols): New function for
+ recursively interning and replacing strings in a list.
+ (arglist): Replace all strings in arglists with symbols.
+
* slime.el (slime-net-close): Do not query for process killing
confirmation before killing a connection buffer.
(slime-buffer-processes): New function for listing processes
--- /project/slime/cvsroot/slime/swank-lispworks.lisp 2009/07/02 14:14:33 1.131
+++ /project/slime/cvsroot/slime/swank-lispworks.lisp 2009/09/02 17:21:15 1.132
@@ -184,13 +184,26 @@
;;;; Documentation
+(defun replace-strings-with-symbols (tree)
+ (mapcar (lambda (x)
+ (typecase x
+ (list
+ (replace-strings-with-symbols x))
+ (symbol
+ x)
+ (string
+ (intern x))
+ (t
+ (intern (write-to-string x)))))
+ tree))
+
(defimplementation arglist (symbol-or-function)
(let ((arglist (lw:function-lambda-list symbol-or-function)))
(etypecase arglist
((member :dont-know)
:not-available)
(list
- arglist))))
+ (replace-strings-with-symbols arglist)))))
(defimplementation function-name (function)
(nth-value 2 (function-lambda-expression function)))
More information about the slime-cvs
mailing list