Nested string-tokenize gives weird results
It seems like string-tokenize gives some weird results with nested invocations. The example below illustrates the issue.
I encountered this issue in a larger program and ultimately distilled it down to this example. Note in particular the third output line.
Given the change of result with the string-copy, I suspect it may be somehow related to immutable v. mutable strings, but it seems like the nested invocation should work as is even with istrings.
Regards,
-chaw
chaw@vereq:/tmp$ cat work.scm
(import (srfi 1)
(srfi 13)
(srfi 14))
(write (string-tokenize "1/tcp"
(char-set-complement (char-set #\/))))
(newline)
(write (second (string-tokenize "tcpmux 1/tcp")))
(newline)
(write (string-tokenize (second (string-tokenize "tcpmux 1/tcp"))
(char-set-complement (char-set #\/))))
(newline)
(write (string-tokenize (string-copy
(second (string-tokenize "tcpmux 1/tcp")))
(char-set-complement (char-set #\/))))
(newline)
chaw@vereq:/tmp$ kawa work.scm
("1" "tcp")
"1/tcp"
("t" "pmu")
("1" "tcp")
chaw@vereq:/tmp$ kawa --version
Kawa 2.93 (git describe: 2.93-53-g015b866-dirty)
Copyright (C) 2017 Per Bothner
chaw@vereq:/tmp$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
OpenJDK Server VM (build 25.131-b11, mixed mode)
chaw@vereq:/tmp$ uname -a
Linux vereq.eip10.org 3.16.0-4-686-pae #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26) i686 GNU/Linux
chaw@vereq:/tmp$