1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

bug#48089: Guile 3.0.6 returns zero-indexed locations for ‘read-error’

Ludovic Courtès <ludo@gnu.org> skribis:

> Guile 3.0.6 returns zero-indexed (instead of one-indexed) source code
> locations for ‘read-error’.  Here’s a 3.0.6/3.0.5 comparison:
>
> $ /gnu/store/r2nr74rwhpqg16y1lyi6l0jn3lwx4yyz-guile-3.0.6/bin/guile  <(echo '(')
> ice-9/read.scm:126:4: In procedure lp:
> /dev/fd/63:1:0: unexpected end of input while searching for: )
> $ guile  <(echo '(')
> ERROR: In procedure primitive-load:
> In procedure scm_i_lreadparen: /dev/fd/63:2:1: end of file

Here’s a test case waiting to succeed!  :-)
This commit is contained in:
Ludovic Courtès 2021-04-29 11:33:27 +02:00 committed by Andy Wingo
parent 19f38a38fd
commit 8c1a26f4d4

View file

@ -212,6 +212,18 @@
(with-test-prefix "mismatching parentheses"
(pass-if-equal "read-error location"
'("foo.scm:3:1: unexpected end of input while searching for: ~A" #\))
(catch 'read-error
(lambda ()
;; The missing closing paren error should be located on line 3,
;; column 1 (one-indexed).
(call-with-input-string "\n (hi there!\n"
(lambda (port)
(set-port-filename! port "foo.scm")
(read port))))
(lambda (key proc message args . _)
(cons message args))))
(pass-if-exception "opening parenthesis"
exception:eof
(read-string "("))