If the first symbol of a list is a keyword symbol, Swine will signal an error when it tries to look up its arglist. The attached patch fixes this issue.
Index: swine-cmds.lisp =================================================================== RCS file: /project/clim-desktop/cvsroot/clim-desktop/swine-cmds.lisp,v retrieving revision 1.3 diff -u -r1.3 swine-cmds.lisp --- swine-cmds.lisp 22 Feb 2006 10:47:29 -0000 1.3 +++ swine-cmds.lisp 14 Mar 2006 10:26:19 -0000 @@ -177,8 +177,17 @@ (when name (with-slots (package) (syntax (buffer (current-window))) (let ((function-symbol (let* ((pos2 (position #: name :from-end t)) - (pos1 (if (and pos2 (char= (elt name (1- pos2)) #:)) (1- pos2) pos2) )) - (handler-case (if pos2 (find-symbol (subseq name (1+ pos2)) (subseq name 0 pos1)) + (pos1 (if (and pos2 + ;; If the first + ;; element of + ;; the list is + ;; a keyword + ;; symbol, pos2 + ;; might be 0. + (plusp pos2) + (char= (elt name (1- pos2)) #:)) + (1- pos2) pos2))) + (handler-case (if pos1 (find-symbol (subseq name (1+ pos2)) (subseq name 0 pos1)) (find-symbol name (or package *package*))) (package-error (e) ;; The specified symbol is in
clim-desktop-devel@common-lisp.net