Can a cursor created from one string be used with another string?
Duy Nguyen
(28 Jan 2020 10:48 UTC)
|
Re: Can a cursor created from one string be used with another string?
John Cowan
(28 Jan 2020 13:31 UTC)
|
Re: Can a cursor created from one string be used with another string?
Duy Nguyen
(28 Jan 2020 13:33 UTC)
|
Re: Can a cursor created from one string be used with another string?
Duy Nguyen
(28 Jan 2020 15:08 UTC)
|
Re: Can a cursor created from one string be used with another string?
Alex Shinn
(31 Jan 2020 15:32 UTC)
|
Re: Can a cursor created from one string be used with another string? Duy Nguyen (31 Jan 2020 16:00 UTC)
|
Re: Can a cursor created from one string be used with another string?
Alex Shinn
(01 Feb 2020 04:38 UTC)
|
Re: Can a cursor created from one string be used with another string? Duy Nguyen 31 Jan 2020 15:59 UTC
On Fri, Jan 31, 2020 at 10:32 PM Alex Shinn <xxxxxx@gmail.com> wrote: > > On Tue, Jan 28, 2020 at 6:48 PM Duy Nguyen <xxxxxx@gmail.com> wrote: >> >> In the SRFI, "cursors are opaque objects that point into strings" >> gives me the impression that cursors are tied to the string they >> should only be used with that string. Using them on a different string >> is undefined/error behavior. > > > Correct. I believe the only implementation which enforces this is Chibi, > and only if you specify the -Dsafe-string-cursors command-line option. > Otherwise it will let you use cursors on different strings, which can > give unexpected behavior including utf8 decoding exceptions. Thanks. I'm considering adding something like that to Gauche but was not sure about the option name :) Do I do it right with this, though, because it does not seem to work, the two strings from substring and string-index... should be different unless chibi deduplicates strings somehow. $ <env...> ./chibi-scheme -Dsafe-string-cursors ~/t/def.scm "bc" $ cat ~/t/def.scm (import (srfi 130) (scheme write) (scheme base)) (write (substring/cursors (string-append "a" "bc") (string-index->cursor "abc" 1) (string-index->cursor "abc" 3))) -- Duy