ensure unicode-capable rnrs string ports
authorAndy Wingo <wingo@pobox.com>
Sun, 20 Jun 2010 21:15:29 +0000 (23:15 +0200)
committerAndy Wingo <wingo@pobox.com>
Sun, 20 Jun 2010 21:15:29 +0000 (23:15 +0200)
* module/rnrs/io/ports.scm (open-string-input-port):
  (open-string-output-port): Ensure that the ports are unicode-capable
  by binding %default-port-encoding to "UTF-8".

module/rnrs/io/ports.scm

index 4916bba..04dabe6 100644 (file)
@@ -110,12 +110,14 @@ read from/written to in @var{port}."
 
 (define (open-string-input-port str)
   "Open an input port that will read from @var{str}."
-  (open-input-string str))
+  (with-fluids ((%default-port-encoding "UTF-8"))
+    (open-input-string str)))
 
 (define (open-string-output-port)
   "Return two values: an output port that will collect characters written to it
 as a string, and a thunk to retrieve the characters associated with that port."
-  (let ((port (open-output-string)))
+  (let ((port (with-fluids ((%default-port-encoding "UTF-8"))
+                (open-output-string))))
     (values port
             (lambda () (get-output-string port)))))