Change textual-port unparser method to be more standard.
authorChris Hanson <org/chris-hanson/cph>
Wed, 11 Jan 2017 06:45:47 +0000 (22:45 -0800)
committerChris Hanson <org/chris-hanson/cph>
Wed, 11 Jan 2017 06:45:47 +0000 (22:45 -0800)
src/runtime/port.scm

index 0cbdf7e7957190486d29bf29850b1389f3e02753..0986af69c47903c08a8efeb2ca31b002a8bea8df 100644 (file)
@@ -463,19 +463,16 @@ USA.
 (define-port-operation discretionary-flush-output)
 \f
 (set-record-type-unparser-method! <textual-port>
-  (lambda (state port)
-    ((let ((name
-           (cond ((textual-i/o-port? port) 'TEXTUAL-I/O-PORT)
-                 ((textual-input-port? port) 'TEXTUAL-INPUT-PORT)
-                 ((textual-output-port? port) 'TEXTUAL-OUTPUT-PORT)
-                 (else 'TEXTUAL-PORT))))
-       (cond ((textual-port-operation port 'WRITE-SELF)
-             => (lambda (operation)
-                  (standard-unparser-method name operation)))
-            (else
-             (standard-unparser-method name #f))))
-     state
-     port)))
+  (standard-unparser-method
+   (lambda (port)
+     (cond ((textual-i/o-port? port) 'TEXTUAL-I/O-PORT)
+          ((textual-input-port? port) 'TEXTUAL-INPUT-PORT)
+          ((textual-output-port? port) 'TEXTUAL-OUTPUT-PORT)
+          (else 'TEXTUAL-PORT)))
+   (lambda (port output-port)
+     (cond ((textual-port-operation port 'WRITE-SELF)
+           => (lambda (operation)
+                (operation port output-port)))))))
 
 (define (port/copy port state)
   (let ((port (copy-record port)))