On Tue, 2009-08-11 at 17:54 +0200, Ludovic Courtès wrote:

> I also noticed another problem (x86_64-unknown-linux-gnu):
> 
> --8<---------------cut here---------------start------------->8---
> scheme@(guile-user)> (string=? "\u0100\u0101\x0102" "\u0100\u0101\x0102")
> 
> Backtrace:
> In unknown file:
>    ?: 0* [#<vm 7fc03c042ff0> #<program 7fc0349061c0 at <unknown port>:4:0 ()>]
>    5: 1* [#<program 7fc0349061c0 at <unknown port>:4:0 ()>]
>    ?: 2* [string=? "\u0100\u0101\x0102" "\u0100\u0101\x0102"]
> 
> ERROR: In procedure string=?:
> ERROR: Invalid read access of chars of wide string: "\u0100\u0101\x0102"
> --8<---------------cut here---------------end--------------->8---
> 
> It's not a regression strictly speaking, but still.  Mike?  :-)

All of srfi-13.c isn't ready to operate on non-8-bit strings.  string=?
calls MY_VALIDATE_SUBSTRING_SPEC_COPY, which calls scm_i_string_chars.
scm_i_string_chars either returns a pointer to the Latin-1 strings or
errors with the error you saw.

-Mike



Reply via email to