Subject: bug#48114: Disarchive occasionally fails tests

From: Timothy Sample <[email-masked]>
Date: Sun, 02 May 2021 22:24:04 -0400

Hi,

Ludovic Courtès <[email-masked]> writes:

[...]

> ERROR: In procedure substring:
> Value out of range 6 to 7: 8
>
> Note that this is in C locale, which may mean that ‘regexp-exec’, which
> passes strings to libc, gets offsets wrong somehow (see
> ‘fixup_multibyte_match’ in libguile), though I couldn’t reproduce it
> with the string above.

I’m still looking into this, but I wanted to quickly post this
reproducer for the Guile bug:

    (use-modules (ice-9 regex))
    (define str "\U101514\U103ab0\U0f6e6e\U02e278\U01d9eb\U10b996\U1089b5\uea15\U0fa074\U101e41\U02e330\u0177\u2492")
    (match:substring (string-match "[0-8]+" str))

This triggers the out-of-range error when run with “LC_ALL=C”.

-- Tim