Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!wuarchive!udel!princeton!phoenix!eliot From: eliot@phoenix.Princeton.EDU (Eliot Handelman) Newsgroups: comp.lang.lisp Subject: macro character error in KCl Message-ID: <4259@idunno.Princeton.EDU> Date: 26 Nov 90 18:30:48 GMT Sender: news@idunno.Princeton.EDU Organization: Princeton University, New Joisey Lines: 27 Some people will remember this from a previous discussion: (defvar test-read-table (copy-readtable)) (set-macro-character #\: #'(lambda (stream char) :colon) nil test-read-table) (defun s (string) (let ((words '()) (index 0) (*readtable* test-read-table)) (loop (multiple-value-bind (word next-index) (read-from-string string nil nil :start index) (setq index next-index) (cond (word (push word words)) (t (return (nreverse words))))))))) In KCl, (s "x:x") returns the error "There is no package named X." I believe the correct behavior would be to return (X :COLON X). Suggestions, workarounds? --eliot