[Advanced-readtable-cvs] r8 -
rklochkov at common-lisp.net
rklochkov at common-lisp.net
Sun Dec 9 09:12:41 UTC 2012
Author: rklochkov
Date: Sun Dec 9 01:12:39 2012
New Revision: 8
Log:
Fixed assoc check in handler
Modified:
src.lisp
Modified: src.lisp
==============================================================================
--- src.lisp Sat Dec 8 21:48:36 2012 (r7)
+++ src.lisp Sun Dec 9 01:12:39 2012 (r8)
@@ -245,7 +245,7 @@
(defmacro set-handler (handler-list key function)
(let ((key-var (gensym "key")))
`(let ((,key-var ,key))
- (unless (assoc ,key-var ,handler-list)
+ (unless (assoc ,key-var ,handler-list :test #'equal)
(push (cons ,key-var ,function)
,handler-list)))))
@@ -272,7 +272,7 @@
after that reducers:... will refer to new package, not com.clearly-useful.reducers.
"
- (%set-handler (package-finders package) (list :prefix prefix) name
+ (%set-handler (package-finders package) `(:prefix ,prefix) name
(cl:find-package (concatenate 'string prefix "." name))))
(defun push-local-nickname (long-package nick
@@ -294,7 +294,7 @@
(push-local-nickname :lib1 :lib :a)
"
(let ((dpackage (find-package long-package)))
- (%set-handler (package-finders current-package) (list :nick long-package nick) name
+ (%set-handler (package-finders current-package) `(:nick ,long-package ,nick) name
(when (string= name (string nick)) dpackage))))
(defun push-local-package (symbol local-package)
@@ -311,7 +311,7 @@
, because first for is in ITERATE package, but second -- is not.
"
(let ((dpackage (find-package local-package)))
- (%set-handler (extra-finders symbol) (list :nick long-package nick) name
+ (%set-handler (extra-finders symbol) `(:local ,symbol ,local-package) name
(multiple-value-bind (symbol status) (cl:find-symbol name dpackage)
(when (eq status :external) symbol)))))
More information about the Advanced-readtable-cvs
mailing list