From 03710757efd0a0c0290b720d25333ed4d5c93228 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 4 Jun 2019 07:24:31 -0600 Subject: [PATCH] io: fix `newline` on custom output port Closes #2677 --- pkgs/racket-test-core/tests/racket/file.rktl | 11 +++++++++++ racket/src/io/print/main.rkt | 3 +-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/file.rktl b/pkgs/racket-test-core/tests/racket/file.rktl index aa43f1bbcf..b3f4eea429 100644 --- a/pkgs/racket-test-core/tests/racket/file.rktl +++ b/pkgs/racket-test-core/tests/racket/file.rktl @@ -1218,6 +1218,17 @@ (test (void) close-output-port p) (test 10 values l))) +(let () + (define-struct myport (port) + #:property prop:output-port 0) + (define o (open-output-string)) + + (define out (make-myport o)) + (test (void) newline out) + (test "\n" get-output-string o) + + (err/rt-test (newline 9))) + ; -------------------------------------------------- (load "tmp1") diff --git a/racket/src/io/print/main.rkt b/racket/src/io/print/main.rkt index 3d94a4582a..b660d4a430 100644 --- a/racket/src/io/print/main.rkt +++ b/racket/src/io/print/main.rkt @@ -127,8 +127,7 @@ (void)))) (define/who (newline [o (current-output-port)]) - (check who output-port? o) - (unsafe-write-bytes 'newline #"\n" o) + (unsafe-write-bytes 'newline #"\n" (->core-output-port o who)) (void)) ;; ----------------------------------------