* read.c (scm_lreadr): When user-defined hash procedure returns

SCM_UNSPECIFIED: Fall back to standard handling instead of raising
an exception.  (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)

* arrays.scm (read:uniform-vector): Return *unspecified* instead
of raising an exception if hash extend character isn't followed by
the array list. (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)
This commit is contained in:
Mikael Djurfeldt 2001-10-14 16:05:04 +00:00
commit 89759084ab
4 changed files with 17 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
* arrays.scm (read:uniform-vector): Return *unspecified* instead
of raising an exception if hash extend character isn't followed by
the array list. (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)
2001-10-08 Mikael Djurfeldt <mdj@linnaeus>
* emacs.scm (%%load-port, %%emacs-load, %%emacs-eval-request,

View file

@ -79,5 +79,4 @@
(define (read:uniform-vector proto port)
(if (eq? #\( (peek-char port))
(list->uniform-array 1 proto (read port))
(error "read:uniform-vector list not found")))
(list->uniform-array 1 proto (read port))))

View file

@ -1,3 +1,10 @@
2001-10-14 Mikael Djurfeldt <mdj@linnaeus>
* read.c (scm_lreadr): When user-defined hash procedure returns
SCM_UNSPECIFIED: Fall back to standard handling instead of raising
an exception. (This prevents parsing of uniform vectors from
interfering with parsing of numbers.)
2001-10-13 Marius Vollmer <mvo@zagadka.ping.de>
* numbers.c: Set NO_PREPRO_MAGIC when defining our version of

View file

@ -350,7 +350,7 @@ scm_lreadr (SCM *tok_buf,SCM port,SCM *copy)
got = scm_call_2 (sharp, SCM_MAKE_CHAR (c), port);
if (SCM_EQ_P (got, SCM_UNSPECIFIED))
goto unkshrp;
goto handle_sharp;
if (SCM_RECORD_POSITIONS_P)
return *copy = recsexpr (got, line, column,
SCM_FILENAME (port));
@ -358,6 +358,7 @@ scm_lreadr (SCM *tok_buf,SCM port,SCM *copy)
return got;
}
}
handle_sharp:
switch (c)
{
case '(':