wisp
 
(Arne Babenhauserheide)
2014-07-14: set the %default-port-encoding to UTF-8 if it is not yet set. This

set the %default-port-encoding to UTF-8 if it is not yet set. This gets parsing of files with unicode symbols to work.

diff --git a/wisp-reader.w b/wisp-reader.w
--- a/wisp-reader.w
+++ b/wisp-reader.w
@@ -30,10 +30,16 @@ define wisp-pending-port : make-object-p
 ; Code thanks to Mark Weaver
 define : read-one-wisp-sexp port env
   define : read-wisp-chunk
-    let : : s : wisp2lisp : wisp-chunkreader port
-       set! : wisp-pending-port port
-              open-input-string s
-       try-pending
+    if : eof-object? : peek-char port
+      read-char port ; return eof: we’re done
+      let : : dpe : fluid-ref %default-port-encoding
+        when : not dpe
+               fluid-set! %default-port-encoding "UTF-8"
+        let
+           : s : wisp2lisp : wisp-chunkreader port
+           set! : wisp-pending-port port
+                  open-input-string s
+           try-pending
   define : try-pending
     let : : pending-port : wisp-pending-port port
       if pending-port