(Arne Babenhauserheide)
2014-07-14: use with-fluids instead of set-fluid use with-fluids instead of set-fluid
diff --git a/wisp-reader.w b/wisp-reader.w
--- a/wisp-reader.w
+++ b/wisp-reader.w
@@ -32,13 +32,20 @@ define : read-one-wisp-sexp port env
define : read-wisp-chunk
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
+ let
+ : dpe : fluid-ref %default-port-encoding
+ set-pending-port!
+ lambda ()
+ let
+ : s : wisp2lisp : wisp-chunkreader port
+ set! : wisp-pending-port port
+ open-input-string s
+ if dpe ; default port encoding is set
+ set-pending-port!
+ ; else: we need to redefine %default-port-encoding to
+ ; UTF-8. Use with-fluids to avoid affecting other code.
+ with-fluids : : %default-port-encoding "UTF-8"
+ set-pending-port!
try-pending
define : try-pending
let : : pending-port : wisp-pending-port port