[slime-cvs] CVS update: slime/swank.lisp

Helmut Eller heller at common-lisp.net
Mon Sep 13 21:36:13 UTC 2004


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

Modified Files:
	swank.lisp 
Log Message:
(intern-catch-tag):  New function.
(read-user-input-from-emacs, take-input): Use it.

(define-special): Set the documentation for the 'variable not for the
'symbol.

Date: Mon Sep 13 23:36:13 2004
Author: heller

Index: slime/swank.lisp
diff -u slime/swank.lisp:1.231 slime/swank.lisp:1.232
--- slime/swank.lisp:1.231	Mon Sep 13 18:42:31 2004
+++ slime/swank.lisp	Mon Sep 13 23:36:13 2004
@@ -871,6 +871,10 @@
 
 (defvar *read-input-catch-tag* 0)
 
+(defun intern-catch-tag (tag)
+  ;; fixnums aren't eq in ABCL, so we use intern to create tags
+  (intern (format nil "~D" tag) :swank))
+
 (defun read-user-input-from-emacs ()
   (let ((*read-input-catch-tag* (1+ *read-input-catch-tag*)))
     (force-output)
@@ -878,7 +882,7 @@
                      ,*read-input-catch-tag*))
     (let ((ok nil))
       (unwind-protect
-           (prog1 (catch *read-input-catch-tag* 
+           (prog1 (catch (intern-catch-tag *read-input-catch-tag*)
                     (loop (read-from-emacs)))
              (setq ok t))
         (unless ok 
@@ -887,7 +891,7 @@
 
 (defslimefun take-input (tag input)
   "Return the string INPUT to the continuation TAG."
-  (throw tag input))
+  (throw (intern-catch-tag tag) input))
 
 (defslimefun connection-info ()
   "Return a list of the form: 
@@ -902,10 +906,10 @@
 
 (defmacro define-special (name doc)
   "Define a special variable NAME with doc string DOC.
-This is like defvar, but NAME will not initialized."
+This is like defvar, but NAME will not be initialized."
   `(progn
     (defvar ,name)
-    (setf (documentation ',name 'symbol) ',doc)))
+    (setf (documentation ',name 'variable) ',doc)))
 
 (define-special *buffer-package*     
     "Package corresponding to slime-buffer-package.  





More information about the slime-cvs mailing list