1.0.47.31: set-macro-character shouldn't accept NIL as a function designator.
authorStas Boukarev <stassats@users.sourceforge.net>
Fri, 29 Apr 2011 13:33:40 +0000 (13:33 +0000)
committerStas Boukarev <stassats@users.sourceforge.net>
Fri, 29 Apr 2011 13:33:40 +0000 (13:33 +0000)
Use %coerce-callable-to-fun before passing it to sb-impl::set-cmt-entry, although
set-cmt-entry calls %coerce-callable-to-fun, it does that only on non-nil values.

src/code/reader.lisp
version.lisp-expr

index 6ae6ce4..4fd79a7 100644 (file)
@@ -270,7 +270,8 @@ standard Lisp readtable when NIL."
   "Causes CHAR to be a macro character which invokes FUNCTION when seen
    by the reader. The NON-TERMINATINGP flag can be used to make the macro
    character non-terminating, i.e. embeddable in a symbol name."
-  (let ((designated-readtable (or rt-designator *standard-readtable*)))
+  (let ((designated-readtable (or rt-designator *standard-readtable*))
+        (function (%coerce-callable-to-fun function)))
     (assert-not-standard-readtable designated-readtable 'set-macro-character)
     (set-cat-entry char (if non-terminatingp
                             +char-attr-constituent+
index 5231d6b..155d55a 100644 (file)
@@ -20,4 +20,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.47.30"
+"1.0.47.31"