diff --git a/pkgs/racket-pkgs/racket-test/tests/racket/basic.rktl b/pkgs/racket-pkgs/racket-test/tests/racket/basic.rktl index 48fe246b9c..7c60d8b48d 100644 --- a/pkgs/racket-pkgs/racket-test/tests/racket/basic.rktl +++ b/pkgs/racket-pkgs/racket-test/tests/racket/basic.rktl @@ -1330,18 +1330,19 @@ ;; Check that lazy decoding of strings works right with sending ;; unmatched output to a port: -(for ([succeed? '(#f #t)]) +(for* ([succeed? '(#f #t)] + [char '(#\x #\u3BB)]) (for ([N '(1 100 1000 1023 1024 10000)]) (for ([M (list 0 (quotient N 2))]) (define o (open-output-bytes)) (void (regexp-match-positions #rx"y" (string-append - (make-string N #\x) + (make-string N char) (if succeed? "y" "")) M (+ N (if succeed? 1 0)) o)) - (test (- N M) bytes-length (get-output-bytes o))))) + (test (- N M) string-length (get-output-string o))))) (arity-test regexp 1 1) (arity-test regexp? 1 1) diff --git a/racket/src/racket/src/regexp.c b/racket/src/racket/src/regexp.c index dff6424c49..77081cba07 100644 --- a/racket/src/racket/src/regexp.c +++ b/racket/src/racket/src/regexp.c @@ -5388,7 +5388,7 @@ static Scheme_Object *gen_compare(char *name, int pos, if (lazy_string) { full_s = lazy_string->s; - endset = lazy_string->end - lazy_string->start; + endset = lazy_string->blen; } if (iport) {