diff --git a/scheme/ikarus.fasl.ss b/scheme/ikarus.fasl.ss index 11bbe0a..a1b22d4 100644 --- a/scheme/ikarus.fasl.ss +++ b/scheme/ikarus.fasl.ss @@ -253,6 +253,16 @@ (f (fxadd1 i))))) (when m (put-mark m str)) str))] + [(#\S) ;;; unicode string + (let ([n (read-int p)]) + (let ([str (make-string n)]) + (let f ([i 0]) + (unless (fx= i n) + (let ([c (integer->char (read-int p))]) + (string-set! str i c) + (f (fxadd1 i))))) + (when m (put-mark m str)) + str))] [(#\M) ;;; symbol (let ([str (read)]) (let ([sym (string->symbol str)]) diff --git a/scheme/last-revision b/scheme/last-revision index f71f46d..0eb2be8 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1625 +1626 diff --git a/scheme/tests/fasl.ss b/scheme/tests/fasl.ss index 998f3d5..1fbca78 100644 --- a/scheme/tests/fasl.ss +++ b/scheme/tests/fasl.ss @@ -46,6 +46,7 @@ (test 127487384734.4) (test (make-rectangular 12 13)) (test (make-rectangular 12.0 13.0)) + (test (string #\x3bb)) (test-cycle)) )