[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