On Thu, Apr 11, 2002 at 06:41:25PM +0400, Alexey Dejneka wrote:
> Christophe Rhodes <csr21@...> writes:
> > On Thu, Apr 11, 2002 at 09:15:44AM +0400, Alexey Dejneka wrote:
> > that _should_
> > return the DISPATCH-CHAR-ERROR thing (see figure 2-19 in section 2.4.8
> > of the HyperSpec).
> No, that should retutn SHARP-ILLEGAL (see src/code/sharpm.lisp, last
> line), as (GET-DISPATCH-MACRO-CHARACTER #\# #\Tab) does.
Good point. I completely missed this subtlety; Backspace just happened
to be the first "illegal" character I tried, and I hadn't spotted that
there was a separate sharp-illegal function.
> > I'd guess that we'd have to actually put in explicit NILs for the
> > undefined dispatch functions, and move the error handling around a
> > little...
> No, Backspace, Newline and Linefeed should be put in the second from
> the end line of sharpm.lisp. But can we simply write #\Backspace
> there? It seems that we already believe that (CODE-CHAR #\Newline) =
> (CODE-CHAR #\Linefeed) = 10 (see !COLD-INIT-STANDARD-READTABLE in
Yes, something like this would fix it. I have a slight queasiness about
(eq <foo> #'some-arbitrary-function), but this idiom is fairly liberally
distributed around the stream code already, so one more won't hurt very
Jesus College, Cambridge, CB5 8BL +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/ (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)